|
|
@ -107,6 +107,7 @@ struct proxy_instance { |
|
|
|
bool disabled; /* Subproxy no longer to be used */ |
|
|
|
bool disabled; /* Subproxy no longer to be used */ |
|
|
|
bool reconnect; /* We need to drop and reconnect */ |
|
|
|
bool reconnect; /* We need to drop and reconnect */ |
|
|
|
bool reconnecting; /* Testing in progress */ |
|
|
|
bool reconnecting; /* Testing in progress */ |
|
|
|
|
|
|
|
bool recruiting; /* Recruiting in progress */ |
|
|
|
bool alive; |
|
|
|
bool alive; |
|
|
|
|
|
|
|
|
|
|
|
mutex_t notify_lock; |
|
|
|
mutex_t notify_lock; |
|
|
@ -1698,6 +1699,7 @@ static void *proxy_recruit(void *arg) |
|
|
|
store_proxy(gdata, proxy); |
|
|
|
store_proxy(gdata, proxy); |
|
|
|
} else |
|
|
|
} else |
|
|
|
add_subproxy(parent, proxy); |
|
|
|
add_subproxy(parent, proxy); |
|
|
|
|
|
|
|
parent->recruiting = false; |
|
|
|
return NULL; |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1705,6 +1707,9 @@ static void recruit_subproxy(proxy_instance_t *proxi) |
|
|
|
{ |
|
|
|
{ |
|
|
|
pthread_t pth; |
|
|
|
pthread_t pth; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (proxi->recruiting) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
proxi->recruiting = true; |
|
|
|
create_pthread(&pth, proxy_recruit, proxi); |
|
|
|
create_pthread(&pth, proxy_recruit, proxi); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|