if (!MyConnect(client_p))
return 0;
+ if (!ssl_ok || !get_ssld_count())
+ {
+ sendto_one_numeric(client_p, ERR_STARTTLS, form_str(ERR_STARTTLS), "TLS is not configured");
+ return 1;
+ }
+
if (rb_socketpair(AF_UNIX, SOCK_STREAM, 0, &F[0], &F[1], "STARTTLS ssld session") == -1)
{
ilog_error("error creating SSL/TLS socketpair for ssld slave");
+ sendto_one_numeric(client_p, ERR_STARTTLS, form_str(ERR_STARTTLS), "Unable to create SSL/TLS socketpair for ssld offload slave");
return 1;
}
ctl = start_ssld_accept(client_p->localClient->F, F[1], rb_get_fd(F[0]));
if (ctl != NULL)
{
+ del_from_cli_fd_hash(client_p);
client_p->localClient->F = F[0];
+ add_to_cli_fd_hash(client_p);
client_p->localClient->ssl_ctl = ctl;
SetSSL(client_p);
}
else
return 1;
+#else
+ sendto_one_numeric(client_p, ERR_STARTTLS, form_str(ERR_STARTTLS), "TLS is not configured");
#endif
return 0;
}