x11_receive
x11_receive, x11_sent, NULL
char *x11_init(Socket * s, char *display, void *c){    static struct plug_function_table fn_table = {	x11_closing,	x11_receive    };    SockAddr addr;    int port;    char *err, *dummy_realhost;    char host[128];    int n, displaynum;    struct X11Private *pr;    /*     * Split up display name into host and display-number parts.     */    n = strcspn(display, ":");    if (display[n])	displaynum = atoi(display + n + 1);    else	displaynum = 0;		       /* sensible default */    if (n > sizeof(host) - 1)	n = sizeof(host) - 1;    strncpy(host, display, n);    host[n] = '\0';    /*     * Try to find host.     */    addr = sk_namelookup(host, &dummy_realhost);    if ((err = sk_addr_error(addr)))	return err;    port = 6000 + displaynum;    /*     * Open socket.     */    pr = (struct X11Private *) smalloc(sizeof(struct X11Private));    pr->fn = &fn_table;    pr->auth_protocol = NULL;    pr->verified = 0;    pr->data_read = 0;    pr->c = c;    pr->s = *s = sk_new(addr, port, 0, 1, (Plug) pr);    if ((err = sk_socket_error(*s))) {	sfree(pr);	return err;    }    sk_set_private_ptr(*s, pr);    sk_addr_free(addr);    return NULL;}