Merge pull request #144 from lp0/handle-which_ssld_failure-start_ssld_connect-accept-20160210
ircd: Handle which_ssld failure
This commit is contained in:
commit
dea27a087c
2 changed files with 16 additions and 0 deletions
|
@ -1157,6 +1157,11 @@ serv_connect_ssl_callback(rb_fde_t *F, int status, void *data)
|
||||||
add_to_cli_connid_hash(client_p);
|
add_to_cli_connid_hash(client_p);
|
||||||
|
|
||||||
client_p->localClient->ssl_ctl = start_ssld_connect(F, xF[1], rb_get_fd(xF[0]));
|
client_p->localClient->ssl_ctl = start_ssld_connect(F, xF[1], rb_get_fd(xF[0]));
|
||||||
|
if(!client_p->localClient->ssl_ctl)
|
||||||
|
{
|
||||||
|
serv_connect_callback(client_p->localClient->F, RB_ERROR, data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
SetSSL(client_p);
|
SetSSL(client_p);
|
||||||
serv_connect_callback(client_p->localClient->F, RB_OK, client_p);
|
serv_connect_callback(client_p->localClient->F, RB_OK, client_p);
|
||||||
}
|
}
|
||||||
|
|
|
@ -703,6 +703,8 @@ start_ssld_accept(rb_fde_t * sslF, rb_fde_t * plainF, uint32_t id)
|
||||||
buf[0] = 'A';
|
buf[0] = 'A';
|
||||||
uint32_to_buf(&buf[1], id);
|
uint32_to_buf(&buf[1], id);
|
||||||
ctl = which_ssld();
|
ctl = which_ssld();
|
||||||
|
if(!ctl)
|
||||||
|
return NULL;
|
||||||
ctl->cli_count++;
|
ctl->cli_count++;
|
||||||
ssl_cmd_write_queue(ctl, F, 2, buf, sizeof(buf));
|
ssl_cmd_write_queue(ctl, F, 2, buf, sizeof(buf));
|
||||||
return ctl;
|
return ctl;
|
||||||
|
@ -721,6 +723,8 @@ start_ssld_connect(rb_fde_t * sslF, rb_fde_t * plainF, uint32_t id)
|
||||||
uint32_to_buf(&buf[1], id);
|
uint32_to_buf(&buf[1], id);
|
||||||
|
|
||||||
ctl = which_ssld();
|
ctl = which_ssld();
|
||||||
|
if(!ctl)
|
||||||
|
return NULL;
|
||||||
ctl->cli_count++;
|
ctl->cli_count++;
|
||||||
ssl_cmd_write_queue(ctl, F, 2, buf, sizeof(buf));
|
ssl_cmd_write_queue(ctl, F, 2, buf, sizeof(buf));
|
||||||
return ctl;
|
return ctl;
|
||||||
|
@ -809,6 +813,7 @@ start_zlib_session(void *data)
|
||||||
sendto_realops_snomask(SNO_GENERAL, L_ALL, "Error creating zlib socketpair - %s", strerror(errno));
|
sendto_realops_snomask(SNO_GENERAL, L_ALL, "Error creating zlib socketpair - %s", strerror(errno));
|
||||||
ilog(L_MAIN, "Error creating zlib socketpairs - %s", strerror(errno));
|
ilog(L_MAIN, "Error creating zlib socketpairs - %s", strerror(errno));
|
||||||
exit_client(server, server, server, "Error creating zlib socketpair");
|
exit_client(server, server, server, "Error creating zlib socketpair");
|
||||||
|
rb_free(buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -831,6 +836,12 @@ start_zlib_session(void *data)
|
||||||
add_to_cli_connid_hash(server);
|
add_to_cli_connid_hash(server);
|
||||||
|
|
||||||
server->localClient->z_ctl = which_ssld();
|
server->localClient->z_ctl = which_ssld();
|
||||||
|
if(!server->localClient->z_ctl)
|
||||||
|
{
|
||||||
|
exit_client(server, server, server, "Error finding available ssld");
|
||||||
|
rb_free(buf);
|
||||||
|
return;
|
||||||
|
}
|
||||||
server->localClient->z_ctl->cli_count++;
|
server->localClient->z_ctl->cli_count++;
|
||||||
ssl_cmd_write_queue(server->localClient->z_ctl, F, 2, buf, len);
|
ssl_cmd_write_queue(server->localClient->z_ctl, F, 2, buf, len);
|
||||||
rb_free(buf);
|
rb_free(buf);
|
||||||
|
|
Loading…
Reference in a new issue