if ((err = sk_addr_error(addr)))
if ((err = sk_addr_error(addr)) != NULL)
char *pfd_newconnect(Socket *s, char *hostname, int port, void *c){    static struct plug_function_table fn_table = {	pfd_closing,	pfd_receive,	pfd_sent,	NULL    };    SockAddr addr;    char *err, *dummy_realhost;    struct PFwdPrivate *pr;    /*     * Try to find host.     */    addr = name_lookup(hostname, port, &dummy_realhost);    if ((err = sk_addr_error(addr)))	return err;    /*     * Open socket.     */    pr = (struct PFwdPrivate *) smalloc(sizeof(struct PFwdPrivate));    pr->fn = &fn_table;    pr->throttled = pr->throttle_override = 0;    pr->ready = 1;    pr->c = c;    pr->backhandle = NULL;	       /* we shouldn't need this */    pr->s = *s = new_connection(addr, dummy_realhost, port, 0, 1, 0, (Plug) pr);    if ((err = sk_socket_error(*s))) {	sfree(pr);	return err;    }    sk_set_private_ptr(*s, pr);    sk_addr_free(addr);    return NULL;}