[NeoStats-Devel] [Commits] r361 - branches/3.0
[email protected] Fri, 12 Aug 2005 22:34:47 +1000
| Newsgroups | gmane.comp.neostats.devel |
|---|---|
| Message-ID | <[email protected]> |
Author: Fish
Date: Fri Aug 12 20:34:40 2005
New Revision: 361
Modified:
branches/3.0/SecureServ.c
Log:
fix version scanning for SecureServ
Modified: branches/3.0/SecureServ.c
==============================================================================
--- branches/3.0/SecureServ.c (original)
+++ branches/3.0/SecureServ.c Fri Aug 12 20:34:40 2005
@@ -89,7 +89,7 @@
static bot_setting ss_settings[]=
{
{"HELPERS", &SecureServ.helpers, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN,NULL, ts_help_set_helpers, ss_cmd_set_helpers_cb, (void *)1 },
- {"VERSION", &SecureServ.doscan, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN,NULL, ts_help_set_version, NULL, (void *)0 },
+ {"VERSIONSCAN", &SecureServ.doscan, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN,NULL, ts_help_set_version, NULL, (void *)1 },
{"HELPCHAN", &SecureServ.HelpChan, SET_TYPE_CHANNEL, 0, MAXCHANLEN, NS_ULEVEL_ADMIN,NULL, ts_help_set_helpchan, NULL, (void *)"#nohack" },
#ifdef HAVE_CRYPT_H
{"REPORT", &SecureServ.report, SET_TYPE_BOOLEAN, 0, 0, NS_ULEVEL_ADMIN,NULL, ts_help_set_report, NULL, (void *)1 },
@@ -328,11 +328,19 @@
return NS_SUCCESS;
}
+static void ss_do_version(CmdParams *cmdparams)
+{
+ /* if NeoStats Version Check is disabled, but SecureServ Version check is enabled, send CTCP request */
+ if ((!me.versionscan) && (SecureServ.doscan)) {
+ irc_ctcp_version_req(ss_bot, cmdparams->source);
+ }
+}
+
/* scan someone connecting */
static int ss_event_signon(CmdParams *cmdparams)
{
SET_SEGV_LOCATION();
- if (SecureServ.doscan == 0)
+ if (SecureServ.doscan == 0)
return NS_SUCCESS;
if (IsNetSplit(cmdparams->source)) {
dlog (DEBUG1, "Ignoring netsplit nick %s", cmdparams->source->name);
@@ -347,14 +355,18 @@
}
/* check the nickname, ident, realname */
if (ScanNick(cmdparams->source) && SecureServ.breakorcont != 0) {
+ ss_do_version(cmdparams);
return NS_SUCCESS;
}
if (ScanIdent(cmdparams->source) && SecureServ.breakorcont != 0) {
+ ss_do_version(cmdparams);
return NS_SUCCESS;
}
if (ScanRealname(cmdparams->source) && SecureServ.breakorcont != 0) {
+ ss_do_version(cmdparams);
return NS_SUCCESS;
}
+ ss_do_version(cmdparams);
return NS_SUCCESS;
}
@@ -364,6 +376,17 @@
static int versioncount = 0;
SET_SEGV_LOCATION();
+ /* because neostats doesn't check this when the version request comes from the core */
+ if (IsNetSplit(cmdparams->source)) {
+ dlog (DEBUG1, "Ignoring netsplit nick %s", cmdparams->source->name);
+ return NS_SUCCESS;
+ }
+ if (ModIsUserExcluded(cmdparams->source) == NS_TRUE) {
+ return NS_SUCCESS;
+ }
+ if (SecureServ.verbose)
+ irc_chanalert(ss_bot, "Got Version Reply from %s: %s", cmdparams->source->name, cmdparams->param);
+
positive = ScanCTCPVersion(cmdparams->source, cmdparams->param);
versioncount++;
/* why do we only change the version reply every 23 entries? Why not? */