Browse Source

Inform stratifier of deadproxy on every failed proxy_alive call

master
Con Kolivas 10 years ago
parent
commit
b96106a414
  1. 14
      src/generator.c

14
src/generator.c

@ -932,6 +932,14 @@ static void store_proxy(gdata_t *gdata, proxy_instance_t *proxy)
mutex_unlock(&gdata->lock); mutex_unlock(&gdata->lock);
} }
static void send_stratifier_deadproxy(ckpool_t *ckp, const int id, const int subid)
{
char buf[256];
sprintf(buf, "deadproxy=%d:%d", id, subid);
send_proc(ckp->stratifier, buf);
}
/* Remove the subproxy from the proxi list and put it on the dead list */ /* Remove the subproxy from the proxi list and put it on the dead list */
static void disable_subproxy(gdata_t *gdata, proxy_instance_t *proxi, proxy_instance_t *subproxy) static void disable_subproxy(gdata_t *gdata, proxy_instance_t *proxi, proxy_instance_t *subproxy)
{ {
@ -946,10 +954,7 @@ static void disable_subproxy(gdata_t *gdata, proxy_instance_t *proxi, proxy_inst
mutex_unlock(&proxi->proxy_lock); mutex_unlock(&proxi->proxy_lock);
if (subproxy) { if (subproxy) {
char buf[256]; send_stratifier_deadproxy(gdata->ckp, subproxy->id, subproxy->subid);
sprintf(buf, "deadproxy=%d:%d", subproxy->id, subproxy->subid);
send_proc(gdata->ckp->stratifier, buf);
if (!parent_proxy(subproxy)) if (!parent_proxy(subproxy))
store_proxy(gdata, subproxy); store_proxy(gdata, subproxy);
} }
@ -1581,6 +1586,7 @@ static bool proxy_alive(ckpool_t *ckp, server_instance_t *si, proxy_instance_t *
ret = true; ret = true;
out: out:
if (!ret) { if (!ret) {
send_stratifier_deadproxy(ckp, proxi->id, proxi->subid);
/* Close and invalidate the file handle */ /* Close and invalidate the file handle */
Close(cs->fd); Close(cs->fd);
} else { } else {

Loading…
Cancel
Save