mapi_clist_av1 webirc_clist[] = { &webirc_msgtab, NULL };
-DECLARE_MODULE_AV2(webirc, NULL, NULL, webirc_clist, NULL, NULL, NULL, NULL, webirc_desc);
+static void new_local_user(void *data);
+mapi_hfn_list_av1 webirc_hfnlist[] = {
+ /* unintuitive but correct--we want to be called first */
+ { "new_local_user", (hookfn) new_local_user, HOOK_LOWEST },
+ { NULL, NULL }
+};
+
+DECLARE_MODULE_AV2(webirc, NULL, NULL, webirc_clist, NULL, webirc_hfnlist, NULL, NULL, webirc_desc);
/*
* mr_webirc - webirc message handler
}
if (!IsSSL(source_p) && aconf->flags & CONF_FLAGS_NEED_SSL)
{
- sendto_one(source_p, "NOTICE * :Your CGI:IRC block requires SSL");
+ sendto_one(source_p, "NOTICE * :Your CGI:IRC block requires TLS");
return;
}
if (secure && !IsSSL(source_p))
{
sendto_one(source_p, "NOTICE * :CGI:IRC is not connected securely; marking you as insecure");
- return 0;
+ secure = 0;
}
if (!secure)
sendto_one(source_p, "NOTICE * :CGI:IRC host/IP set to %s %s", parv[3], parv[4]);
}
+
+static void
+new_local_user(void *data)
+{
+ struct Client *source_p = data;
+ struct ConfItem *aconf = source_p->localClient->att_conf;
+
+ if (!irccmp(aconf->info.name, "webirc."))
+ exit_client(source_p, source_p, &me, "Cannot log in using a WEBIRC block");
+}