]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_connect.c
Replace parv[0] with source_p->name.
[irc/rqf/shadowircd.git] / modules / m_connect.c
index 22fb7f21966cd712564cbf085939ba238496eaa4..809783a2b8a98f7f077ee644de2d18eeefe671b2 100644 (file)
 #include "stdinc.h"
 #include "client.h"
 #include "ircd.h"
-#include "irc_string.h"
+#include "match.h"
 #include "numeric.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 **);
@@ -97,6 +98,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
@@ -120,7 +129,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;
        /*
@@ -129,14 +138,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
        {
@@ -191,6 +194,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
@@ -218,9 +229,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);