X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fevent_client.c;h=99f71151e6351b4b16457e125cfc0d8536396781;hb=97b832cd58a0799271687a9570b9e93588e4f879;hp=833a270a75f316b970133c962dd0ce1116aa5591;hpb=66f72c07b70ed9500c49e8ff3c3f895e5269d339;p=citadel.git diff --git a/citadel/event_client.c b/citadel/event_client.c index 833a270a7..99f71151e 100644 --- a/citadel/event_client.c +++ b/citadel/event_client.c @@ -240,8 +240,10 @@ void FreeAsyncIOContents(AsyncIO *IO) FreeURL(&IO->ConnectMe); FreeStrBuf(&IO->HttpReq.ReplyData); - Ctx->state = CON_IDLE; - Ctx->kill_me = 1; + if (Ctx) { + Ctx->state = CON_IDLE; + Ctx->kill_me = 1; + } } @@ -279,7 +281,6 @@ void ShutDownCLient(AsyncIO *IO) IO->Terminate(IO); } - eReadState HandleInbound(AsyncIO *IO) { const char *Err = NULL; @@ -683,7 +684,8 @@ IO_recv_callback(struct ev_loop *loop, ev_io *watcher, int revents) } return; } else if (nbytes == -1) { -/// TODO: FD is gone. kick it. sock_buff_invoke_free(sb, errno); + // FD is gone. kick it. + StopClientWatchers(IO); EV_syslog(LOG_DEBUG, "EVENT: Socket Invalid! %s \n", strerror(errno));