diff --git a/src/generator.c b/src/generator.c index df8d9999..4c39f8ef 100644 --- a/src/generator.c +++ b/src/generator.c @@ -1133,11 +1133,11 @@ static proxy_instance_t *proxy_by_id(gdata_t *gdata, const int id) static proxy_instance_t *current_proxy(gdata_t *gdata); -static char *get_subscribe(ckpool_t *ckp, proxy_instance_t *proxi) +static void send_subscribe(ckpool_t *ckp, proxy_instance_t *proxi) { gdata_t *gdata = ckp->data; json_t *json_msg; - char *msg; + char *msg, *buf; JSON_CPACK(json_msg, "{sisssisb}", "proxy", proxi->id, @@ -1146,7 +1146,10 @@ static char *get_subscribe(ckpool_t *ckp, proxy_instance_t *proxi) "reconnect", proxi == current_proxy(gdata) ? true : false); msg = json_dumps(json_msg, JSON_NO_UTF8); json_decref(json_msg); - return msg; + ASPRINTF(&buf, "subscribe=%s", msg); + free(msg); + send_proc(ckp->stratifier, buf); + free(buf); } static void send_notify(gdata_t *gdata, int *sockd, const char *buf) @@ -1413,14 +1416,8 @@ out: /* Close and invalidate the file handle */ Close(cs->fd); } else { - char *msg, *buf; - keep_sockalive(cs->fd); - msg = get_subscribe(ckp, proxi); - ASPRINTF(&buf, "subscribe=%s", msg); - free(msg); - send_proc(ckp->stratifier, buf); - free(buf); + send_subscribe(ckp, proxi); proxi->notified = false; } return ret;