diff --git a/res/res_jabber.c b/res/res_jabber.c index ed7b5e74fc903e3c9ddae0735b8502b594085117..cdd14edd2c13ebd26e9e65d2b813117b0dc3401d 100644 --- a/res/res_jabber.c +++ b/res/res_jabber.c @@ -1334,25 +1334,23 @@ static void *aji_recv_loop(void *data) if (res != IKS_OK) { while(res != IKS_OK) { if(option_verbose > 3) ast_verbose("JABBER: reconnecting.\n"); - sleep(4); res = aji_reconnect(client); + sleep(4); } } res = iks_recv(client->p, 1); client->timeout--; if (res == IKS_HOOK) { ast_log(LOG_WARNING, "JABBER: Got hook event.\n"); - break; } else if (res == IKS_NET_TLSFAIL) { ast_log(LOG_WARNING, "JABBER: Failure in tls.\n"); - break; } else if (client->timeout == 0 && client->state != AJI_CONNECTED) { res = -1; ast_log(LOG_WARNING, "JABBER: Network Timeout\n"); } else if (res == IKS_NET_RWERR) { ast_log(LOG_WARNING, "JABBER: socket read error\n"); } - } while (res == IKS_OK); + } while (client); ASTOBJ_UNREF(client, aji_client_destroy); return 0; }