X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/5366977b4f3c7a50d170bf7a1e29b14c74944db7..8097430a810ac1535fe5304f74991b16ff58b064:/modules/m_connect.c?ds=sidebyside diff --git a/modules/m_connect.c b/modules/m_connect.c index 34f9c00..cf89756 100644 --- a/modules/m_connect.c +++ b/modules/m_connect.c @@ -27,18 +27,18 @@ #include "stdinc.h" #include "client.h" #include "ircd.h" -#include "irc_string.h" +#include "match.h" #include "numeric.h" -#include "commio.h" #include "s_conf.h" #include "s_newconf.h" -#include "s_log.h" +#include "logger.h" #include "s_serv.h" #include "send.h" #include "msg.h" #include "parse.h" #include "hash.h" #include "modules.h" +#include "sslproc.h" static int mo_connect(struct Client *, struct Client *, int, const char **); static int ms_connect(struct Client *, struct Client *, int, const char **); @@ -57,7 +57,6 @@ DECLARE_MODULE_AV1(connect, NULL, NULL, connect_clist, NULL, NULL, "$Revision: 3 * Added by Jto 11 Feb 1989 * * m_connect - * parv[0] = sender prefix * parv[1] = servername * parv[2] = port number * parv[3] = remote server @@ -98,6 +97,14 @@ mo_connect(struct Client *client_p, struct Client *source_p, int parc, const cha return 0; } + if(ServerConfSSL(server_p) && (!ssl_ok || !get_ssld_count())) + { + sendto_one_notice(source_p, + ":Connect: Server %s is set to use SSL/TLS but SSL/TLS is not configured.", + parv[1]); + return 0; + } + /* * Get port number from user, if given. If not specified, * use the default form configuration structure. If missing @@ -121,7 +128,7 @@ mo_connect(struct Client *client_p, struct Client *source_p, int parc, const cha * Notify all operators about remote connect requests */ - ilog(L_SERVER, "CONNECT From %s : %s %s", parv[0], parv[1], parc > 2 ? parv[2] : ""); + ilog(L_SERVER, "CONNECT From %s : %s %s", source_p->name, parv[1], parc > 2 ? parv[2] : ""); server_p->port = port; /* @@ -130,14 +137,8 @@ mo_connect(struct Client *client_p, struct Client *source_p, int parc, const cha */ if(serv_connect(server_p, source_p)) { -#ifndef HIDE_SERVERS_IPS - sendto_one_notice(source_p, ":*** Connecting to %s[%s].%d", - server_p->host, server_p->name, server_p->port); -#else sendto_one_notice(source_p, ":*** Connecting to %s.%d", server_p->name, server_p->port); -#endif - } else { @@ -159,7 +160,6 @@ mo_connect(struct Client *client_p, struct Client *source_p, int parc, const cha * Added by Jto 11 Feb 1989 * * m_connect - * parv[0] = sender prefix * parv[1] = servername * parv[2] = port number * parv[3] = remote server @@ -192,6 +192,14 @@ ms_connect(struct Client *client_p, struct Client *source_p, int parc, const cha return 0; } + if(ServerConfSSL(server_p) && (!ssl_ok || !get_ssld_count())) + { + sendto_one_notice(source_p, + ":Connect: Server %s is set to use SSL/TLS but SSL/TLS is not configured.", + parv[1]); + return 0; + } + /* * Get port number from user, if given. If not specified, * use the default form configuration structure. If missing @@ -219,9 +227,6 @@ ms_connect(struct Client *client_p, struct Client *source_p, int parc, const cha sendto_server(NULL, NULL, CAP_TS6, NOCAPS, ":%s WALLOPS :Remote CONNECT %s %d from %s", me.id, parv[1], port, source_p->name); - sendto_server(NULL, NULL, NOCAPS, CAP_TS6, - ":%s WALLOPS :Remote CONNECT %s %d from %s", - me.name, parv[1], port, source_p->name); ilog(L_SERVER, "CONNECT From %s : %s %d", source_p->name, parv[1], port);