diff options
author | certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-07-22 21:13:32 +0000 |
---|---|---|
committer | certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-07-22 21:13:32 +0000 |
commit | 570acfa25f7815bd75ed4d8dad286be3b51b7191 (patch) | |
tree | e9520adcf833df6131e771fa3acbbb045e84a2a3 | |
parent | fff701c65b7c544a26d31f75b5d6a36918817a0c (diff) |
# BUILD : 1.7.14 (1099) # BUGS : # NOTES : removed all that clone stuff
git-svn-id: svn://svn.anope.org/anope/trunk@1099 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@823 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | data/example.conf | 58 | ||||
-rw-r--r-- | include/config.h | 5 | ||||
-rw-r--r-- | include/extern.h | 13 | ||||
-rw-r--r-- | include/services.h | 10 | ||||
-rw-r--r-- | src/config.c | 25 | ||||
-rw-r--r-- | src/core/Makefile.win32 | 2 | ||||
-rw-r--r-- | src/core/os_stats.c | 19 | ||||
-rw-r--r-- | src/operserv.c | 102 | ||||
-rw-r--r-- | src/users.c | 5 | ||||
-rw-r--r-- | version.log | 6 |
11 files changed, 8 insertions, 238 deletions
@@ -7,6 +7,7 @@ Provided by Anope Dev. <dev@anope.org> - 2006 06/22 A Support startup flag. [ #00] 06/21 A Module version check. [ #00] 06/25 A Optional strict privmsg format. [ #00] +07/22 R Removed clone stuff. [ #00] 07/15 A Added BOT_LONG_IDENT for too long idents. [#538] 07/10 A Moved ns_noop into core and assigned an NI_ flag. [#423] 04/08 F Fixed Charybdis support on win32. [#487] diff --git a/data/example.conf b/data/example.conf index 8f7b2d971..0572642e1 100644 --- a/data/example.conf +++ b/data/example.conf @@ -130,7 +130,7 @@ BotCoreModules "bs_help bs_botlist bs_assign bs_set bs_kick bs_badwords bs_act b # These modules will be loaded as part of OperServ's core. # It is not recommended you change these settings unless you are # sure you understand exactly what it is you are doing. -OperCoreModules "os_help os_global os_stats os_oper os_admin os_staff os_mode os_kick os_clearmodes os_killclones os_akill os_sgline os_sqline os_szline os_chanlist os_userlist os_logonnews os_randomnews os_opernews os_session os_noop os_jupe os_ignore os_set os_reload os_update os_restart os_quit os_shutdown os_defcon os_chankill os_svsnick os_oline os_umode os_modload os_modunload os_modlist os_modinfo" +OperCoreModules "os_help os_global os_stats os_oper os_admin os_staff os_mode os_kick os_clearmodes os_akill os_sgline os_sqline os_szline os_chanlist os_userlist os_logonnews os_randomnews os_opernews os_session os_noop os_jupe os_ignore os_set os_reload os_update os_restart os_quit os_shutdown os_defcon os_chankill os_svsnick os_oline os_umode os_modload os_modunload os_modlist os_modinfo" # NickCoreModules <list> [RECOMMENDED] # These modules will be loaded as part of NickServ's core. @@ -1155,12 +1155,6 @@ SZLineExpiry 30d # KillOnSQline -# KillClonesAkillExpire <time> [REQUIRED] -# Sets the expiry time for autokills added for hosts that have been -# killed using the KILLCLONES command. - -KillClonesAkillExpire 30m - # DisableRaw [RECOMMENDED] # # Disables the highly destructive OperServ RAW command. @@ -1244,10 +1238,6 @@ WallDrop # services' performance. See the source and comments in sessions.c and the # online help for more information about session limiting. # -# Session limiting is meant to replace the CheckClones and KillClones -# code. It is therefore highly recommended that they are disabled when -# session limiting has been enabled. -# # NOTE: This option is not available when STREAMLINED is defined in # the Makefile. @@ -1308,52 +1298,6 @@ MaxSessionKill 15 SessionAutoKillExpiry 30m -# CheckClones <minusers> <maxdelay> <warningdelay> [DEPRECATED] -# Causes Services to try and detect "clones" connecting to the network. -# A WALLOPS (or GOPER, if supported on the IRC server) will be sent if -# Services thinks it has found clones. -# -# This feature has been superseded by Session Limiting. -# -# <minusers> sets the minimum number of users which must successively -# connect to the network before Services will send a clone warning. -# -# <maxdelay> sets the maximum time that can elapse between successive -# users before Services decides they are not clones. -# -# <warningdelay> sets the minimum time between clone warnings for -# clones from the same host. -# -# NOTE: This option is not available when STREAMLINED is defined in -# the Makefile. - -# CheckClones 5 10s 30s - -# KillClones [DISCOURAGED] [DEPRECATED] -# Causes Services to kill users which trigger the clone warnings. (If -# CheckClones is disabled, this will have no effect.) -# -# This feature has been superceded by Session Limiting. -# -# BEWARE! The clone checking code is easily fooled; it can be -# triggered falsely under many conditions, for example: -# -# - Multiple users connecting from a shell machine. -# -# - A single user repeatedly connecting and disconnecting. -# -# Be very sure you know what you're doing before you even think about -# enabling this option, and remember that Services comes with no -# warranty. -# -# If that wasn't enough discouragement: -# -# ***** DO NOT ENABLE THIS OPTION! ***** -# -# NOTE: This option is not available when STREAMLINED is defined in -# the Makefile. - -#KillClones # AddAkiller [OPTIONAL] # Adds the nickname of the Operator issuing an AKILL to the kill reason. diff --git a/include/config.h b/include/config.h index eb4eaf168..445f16bc3 100644 --- a/include/config.h +++ b/include/config.h @@ -33,11 +33,6 @@ /******* OperServ configuration *******/ -/* How big a hostname list do we keep for clone detection? On large nets - * (over 500 simultaneous users or so), you may want to increase this if - * you want a good chance of catching clones. */ -#define CLONE_DETECT_SIZE 16 - /* Define this to enable OperServ's svs commands (superadmin only). */ #define USE_OSSVS diff --git a/include/extern.h b/include/extern.h index d64e113e3..c64935d7b 100644 --- a/include/extern.h +++ b/include/extern.h @@ -439,11 +439,6 @@ E int WallDrop; E int WallForbid; E int WallGetpass; E int WallSetpass; -E int CheckClones; -E int CloneMinUsers; -E int CloneMaxDelay; -E int CloneWarningDelay; -E int KillClones; E int AddAkiller; E int parse_directive(Directive * d, char *dir, int ac, char *av[MAXPARAMS], int linenum, int reload, char *s); @@ -477,9 +472,6 @@ E int NickServCoreNumber; E char **ChanServCoreModules; E int ChanServCoreNumber; - -E int KillClonesAkillExpire; - E int LimitSessions; E int DefSessionLimit; E int ExceptionExpiry; @@ -951,17 +943,12 @@ E int add_szline(User * u, char *mask, const char *by, E void expire_szlines(void); E int check_szline(char *nick, char *ip); -E void check_clones(User * user); - E Server *server_global(Server * s, char *msg); E int OSOpersOnly; E time_t DefContimer; E void runDefCon(void); -E struct clone clonelist[CLONE_DETECT_SIZE]; -E struct clone warnings[CLONE_DETECT_SIZE]; - /**** process.c ****/ E int allow_ignore; diff --git a/include/services.h b/include/services.h index ce34238a9..08afcace8 100644 --- a/include/services.h +++ b/include/services.h @@ -1031,16 +1031,6 @@ struct sxline_ { time_t expires; }; -/*************************************************************************/ - -/*************************************************************************/ - -/* clone stuff structure */ - -struct clone { - char *host; - long time; -}; /************************************************************************/ diff --git a/src/config.c b/src/config.c index a4f0533be..50ffab865 100644 --- a/src/config.c +++ b/src/config.c @@ -255,15 +255,8 @@ int WallDrop; int WallForbid; int WallGetpass; int WallSetpass; -int CheckClones; -int CloneMinUsers; -int CloneMaxDelay; -int CloneWarningDelay; -int KillClones; int AddAkiller; -int KillClonesAkillExpire; - int LimitSessions; int DefSessionLimit; int ExceptionExpiry; @@ -402,10 +395,6 @@ Directive directives[] = { {PARAM_STRING, 0, &desc_ChanServ}}}, {"ChanServAlias", {{PARAM_STRING, 0, &s_ChanServAlias}, {PARAM_STRING, 0, &desc_ChanServAlias}}}, - {"CheckClones", {{PARAM_SET, PARAM_FULLONLY, &CheckClones}, - {PARAM_POSINT, 0, &CloneMinUsers}, - {PARAM_TIME, 0, &CloneMaxDelay}, - {PARAM_TIME, 0, &CloneWarningDelay}}}, {"CSAccessMax", {{PARAM_POSINT, PARAM_RELOAD, &CSAccessMax}}}, {"CSAutokickMax", {{PARAM_POSINT, PARAM_RELOAD, &CSAutokickMax}}}, {"CSAutokickReason", @@ -479,12 +468,9 @@ Directive directives[] = { {PARAM_STRING, 0, &desc_HelpServAlias}}}, {"KeepBackups", {{PARAM_INT, PARAM_RELOAD, &KeepBackups}}}, {"KeepLogs", {{PARAM_INT, PARAM_RELOAD, &KeepLogs}}}, - {"KillClones", {{PARAM_SET, PARAM_FULLONLY, &KillClones}}}, {"KillonSGline", {{PARAM_SET, PARAM_RELOAD, &KillonSGline}}}, {"KillonSQline", {{PARAM_SET, PARAM_RELOAD, &KillonSQline}}}, {"AddAkiller", {{PARAM_SET, PARAM_RELOAD, &AddAkiller}}}, - {"KillClonesAkillExpire", - {{PARAM_TIME, PARAM_RELOAD, &KillClonesAkillExpire}}}, {"LimitSessions", {{PARAM_SET, PARAM_FULLONLY, &LimitSessions}}}, {"LocalAddress", {{PARAM_STRING, 0, &LocalHost}, {PARAM_PORT, PARAM_OPTIONAL, &LocalPort}}}, @@ -1313,17 +1299,6 @@ int read_config(int reload) if (MaxSessionKill && !SessionAutoKillExpiry) SessionAutoKillExpiry = 30 * 60; /* 30 minutes */ - - if (!reload && CheckClones) { - printf - ("Warning: You have enabled both session limiting (config " - "option: LimitSessions)\nand clone detection (config option: " - "CheckClones). These two features do not\nfunction correctly " - "when running together. Session limiting is preferred.\n\n"); -#ifndef NOT_MAIN - alog("*** Warning: Both LimitSessions and CheckClones are enabled " "- this is bad! Check your config."); -#endif - } } if (s_BotServ) { diff --git a/src/core/Makefile.win32 b/src/core/Makefile.win32 index 3cda24070..82b471f67 100644 --- a/src/core/Makefile.win32 +++ b/src/core/Makefile.win32 @@ -1,6 +1,6 @@ include ../../Makefile.inc.win32 -SRCS=bs_act.c bs_assign.c bs_badwords.c bs_bot.c bs_botlist.c bs_fantasy.c bs_fantasy_kick.c bs_fantasy_kickban.c bs_fantasy_owner.c bs_fantasy_seen.c bs_fantasy_unban.c bs_help.c bs_info.c bs_kick.c bs_say.c bs_set.c bs_unassign.c cs_access.c cs_akick.c cs_ban.c cs_clear.c cs_drop.c cs_forbid.c cs_getkey.c cs_getpass.c cs_help.c cs_identify.c cs_info.c cs_invite.c cs_kick.c cs_list.c cs_logout.c cs_modes.c cs_register.c cs_sendpass.c cs_set.c cs_status.c cs_suspend.c cs_topic.c cs_xop.c he_help.c hs_del.c hs_delall.c hs_group.c hs_help.c hs_list.c hs_off.c hs_on.c hs_set.c hs_setall.c ms_cancel.c ms_check.c ms_del.c ms_help.c ms_info.c ms_list.c ms_read.c ms_rsend.c ms_send.c ms_sendall.c ms_set.c ms_staff.c ns_access.c ns_alist.c ns_drop.c ns_forbid.c ns_getemail.c ns_getpass.c ns_ghost.c ns_group.c ns_help.c ns_identify.c ns_info.c ns_list.c ns_logout.c ns_recover.c ns_register.c ns_release.c ns_sendpass.c ns_set.c ns_saset.c ns_status.c ns_suspend.c ns_update.c os_admin.c os_akill.c os_chankill.c os_chanlist.c os_clearmodes.c os_defcon.c os_global.c os_help.c os_ignore.c os_jupe.c os_kick.c os_killclones.c \ +SRCS=bs_act.c bs_assign.c bs_badwords.c bs_bot.c bs_botlist.c bs_fantasy.c bs_fantasy_kick.c bs_fantasy_kickban.c bs_fantasy_owner.c bs_fantasy_seen.c bs_fantasy_unban.c bs_help.c bs_info.c bs_kick.c bs_say.c bs_set.c bs_unassign.c cs_access.c cs_akick.c cs_ban.c cs_clear.c cs_drop.c cs_forbid.c cs_getkey.c cs_getpass.c cs_help.c cs_identify.c cs_info.c cs_invite.c cs_kick.c cs_list.c cs_logout.c cs_modes.c cs_register.c cs_sendpass.c cs_set.c cs_status.c cs_suspend.c cs_topic.c cs_xop.c he_help.c hs_del.c hs_delall.c hs_group.c hs_help.c hs_list.c hs_off.c hs_on.c hs_set.c hs_setall.c ms_cancel.c ms_check.c ms_del.c ms_help.c ms_info.c ms_list.c ms_read.c ms_rsend.c ms_send.c ms_sendall.c ms_set.c ms_staff.c ns_access.c ns_alist.c ns_drop.c ns_forbid.c ns_getemail.c ns_getpass.c ns_ghost.c ns_group.c ns_help.c ns_identify.c ns_info.c ns_list.c ns_logout.c ns_recover.c ns_register.c ns_release.c ns_sendpass.c ns_set.c ns_saset.c ns_status.c ns_suspend.c ns_update.c os_admin.c os_akill.c os_chankill.c os_chanlist.c os_clearmodes.c os_defcon.c os_global.c os_help.c os_ignore.c os_jupe.c os_kick.c \ os_logonnews.c os_mode.c os_modinfo.c os_modlist.c os_modload.c os_modunload.c os_noop.c os_oline.c os_oper.c os_opernews.c os_quit.c os_randomnews.c os_raw.c os_reload.c os_restart.c os_session.c os_set.c os_sgline.c os_shutdown.c os_sqline.c os_staff.c os_stats.c os_svsnick.c os_szline.c os_umode.c os_update.c os_userlist.c OBJECTS= $(SRCS:.c=.dll) CFLAGS=/LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../include" diff --git a/src/core/os_stats.c b/src/core/os_stats.c index e359c35f2..ddd104e07 100644 --- a/src/core/os_stats.c +++ b/src/core/os_stats.c @@ -21,11 +21,6 @@ int do_stats(User * u); void get_operserv_stats(long *nrec, long *memuse); void myOperServHelp(User * u); -#ifdef _WIN32 -extern MDE struct clone clonelist[CLONE_DETECT_SIZE]; -extern MDE struct clone warnings[CLONE_DETECT_SIZE]; -#endif - /** * Create the command, and tell anope about it. * @param argc Argument count @@ -391,20 +386,6 @@ void get_operserv_stats(long *nrec, long *memuse) Akill *ak; SXLine *sx; - if (CheckClones) { - mem = sizeof(struct clone) * CLONE_DETECT_SIZE * 2; - for (i = 0; i < CLONE_DETECT_SIZE; i++) { - if (clonelist[i].host) { - count++; - mem += strlen(clonelist[i].host) + 1; - } - if (warnings[i].host) { - count++; - mem += strlen(warnings[i].host) + 1; - } - } - } - count += akills.count; mem += akills.capacity; mem += akills.count * sizeof(Akill); diff --git a/src/operserv.c b/src/operserv.c index 70c2b6ade..ba0e7d854 100644 --- a/src/operserv.c +++ b/src/operserv.c @@ -17,15 +17,6 @@ /*************************************************************************/ - - -/* List of most recent users - statically initialized to zeros */ -struct clone clonelist[CLONE_DETECT_SIZE]; - -/* Which hosts have we warned about, and when? This is used to keep us - * from sending out notices over and over for clones from the same host. */ -struct clone warnings[CLONE_DETECT_SIZE]; - /* List of Services administrators */ SList servadmins; /* List of Services operators */ @@ -57,7 +48,6 @@ char *defconReverseModes(const char *modes); #ifdef DEBUG_COMMANDS -static int send_clone_lists(User * u); static int do_matchwild(User * u); #endif @@ -89,7 +79,6 @@ void moduleAddOperServCmds(void) { #ifdef DEBUG_COMMANDS c = createCommand("LISTTIMERS", send_timeout_list, is_services_root, -1,-1,-1,-1,-1); addCoreCommand(OPERSERV,c); c = createCommand("MATCHWILD", do_matchwild, is_services_root, -1,-1,-1,-1,-1); addCoreCommand(OPERSERV,c); - c = createCommand("LISTCLONES", send_clone_lists, is_services_root, -1,-1,-1,-1,-1); addCoreCommand(OPERSERV,c); #endif } @@ -619,97 +608,6 @@ int nick_is_services_oper(NickCore * nc) return 0; } -/*************************************************************************/ -/**************************** Clone detection ****************************/ -/*************************************************************************/ - -/* We just got a new user; does it look like a clone? If so, send out a - * wallops. - */ - -void check_clones(User * user) -{ - int i, clone_count; - long last_time; - - if (!CheckClones) - return; - - if (clonelist[0].host) - free(clonelist[0].host); - i = CLONE_DETECT_SIZE - 1; - memmove(clonelist, clonelist + 1, sizeof(struct clone) * i); - clonelist[i].host = sstrdup(common_get_vhost(user)); - last_time = clonelist[i].time = time(NULL); - clone_count = 1; - while (--i >= 0 && clonelist[i].host) { - if (clonelist[i].time < last_time - CloneMaxDelay) - break; - if (stricmp(clonelist[i].host, common_get_vhost(user)) == 0) { - ++clone_count; - last_time = clonelist[i].time; - if (clone_count >= CloneMinUsers) - break; - } - } - if (clone_count >= CloneMinUsers) { - /* Okay, we have clones. Check first to see if we already know - * about them. */ - for (i = CLONE_DETECT_SIZE - 1; i >= 0 && warnings[i].host; --i) { - if (stricmp(warnings[i].host, common_get_vhost(user)) == 0) - break; - } - if (i < 0 - || warnings[i].time < user->my_signon - CloneWarningDelay) { - /* Send out the warning, and note it. */ - anope_cmd_global(s_OperServ, - "\2WARNING\2 - possible clones detected from %s", - common_get_vhost(user)); - alog("%s: possible clones detected from %s", s_OperServ, - user->host); - i = CLONE_DETECT_SIZE - 1; - if (warnings[0].host) - free(warnings[0].host); - memmove(warnings, warnings + 1, sizeof(struct clone) * i); - warnings[i].host = sstrdup(common_get_vhost(user)); - warnings[i].time = clonelist[i].time; - if (KillClones) - kill_user(s_OperServ, user->nick, "Clone kill"); - } - } -} - -/*************************************************************************/ - -#ifdef DEBUG_COMMANDS - -/* Send clone arrays to given nick. */ - -static int send_clone_lists(User * u) -{ - int i; - - if (!CheckClones) { - notice_user(s_OperServ, u, "CheckClones not enabled."); - return MOD_CONT; - } - - notice_user(s_OperServ, u, "clonelist[]"); - for (i = 0; i < CLONE_DETECT_SIZE; i++) { - if (clonelist[i].host) - notice_user(s_OperServ, u, " %10ld %s", clonelist[i].time, - clonelist[i].host ? clonelist[i].host : "(null)"); - } - notice_user(s_OperServ, u, "warnings[]"); - for (i = 0; i < CLONE_DETECT_SIZE; i++) { - if (clonelist[i].host) - notice_user(s_OperServ, u, " %10ld %s", warnings[i].time, - warnings[i].host ? warnings[i].host : "(null)"); - } - return MOD_CONT; -} - -#endif /* DEBUG_COMMANDS */ /*************************************************************************/ /*********************** OperServ command functions **********************/ diff --git a/src/users.c b/src/users.c index 1bdfd93dd..15c18775f 100644 --- a/src/users.c +++ b/src/users.c @@ -620,11 +620,6 @@ User *do_nick(const char *source, char *nick, char *username, char *host, } user->vident = sstrdup(username); - if (CheckClones) { - /* Check to see if it looks like clones. */ - check_clones(user); - } - if (svid == 0) { display_news(user, NEWS_LOGON); display_news(user, NEWS_RANDOM); diff --git a/version.log b/version.log index 9b7af37b7..47d2dfae6 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="14" VERSION_EXTRA="" -VERSION_BUILD="1098" +VERSION_BUILD="1099" # $Log$ # +# BUILD : 1.7.14 (1099) +# BUGS : +# NOTES : removed all that clone stuff +# # BUILD : 1.7.14 (1098) # BUGS : # NOTES : db-merger booboo |