]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/newconf.c
Add mr_flea (and Taros) to the list of Charybdis contributors.
[irc/rqf/shadowircd.git] / src / newconf.c
index d77d095775f81fb13b1f81a6b1a115e825a61a53..65e28f8e2b13f4bd06971030b58a1dac8b4e974d 100644 (file)
@@ -1309,9 +1309,9 @@ conf_end_connect(struct TopConf *tc)
                return 0;
        }
 
-       if(EmptyString(yy_server->passwd) || EmptyString(yy_server->spasswd))
+       if((EmptyString(yy_server->passwd) || EmptyString(yy_server->spasswd)) && EmptyString(yy_server->certfp))
        {
-               conf_report_error("Ignoring connect block for %s -- missing password.",
+               conf_report_error("Ignoring connect block for %s -- no certfp or password credentials provided.",
                                        yy_server->name);
                return 0;
        }
@@ -1383,6 +1383,15 @@ conf_set_connect_accept_password(void *data)
        yy_server->passwd = rb_strdup(data);
 }
 
+static void
+conf_set_connect_fingerprint(void *data)
+{
+       yy_server->certfp = rb_strdup((char *) data);
+
+       /* force SSL to be enabled if fingerprint is enabled. */
+       yy_server->flags |= SERVER_SSL;
+}
+
 static void
 conf_set_connect_port(void *data)
 {
@@ -1932,7 +1941,7 @@ conf_call_set(struct TopConf *tc, char *item, conf_parm_t * value, int type)
 
        /* if it takes one thing, make sure they only passed one thing,
           and handle as needed. */
-       if(value->type & CF_FLIST && !(cf->cf_type & CF_FLIST))
+       if(value->type & CF_FLIST && !cf->cf_type & CF_FLIST)
        {
                conf_report_error
                        ("Option %s::%s does not take a list of values.", tc->tc_name, item);
@@ -2164,6 +2173,7 @@ static struct ConfEntry conf_connect_table[] =
 {
        { "send_password",      CF_QSTRING,   conf_set_connect_send_password,   0, NULL },
        { "accept_password",    CF_QSTRING,   conf_set_connect_accept_password, 0, NULL },
+       { "fingerprint",        CF_QSTRING,   conf_set_connect_fingerprint,     0, NULL },
        { "flags",      CF_STRING | CF_FLIST, conf_set_connect_flags,   0, NULL },
        { "host",       CF_QSTRING, conf_set_connect_host,      0, NULL },
        { "vhost",      CF_QSTRING, conf_set_connect_vhost,     0, NULL },