*s = sk_new(addr, port, 0, x11_receive);
*s = sk_new(addr, port, 0, 1, x11_receive);
char *x11_init (Socket *s, char *display, void *c) {    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.     */    *s = sk_new(addr, port, 0, x11_receive);    if ( (err = sk_socket_error(*s)) )	return err;    pr = (struct X11Private *)smalloc(sizeof(struct X11Private));    pr->auth_protocol = NULL;    pr->verified = 0;    pr->data_read = 0;    pr->c = c;    sk_set_private_ptr(*s, pr);    sk_addr_free(addr);    return NULL;}