void socks_kill(struct socks_data *data) { bufferevent_free(data->bev); data->bev = NULL; host_abort(&data->host); if (data->pcb) { tcp_err(data->pcb, NULL); tcp_abort(data->pcb); data->pcb = NULL; } data->kill(data); }
void host_lookup(struct host_data *data) { const char *fqdn; int ret; host_abort(data); data->priv = calloc(1, sizeof(*data->priv)); data->priv->tried_bare = 0; data->priv->search = 0; data->priv->dot = !!strchr(data->fqdn, '.'); data->priv->owner = data; fqdn = host_get_next_fqdn(data); ret = dns_gethostbyname(fqdn, &data->ipaddr, host_found, data->priv); if (!ret) { LWIP_DEBUGF(HOSTS_DEBUG, ("%s: Cached\n", __func__)); free(data->priv); data->priv = NULL; data->found(data); } }