1
0
mirror of https://github.com/anope/anope.git synced 2026-06-18 07:54:46 +02:00

Compare commits

..

31 Commits

Author SHA1 Message Date
sjaz 9ab97ae21a Bump versions for 1.8.4 release.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2859 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-04 07:35:51 +00:00
Adam- 246a2c664b Updated Changes
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2858 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-04 07:28:27 +00:00
sjaz ad4180e2d6 Update version.log from my commit r2854.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2856 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-03 20:27:59 +00:00
Adam- 01906d0b74 Don't save databases when rehashed or shutdown from anoperc when in readonly mode
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2855 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-03 20:25:57 +00:00
sjaz 005d3f9558 Small change to the win32 makefile to use Config.bat rather than install.js after spotless.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2854 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-03 20:23:18 +00:00
Adam- a895077b54 Moved an entry in the Changelog I had oringinally put in the wrong place
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2853 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-01 20:02:19 +00:00
Adam- 7e10fca23b Fix Windows build
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2851 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-31 07:26:16 +00:00
Adam- b2d258328a Fixed catserv module demo to work correctly on TS6 IRCDs
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2843 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-30 08:55:34 +00:00
Adam- ef5c945e0b Fixed bug #1149 - Number memos in MySQL correctly
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2842 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-29 21:01:52 +00:00
Adam- 1e0bfbd15a Fixed bugs #1146 and #1147 - Fixed check_modes to only apply defcon settings when defcon is actually on
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2841 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-29 21:01:48 +00:00
Adam- cb73ab9d23 Fixed bug #1144 - replaced some strcpy calls with strscpy to be safer
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2840 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-29 21:01:43 +00:00
Adam- ac90a6935a Log deleting and clearing XOP access lists
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2837 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-24 21:24:22 +00:00
Adam- 766fe138e4 Document usage of the -protocoldebug option in services help
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2836 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-24 01:31:55 +00:00
Adam- dafccc1821 Removed some unused functions from extern.h and changed docs/IRCD to not tell lies
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2834 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-24 01:17:34 +00:00
Adam- ace25983a4 Fixed bug #1143 - Fixed a blind sprintf in sighandler that would write an error message to unallocated memory
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2821 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-19 01:40:01 +00:00
Adam- bb7b8e27ee Fixed a bug introduced in r2667 that could cause some access entries to not convert to XOP correctly
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2819 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-17 21:28:22 +00:00
Adam- 72fa53c20e Fixed bug #1141, reordered some access checks in cs_kick and cs_modes to hide who is on the channel
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2818 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-16 20:21:54 +00:00
Adam- eb0c255fad Fixed os_info to display syntax errors if you entered no text, found by Cronus
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2816 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-16 05:52:05 +00:00
Adam- 01994c1ba1 Fixed os_info to backup its databases properly with the now-working ModuleDatabaseBackup function
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2815 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-16 05:52:00 +00:00
Adam- ec7bc8dd41 Fixed the second part of bug #1138
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2813 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 21:00:59 +00:00
Adam- 6ee50f852e Fixed bug #1140 - Made ModuleDatabaseBackup() not fail when multiple modules want to back up their databases
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2811 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 20:46:28 +00:00
Adam- 6cd3b56805 Fixed bug #1139 - Delete the correct nicks from hs_request database when they are dropped
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2810 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 20:46:24 +00:00
Adam- 27ad395a56 Fixed bug #1138 - Fix maximum hostname length checking in hs_request
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2809 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 20:46:21 +00:00
Adam- c4247b71b2 Fixed check_ban to apply bans even if TTB was changed after the user has been kicked
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2808 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 20:46:16 +00:00
Adam- 5a51984db1 Added support for tracking permanent channels
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2807 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-11 22:59:43 +00:00
Adam- b75abf9ba3 Fixed some memory leaks in ns_register
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2801 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-04 04:28:47 +00:00
Adam- f39c428ac5 Fixed a bug that would cause users access in channels to seemingly disappear. Introduced in release 1.8.3, revision 2667
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2800 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-02 04:25:41 +00:00
Adam- 60f0b2ff87 Documented /nickserv list's ability to accept ranges
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2792 5417fbe8-f217-4b02-8779-1006273d7864
2010-02-19 03:45:34 +00:00
Adam- 6242a60134 Don't show unconfirmed nicks when services admins list suspended nicks
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2791 5417fbe8-f217-4b02-8779-1006273d7864
2010-02-18 18:13:53 +00:00
Adam- dd198b89c0 Fixed it so halfops can not be marked as forcibly deopped, fixes us sometimes undoing all modes by some halfops
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2787 5417fbe8-f217-4b02-8779-1006273d7864
2010-02-09 05:27:08 +00:00
sjaz 2cfcf3c512 Changes docs bump to 1.8 SVN and credit for tr.l added to docs/README (Sorry I missed this for release).
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2774 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-19 08:59:13 +00:00
51 changed files with 213 additions and 114 deletions
+16
View File
@@ -1,3 +1,19 @@
Anope Version 1.8.4
-------------------
3/10 A Added support for tracking permanent channels [ #00]
3/24 A Added logging of deleting and clearing XOP access lists [ #00]
2/9 F Fixed marking halfops as deopped, stops unsetting modes by them [#1136]
2/18 F Fixed listing unconfirmed nicks with suspended nicks to SA+ [ #00]
3/2 F Fixed a bug that could cause access entries to disappear [ #00]
3/13 F Fixed maximum hostname checking in HS SET and HS REQUEST [#1138]
3/13 F Fixed deleting force dropped nicks from the hs_waiting list [#1139]
3/13 F Fixed backing up 3rd party module databases more than once a day [#1140]
3/16 F Fixed os_info to display syntax errors if no command is entered [ #00]
3/29 F Fixed defcon to only apply its mode parameters when it's on [#1146]
3/29 F Fixed numbering of memos when saved in SQL [#1149]
3/30 F Fixed module demos to work correctly on TS6 IRCDs [ #00]
4/3 F Fixed saving databases in readonly mode when using anoperc [ #00]
Anope Version 1.8.3
-------------------
Provided by Anope Dev. <team@anope.org> - 2009
+9
View File
@@ -1,3 +1,12 @@
Anope Version 1.8.4
-------------------
** ADDED CONFIGURATION DIRECTIVES **
** MODIFIED CONFIGURATION DIRECTIVES **
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.8.3
-------------------
** ADDED CONFIGURATION DIRECTIVES **
+10
View File
@@ -1,3 +1,13 @@
Anope Version 1.8.4
-------------------
*** New Strings:
*** Mod Strings:
NICK_HELP_LIST
*** Del Strings:
Anope Version 1.8.3
-------------------
*** New Strings:
+4
View File
@@ -1,3 +1,7 @@
Anope Version 1.8.4
-------------------
- NONE
Anope Version 1.8.3
-------------------
ALTER TABLE `anope_ns_access` DROP INDEX `display` ;
+1 -1
View File
@@ -44,7 +44,7 @@ spotless:
-@erase include\language.h include\version.h *.manifest *~ anope.exe version.sh.exe *.obj anopesmtp.exe
-@echo --
-@echo NOTICE:
-@echo You will need to run cscript /nologo install.js again
-@echo You will need to run config.bat again
-@echo --
mypasql:
+2 -13
View File
@@ -501,24 +501,13 @@ How To Add IRCd Support
to read these lines and set itself up to to handle these events better.
When adding support for your ircd, take the following steps.
1) In the ircd.c find the function anope_cmd_capab(); this function will
send the CAPAB/PROTOCTL line (consult your ircd documentation for
which to send). In a single line type in the tokens that anope must
send. Here is an example of Hybrid's capab line:
/* CAPAB */
void anope_cmd_capab()
{
send_cmd(NULL, "CAPAB TS5 EX IE HOPS HUB AOPS");
}
2) In the ircd.h file make sure to place the defines (see below) that
1) In the ircd.h file make sure to place the defines (see below) that
match your IRCd's tokens; only use the ones that matter to your ircd.
Should your IRCd add new features not covered in the defined, please
contact the Anope Dev team before doing so. See README for information
on how to contact the Anope team.
3) Ensure that the CAPAB/PROTOCTL event his handled correctly.
2) Ensure that the CAPAB/PROTOCTL event his handled correctly.
A) In the function "moduleAddIRCDMsgs" making sure that you have the
following two lines:
+1
View File
@@ -111,6 +111,7 @@ Table of Contents
* Janos Kapitany <sarkanyka@cjbchat.hu> (hun.l)
* Szymon S'wierkosz <szymek@adres.pl> (pl.l)
* Christopher N. <saka@epiknet.org> (fr.l)
* Yusuf Kurekci <ysfm.20@gmail.com> (tr.l)
Anope uses the strlcat() and strlcpy() functions from OpenSSH 2.5.1p2.
These functions are copyrighted by Todd C. Miller:
+1 -1
View File
@@ -64,7 +64,7 @@ Anope for Windows
e.g.
cd c:\anope-trunk
cd c:\anope-stable
4) You now need to configure Anope to your requirements. At the prompt type:
+3 -21
View File
@@ -530,7 +530,6 @@ E int rdb_save_ns_alias(NickAlias * na);
E int rdb_save_ns_req(NickRequest * nr);
E int rdb_save_cs_info(ChannelInfo * ci);
E int rdb_save_bs_core(BotInfo * bi);
E int rdb_save_bs_rdb_core(BotInfo * bi);
E int rdb_save_hs_core(HostCore * hc);
E int rdb_save_os_db(unsigned int maxucnt, unsigned int maxutime,
SList * ak, SList * sgl, SList * sql, SList * szl);
@@ -574,13 +573,9 @@ E char *DefConOffMessage;
E long unsigned int UserKey1;
E long unsigned int UserKey2;
E long unsigned int UserKey3;
/**** converter.c ****/
E int convert_ircservices_44(void);
/**** encrypt.c ****/
E char *EncModule;
E void initEncryption();
E int enc_encrypt(const char *src, int len, char *dest, int size);
E int enc_encrypt_in_place(char *buf, int size);
E int enc_encrypt_check_len(int passlen, int bufsize);
@@ -696,6 +691,7 @@ E void pmodule_set_umode(void (*func) (User * user, int ac, char **av));
E void pmodule_valid_nick(int (*func) (char *nick));
E void pmodule_valid_chan(int (*func) (char *chan));
E void pmodule_flood_mode_check(int (*func) (char *value));
E void pmodule_jointhrottle_mode_check(int (*func) (char *value));
E void pmodule_ircd_var(IRCDVar * ircdvar);
E void pmodule_ircd_cap(IRCDCAPAB * cap);
E void pmodule_ircd_version(char *version);
@@ -714,7 +710,7 @@ E void pmodule_secret_cmode(int mode);
E void pmodule_private_cmode(int mode);
E void pmodule_key_mode(int mode);
E void pmodule_limit_mode(int mode);
E void pmodule_jointhrottle_mode_check(int (*func) (char *value));
E void pmodule_permchan_mode(int mode);
E int anope_get_secret_mode();
E int anope_get_invite_mode();
@@ -723,6 +719,7 @@ E int anope_get_limit_mode();
E int anope_get_private_mode();
E int anope_get_invis_mode();
E int anope_get_oper_mode();
E int anope_get_permchan_mode();
/**** language.c ****/
@@ -1246,23 +1243,17 @@ E void anope_cmd_376(char *source); /* 376 */
E void anope_cmd_391(char *source, char *timestr); /* 391 */
E void anope_cmd_401(char *source, char *who); /* 401 */
E void anope_cmd_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason); /* AKILL */
E void anope_cmd_capab(); /* CAPAB */
E void anope_cmd_chghost(char *nick, char *vhost); /* CHGHOST */
E void anope_cmd_chgident(char *nick, char *vIdent); /* CHGIDENT */
E void anope_cmd_vhost_on(char *nick, char *vIdent, char *vhost); /* CHGHOST + CHGIDENT */
E void anope_cmd_vhost_off(User *u);
E void anope_cmd_connect(int servernum); /* Connect */
E void anope_cmd_bob();
E void anope_cmd_ea(); /* EA */
E void anope_cmd_global(char *source, const char *fmt, ...); /* GLOBOPS */
E void anope_cmd_invite(char *source, char *chan, char *nick); /* INVITE */
E void anope_cmd_join(char *user, char *channel, time_t chantime); /* JOIN */
E void anope_cmd_kick(char *source, char *chan, char *user, const char *fmt, ...); /* KICK */
E void anope_cmd_mode(char *source, char *dest, const char *fmt, ...); /* MODE */
E void anope_cmd_tmode(char *source, char *dest, const char *fmt, ...); /* TMODE */
E void anope_cmd_unban(char *name, char *nick); /* MODE -b */
E void anope_cmd_bot_chan_mode(char *nick, char *chan); /* MODE BotServ */
E void anope_cmd_netinfo(int ac, char **av); /* NETINFO */
E void anope_cmd_nick(char *nick, char *name, char *mode); /* NICK */
E void anope_cmd_chg_nick(char *oldnick, char *newnick); /* NICK */
E void anope_cmd_bot_nick(char *nick, char *user,char *host,char *real,char *modes); /* NICK */
@@ -1272,25 +1263,19 @@ E void anope_cmd_notice_ops(char *source, char *dest, const char *fmt, ...);
E void anope_cmd_notice2(char *source, char *dest, char *msg); /* NOTICE */
E void anope_cmd_serv_notice(char *source, char *dest, char *msg); /* NOTICE */
E void anope_cmd_part(char *nick, char *chan, const char *fmt, ...); /* PART */
E void anope_cmd_pass(char *pass); /* PASS */
E void anope_cmd_pong(char *servname, char *who); /* PONG */
E void anope_cmd_privmsg(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */
E void anope_cmd_action(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */
E void anope_cmd_privmsg2(char *source, char *dest, char *msg); /* PRIVMSG */
E void anope_cmd_serv_privmsg(char *source, char *dest, char *msg); /* PRIVMSG */
E void anope_cmd_protoctl(); /* PROTOCTL */
E void anope_cmd_quit(char *source, const char *fmt, ...); /* QUIT */
E void anope_cmd_remove_akill(char *user, char *host); /* RAKILL */
E void anope_cmd_server(char *servname, int hop, char *descript); /* SERVER */
E void anope_cmd_sgline(char *mask, char *reason); /* SGLINE */
E void anope_cmd_sqline(char *mask, char *reason); /* SQLINE */
E void anope_cmd_szline(char *mask, char *reason, char *whom); /* SZLINE */
E void anope_cmd_squit(char *servname, char *message); /* SQUIT */
E void anope_cmd_svinfo(); /* SVINFO */
E void anope_cmd_svsadmin(char *server, int set); /* SVSADMIN */
E void anope_cmd_svshold(char *nick); /* SVSHOLD */
E void anope_cmd_release_svshold(char *nick); /* SVSHOLD */
E void anope_cmd_svsinfo(); /* SVSINFO */
E void anope_cmd_svsjoin(char *source, char *nick,char *chan, char *param); /* SVSJOIN */
E void anope_cmd_svskill(char *source,char *user, const char *fmt, ...); /* SVSKILL */
E void anope_cmd_svsmode(User * u, int ac, char **av); /* SVSMODE */
@@ -1305,8 +1290,6 @@ E void anope_cmd_unsgline(char *mask); /* UNSGLINE */
E void anope_cmd_unsqline(char *user); /* UNSQLINE */
E void anope_cmd_unszline(char *mask); /* UNSZLINE */
E void anope_cmd_eob(); /* EOB - end of burst */
E void anope_cmd_burst(); /* BURST - use eob to send burst 0 */
E void anope_cmd_svswatch(char *sender, char *nick, char *parm);
E void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...); /* CTCP */
EI int anope_event_482(char *source, int ac, char **av);
@@ -1354,7 +1337,6 @@ EI int anope_event_eob(char *source, int ac, char **av);
EI int anope_event_pass(char *source, int ac, char **av);
EI int anope_event_netinfo(char *source, int ac, char **av);
EI int anope_event_error(char *source, int ac, char **av);
EI int anope_event_eb(char *source, int ac, char **av);
EI int anope_event_netctrl(char *source, int ac, char **av);
EI int anope_event_notice(char *source, int ac, char **av);
EI int anope_event_snotice(char *source, int ac, char **av);
+1
View File
@@ -1231,6 +1231,7 @@ typedef struct ircd_modes_ {
int chan_private;
int chan_key;
int chan_limit;
int chan_perm;
} IRCDModes;
+4
View File
@@ -3900,6 +3900,7 @@ NICK_HELP_LIST
Lists all registered nicknames which match the given
pattern, in nick!user@host format. Nicks with the
PRIVATE option set will not be displayed.
Note that a pattern preceding with a '#' specifies a range.
Examples:
@@ -3913,6 +3914,9 @@ NICK_HELP_LIST
LIST *!*@*.bar.org
Lists all nicks owned by users in the bar.org
domain.
LIST #50-100
Lists nicks numbers 50-100
NICK_HELP_ALIST
Syntax: ALIST [level]
+4 -1
View File
@@ -850,7 +850,10 @@ static void check_ban(ChannelInfo * ci, User * u, int ttbtype)
return;
bd->ttb[ttbtype]++;
if (bd->ttb[ttbtype] == ci->ttb[ttbtype]) {
if (ci->ttb[ttbtype] && bd->ttb[ttbtype] >= ci->ttb[ttbtype]) {
/* bd->ttb[ttbtype] can possibly be > ci->ttb[ttbtype] if ci->ttb[ttbtype] was changed after
* the user has been kicked - Adam
*/
char *av[4];
int ac;
char mask[BUFSIZE];
+15 -4
View File
@@ -52,6 +52,10 @@ void chan_deluser(User * user, Channel * c)
anope_cmd_part(c->ci->bi->nick, c->name, NULL);
}
/* Channel is permament and shouldn't be deleted */
if (anope_get_permchan_mode() && c->mode & anope_get_permchan_mode())
return;
if (!c->users)
chan_delete(c);
}
@@ -262,9 +266,9 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
if (add) {
chan_set_user_status(chan, user, cum->status);
/* If this does +o, remove any DEOPPED flag */
if (cum->status & CUS_OP)
chan_remove_user_status(chan, user, CUS_DEOPPED);
/* If this does +o or +h, remove any DEOPPED flag */
if (cum->status & CUS_OP || cum->status & CUS_HALFOP)
chan_remove_user_status(chan, user, CUS_DEOPPED);
} else {
chan_remove_user_status(chan, user, cum->status);
}
@@ -1512,6 +1516,8 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
strcat(modebuf, "h");
strcat(userbuf, " ");
strcat(userbuf, GET_USER(user));
/* Halfops are ops too, having a halfop with CUS_DEOPPED is not good - Adam */
rem_modes |= CUS_DEOPPED;
} else {
add_modes &= ~CUS_HALFOP;
}
@@ -1543,12 +1549,17 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
strcat(modebuf, "o");
strcat(userbuf, " ");
strcat(userbuf, GET_USER(user));
add_modes |= CUS_DEOPPED;
/* Do not mark a user as deopped if they are halfopd - Adam */
if (!(add_modes & CUS_HALFOP) && !(status & CUS_HALFOP))
add_modes |= CUS_DEOPPED;
}
if (rem_modes & CUS_HALFOP) {
strcat(modebuf, "h");
strcat(userbuf, " ");
strcat(userbuf, GET_USER(user));
/* Do not mark a user as deopped if they are opped - Adam */
if (!(add_modes & CUS_OP) && !(status & CUS_OP))
add_modes |= CUS_DEOPPED;
}
}
+8 -8
View File
@@ -1086,6 +1086,7 @@ void check_modes(Channel * c)
ChannelInfo *ci;
CBModeInfo *cbmi = NULL;
CBMode *cbm = NULL;
boolean DefConOn = DefConLevel != 5;
if (!c) {
if (debug) {
@@ -1131,7 +1132,7 @@ void check_modes(Channel * c)
*/
if (ci)
modes = ~c->mode & ci->mlock_on;
if (DefConModesSet)
if (DefConOn && DefConModesSet)
modes |= (~c->mode & DefConModesOn);
/* Initialize the buffers */
@@ -1147,7 +1148,7 @@ void check_modes(Channel * c)
if (cbmi->getvalue && cbmi->csgetvalue) {
char *value;
/* Check if it's a defcon or mlock mode */
if (DefConModesOn & cbmi->flag)
if (DefConOn && DefConModesOn & cbmi->flag)
value = cbmi->csgetvalue(&DefConModesCI);
else if (ci)
value = cbmi->csgetvalue(ci);
@@ -1168,13 +1169,13 @@ void check_modes(Channel * c)
}
} else if (cbmi->getvalue && cbmi->csgetvalue
&& ((ci && (ci->mlock_on & cbmi->flag))
|| (DefConModesOn & cbmi->flag))
|| (DefConOn && DefConModesOn & cbmi->flag))
&& (c->mode & cbmi->flag)) {
char *value = cbmi->getvalue(c);
char *csvalue;
/* Check if it's a defcon or mlock mode */
if (DefConModesOn & cbmi->flag)
if (DefConOn && DefConModesOn & cbmi->flag)
csvalue = cbmi->csgetvalue(&DefConModesCI);
else if (ci)
csvalue = cbmi->csgetvalue(ci);
@@ -1205,10 +1206,10 @@ void check_modes(Channel * c)
if (ci) {
modes = c->mode & ci->mlock_off;
/* Make sure we don't remove a mode just set by defcon.. ~ Viper */
if (DefConModesSet)
if (DefConOn && DefConModesSet)
modes &= ~(modes & DefConModesOn);
}
if (DefConModesSet)
if (DefConOn && DefConModesSet)
modes |= c->mode & DefConModesOff;
if (modes) {
@@ -1570,7 +1571,7 @@ int check_kick(User * user, char *chan, time_t chants)
if (akick->flags & AK_ISNICK)
get_idealban(ci, user, mask, sizeof(mask));
else
strcpy(mask, akick->u.mask);
strscpy(mask, akick->u.mask, sizeof(mask));
reason = akick->reason ? akick->reason : CSAutokickReason;
goto kick;
}
@@ -1857,7 +1858,6 @@ void cs_remove_nick(const NickCore * nc)
if (ca->in_use && ca->nc == nc) {
ca->in_use = 0;
ca->nc = NULL;
ci->accesscount--;
}
}
CleanAccess(ci);
+2 -2
View File
@@ -123,8 +123,6 @@ int do_cs_kick(User * u)
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
} else if (is_same ? !(u2 = u) : !(u2 = finduser(params))) {
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, params);
} else if (!is_on_chan(c, u2)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
} else if (!is_same ? !check_access(u, ci, CA_KICK) :
!check_access(u, ci, CA_KICKME)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
@@ -133,6 +131,8 @@ int do_cs_kick(User * u)
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else if (is_protected(u2)) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else if (!is_on_chan(c, u2)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
} else {
char *av[3];
+6 -6
View File
@@ -243,10 +243,10 @@ int do_owner(User * u)
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name);
} else if (ci->flags & CI_VERBOTEN) {
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
} else if (!is_on_chan(c, u)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
} else if (!is_founder(u, ci)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
} else if (!is_on_chan(c, u)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
} else {
anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerset,
GET_USER(u));
@@ -299,10 +299,10 @@ int do_deowner(User * u)
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name);
} else if (ci->flags & CI_VERBOTEN) {
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
} else if (!is_on_chan(c, u)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
} else if (!is_founder(u, ci)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
} else if (!is_on_chan(c, u)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
} else {
anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerunset,
GET_USER(u));
@@ -366,8 +366,6 @@ int do_util(User * u, CSModeUtil * util)
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
} else if (is_same ? !(u2 = u) : !(u2 = finduser(nick))) {
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, nick);
} else if (!is_on_chan(c, u2)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
} else if (is_same ? !check_access(u, ci, util->levelself) :
!check_access(u, ci, util->level)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
@@ -376,6 +374,8 @@ int do_util(User * u, CSModeUtil * util)
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else if (*util->mode == '-' && is_protected(u2) && !is_same) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else if (!is_on_chan(c, u2)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
} else {
anope_cmd_mode(whosends(ci), c->name, "%s %s", util->mode,
GET_USER(u2));
+1 -1
View File
@@ -774,9 +774,9 @@ int do_set_xop(User * u, ChannelInfo * ci, char *param)
} else {
access->in_use = 0;
access->nc = NULL;
CleanAccess(ci);
}
}
CleanAccess(ci);
reset_levels(ci);
ci->flags |= CI_XOP;
+5
View File
@@ -374,8 +374,10 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
notice_lang(s_ChanServ, u, xmsgs[7], ci->name);
}
} else if (deleted == 1) {
alog("%s: %s!%s@%s (level %d) deleted access of user %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), nick, ci->name);
notice_lang(s_ChanServ, u, xmsgs[9], ci->name);
} else {
alog("%s: %s!%s@%s (level %d) deleted access of users %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), nick, ci->name);
notice_lang(s_ChanServ, u, xmsgs[10], deleted, ci->name);
}
} else {
@@ -400,6 +402,7 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
deleted = 0;
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else {
alog("%s: %s!%s@%s (level %d) deleted access of %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), access->nc->display, ci->name);
notice_lang(s_ChanServ, u, xmsgs[8], access->nc->display,
ci->name);
access->nc = NULL;
@@ -464,6 +467,8 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
CleanAccess(ci);
alog("%s: %s!%s@%s cleared the %s list of %s", s_ChanServ, u->nick, u->username, u->host, xname, ci->name);
send_event(EVENT_ACCESS_CLEAR, 2, ci->name, u->nick);
notice_lang(s_ChanServ, u, xmsgs[13], ci->name);
+2 -2
View File
@@ -119,8 +119,8 @@ int myDoSet(User * u)
return MOD_CONT;
}
}
if (strlen(rawhostmask) < HOSTMAX - 1)
snprintf(hostmask, HOSTMAX - 1, "%s", rawhostmask);
if (strlen(rawhostmask) < HOSTMAX)
snprintf(hostmask, HOSTMAX, "%s", rawhostmask);
else {
notice_lang(s_HostServ, u, HOST_SET_TOOLONG, HOSTMAX);
if (vIdent) {
+2 -2
View File
@@ -122,8 +122,8 @@ int do_setall(User * u)
}
}
if (strlen(rawhostmask) < HOSTMAX - 1)
snprintf(hostmask, HOSTMAX - 1, "%s", rawhostmask);
if (strlen(rawhostmask) < HOSTMAX)
snprintf(hostmask, HOSTMAX, "%s", rawhostmask);
else {
notice_lang(s_HostServ, u, HOST_SET_TOOLONG, HOSTMAX);
if (vIdent) {
+1 -1
View File
@@ -221,7 +221,7 @@ int do_list(User * u)
}
}
if (nronly == 1 || (is_servadmin && matchflags == 0)) {
if (nronly == 1 || (is_servadmin && matchflags == 0 && susp_keyword == 0)) {
noexpire_char = ' ';
for (i = 0; i < 1024; i++) {
for (nr = nrlists[i]; nr; nr = nr->next) {
+4
View File
@@ -383,6 +383,7 @@ int do_confirm(User * u)
}
} else {
free(passcode);
notice_lang(s_NickServ, u, NICK_FORCE_REG, nr->nick);
}
delnickrequest(nr); /* remove the nick request */
@@ -391,6 +392,9 @@ int do_confirm(User * u)
notice_lang(s_NickServ, u, NICK_REGISTRATION_FAILED);
}
if (email)
free(email);
/* Enable nick tracking if enabled */
if (NSNickTracking)
nsStartNickTracking(u);
+7 -18
View File
@@ -732,7 +732,7 @@ void backup_databases(void)
void ModuleDatabaseBackup(char *dbname)
{
char ext[9];
time_t t;
struct tm tm;
@@ -743,23 +743,12 @@ void ModuleDatabaseBackup(char *dbname)
time(&t);
tm = *localtime(&t);
if (!curday) {
curday = tm.tm_yday;
return;
}
if (curday != tm.tm_yday) {
char ext[9];
if (debug) {
alog("Module Database Backing up %s", dbname);
}
ModuleRemoveBackups(dbname);
curday = tm.tm_yday;
strftime(ext, sizeof(ext), "%Y%m%d", &tm);
rename_database(dbname, ext);
}
if (debug)
alog("Module Database Backing up %s", dbname);
ModuleRemoveBackups(dbname);
curday = tm.tm_yday;
strftime(ext, sizeof(ext), "%Y%m%d", &tm);
rename_database(dbname, ext);
}
/*************************************************************************/
+1
View File
@@ -362,6 +362,7 @@ static int parse_options(int ac, char **av)
fprintf(stdout,
"-expire -expire expiretime(secs)\n");
fprintf(stdout, "-debug -debug\n");
fprintf(stdout, "-protocoldebug -protocoldebug\n");
fprintf(stdout, "-nofork -nofork\n");
fprintf(stdout, "-logchan -logchan channelname\n");
fprintf(stdout, "-skeleton -skeleton\n");
+11
View File
@@ -1203,6 +1203,11 @@ void pmodule_limit_mode(int mode)
void pmodule_invite_cmode(int mode)
{
ircd_modes.chan_invite = mode;
}
void pmodule_secret_cmode(int mode)
{
ircd_modes.chan_secret = mode;
}
void pmodule_private_cmode(int mode)
@@ -1237,3 +1242,9 @@ int anope_get_limit_mode()
int anope_get_invite_mode()
{
return ircd_modes.chan_invite;
}
int anope_get_secret_mode()
{
return ircd_modes.chan_secret;
+1 -1
View File
@@ -242,7 +242,7 @@ int MailValidate(const char *email)
if (!email)
return 0;
strcpy(copy, email);
strscpy(copy, email, sizeof(copy));
domain = strchr(copy, '@');
if (!domain)
+5 -3
View File
@@ -145,6 +145,8 @@ extern void expire_all(void)
void save_databases(void)
{
if (readonly)
return;
waiting = -19;
send_event(EVENT_DB_SAVING, 1, EVENT_START);
waiting = -2;
@@ -331,7 +333,7 @@ void sighandler(int signum)
* always set when we need it. It seems some signals slip through to the
* QUIT code without having a valid quitmsg. -GD
*/
quitmsg = sstrdup("Signal Received");
quitmsg = "Signal Received";
if (started) {
#ifndef _WIN32
if (signum == SIGHUP) { /* SIGHUP = save databases and restart */
@@ -362,8 +364,8 @@ void sighandler(int signum)
save_databases();
if (!read_config(1)) {
sprintf(quitmsg,
"Error Reading Configuration File (Received SIGUSR2)");
static char *buf = "Error Reading Configuration File (Received SIGUSR2)";
quitmsg = buf;
quitting = 1;
}
send_event(EVENT_RELOAD, 1, EVENT_START);
+3
View File
@@ -274,6 +274,9 @@ void memo_send(User * u, char *name, char *text, int z)
m->time = time(NULL);
m->text = sstrdup(text);
m->flags = MF_UNREAD;
#ifdef USE_MYSQL
m->id = 0;
#endif
/* Set notify sent flag - DrStein */
if (z == 2) {
m->flags |= MF_NOTIFYS;
+7 -6
View File
@@ -24,15 +24,11 @@ int AnopeInit(int argc, char **argv)
{
Message *msg = NULL;
int status;
#ifdef IRC_UNREAL32
if (UseTokens) {
msg = createMessage("!", my_privmsg);
} else {
msg = createMessage("PRIVMSG", my_privmsg);
}
#else
msg = createMessage("PRIVMSG", my_privmsg);
#endif
status = moduleAddMessage(msg, MOD_HEAD);
if (status == MOD_ERR_OK) {
addClient(s_CatServ, "meow!");
@@ -52,12 +48,15 @@ void AnopeFini(void)
int my_privmsg(char *source, int ac, char **av)
{
User *u;
Uid *ud = NULL;
char *s;
/* First, some basic checks */
if (ac != 2)
return MOD_CONT; /* bleh */
if (!(u = finduser(source))) {
if (ircd->ts6)
u = find_byuid(source); // If this is a ts6 ircd, find the user by uid
if (!u && !(u = finduser(source))) { // If user isn't found and we cant find them by nick, return
return MOD_CONT;
} /* non-user source */
if (*av[0] == '#') {
@@ -71,7 +70,9 @@ int my_privmsg(char *source, int ac, char **av)
if (stricmp(s, ServerName) != 0)
return MOD_CONT;
}
if ((stricmp(av[0], s_CatServ)) == 0) { /* its for US! */
if (ircd->ts6)
ud = find_uid(s_CatServ); // Find CatServs UID
if (stricmp(av[0], s_CatServ) == 0 || (ud && strcmp(av[0], ud->uid) == 0)) { /* If the nick or the uid matches its for us */
catserv(u, av[1]);
return MOD_STOP;
} else { /* ok it isnt us, let the old code have it */
+13 -13
View File
@@ -71,7 +71,7 @@ void my_memo_lang(User * u, char *name, int z, int number, ...);
void req_send_memos(User * u, char *vHost);
void show_list(User * u);
int hs_do_waiting(User * u);
int ns_do_drop(User * u);
int hsreqevt_nick_dropped(int argc, char **argv);
void hsreq_save_db(void);
void hsreq_load_db(void);
@@ -112,8 +112,8 @@ int AnopeInit(int argc, char **argv)
-1, -1);
moduleAddCommand(HOSTSERV, c, MOD_HEAD);
c = createCommand("drop", ns_do_drop, NULL, -1, -1, -1, -1, -1);
moduleAddCommand(NICKSERV, c, MOD_HEAD);
hook = createEventHook(EVENT_NICK_DROPPED, hsreqevt_nick_dropped);
moduleAddEventHook(hook);
hook = createEventHook(EVENT_DB_SAVING, hsreqevt_db_saving);
moduleAddEventHook(hook);
@@ -204,7 +204,7 @@ int hs_do_request(User * u)
return MOD_CONT;
}
}
if (strlen(rawhostmask) < HOSTMAX - 1) {
if (strlen(rawhostmask) < HOSTMAX) {
snprintf(hostmask, HOSTMAX, "%s", rawhostmask);
} else {
notice_lang(s_HostServ, u, HOST_SET_TOOLONG, HOSTMAX);
@@ -328,19 +328,19 @@ void req_send_memos(User * u, char *vHost)
}
}
int ns_do_drop(User * u)
int hsreqevt_nick_dropped(int argc, char **argv)
{
HostCore *tmp;
boolean found = false;
NickAlias *na;
HostCore *tmp;
boolean found = false;
na = findnick(u->nick);
tmp = findHostCore(hs_request_head, u->nick, &found);
if (!argc)
return MOD_CONT;
if (found && na)
hs_request_head = deleteHostCore(hs_request_head, tmp);
tmp = findHostCore(hs_request_head, argv[0], &found);
if (found)
hs_request_head = deleteHostCore(hs_request_head, tmp);
return MOD_CONT;
return MOD_CONT;
}
int hs_do_reject(User * u)
+6 -1
View File
@@ -198,6 +198,8 @@ int myAddNickInfo(User * u)
} else {
moduleNoticeLang(s_NickServ, u, OINFO_SYNTAX);
}
} else {
moduleNoticeLang(s_NickServ, u, OINFO_SYNTAX);
}
return MOD_CONT;
}
@@ -266,6 +268,8 @@ int myAddChanInfo(User * u)
} else {
moduleNoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
}
} else {
moduleNoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
}
return MOD_CONT;
}
@@ -459,7 +463,8 @@ int mSaveData(int argc, char **argv)
**/
int mBackupData(int argc, char **argv)
{
ModuleDatabaseBackup(OSInfoDBName);
if (argc >= 1 && !stricmp(argv[0], EVENT_START))
ModuleDatabaseBackup(OSInfoDBName);
return MOD_CONT;
}
+10 -6
View File
@@ -408,15 +408,17 @@ int db_mysql_save_ns_core(NickCore * nc)
q_sender = db_mysql_quote(nc->memos.memos[i].sender);
q_text = db_mysql_quote(nc->memos.memos[i].text);
ret = db_mysql_try("UPDATE anope_ms_info "
if (nc->memos.memos[i].id != 0)
{
ret = db_mysql_try("UPDATE anope_ms_info "
"SET receiver = '%s', number = %d, flags = %d, time = %d, sender = '%s', text = '%s', active = 1 "
"WHERE nm_id = %d AND serv = 'NICK'",
q_display, nc->memos.memos[i].number,
nc->memos.memos[i].flags,
(int) nc->memos.memos[i].time, q_sender, q_text,
nc->memos.memos[i].id);
if (ret && (mysql_affected_rows(mysql) == 0)) {
}
if (nc->memos.memos[i].id == 0 || (ret && (mysql_affected_rows(mysql) == 0))) {
ret = db_mysql_try("INSERT INTO anope_ms_info "
"(receiver, number, flags, time, sender, text, serv, active) "
"VALUES ('%s', %d, %d, %d, '%s', '%s', 'NICK', 1)",
@@ -626,15 +628,17 @@ int db_mysql_save_cs_info(ChannelInfo * ci)
q_sender = db_mysql_quote(ci->memos.memos[i].sender);
q_text = db_mysql_quote(ci->memos.memos[i].text);
ret = db_mysql_try("UPDATE anope_ms_info "
if (ci->memos.memos[i].id != 0)
{
ret = db_mysql_try("UPDATE anope_ms_info "
"SET receiver = '%s', number = %d, flags = %d, time = %d, sender = '%s', text = '%s', active = 1 "
"WHERE nm_id = %d AND serv = 'CHAN'",
q_name, ci->memos.memos[i].number,
ci->memos.memos[i].flags,
(int) ci->memos.memos[i].time, q_sender, q_text,
ci->memos.memos[i].id);
if (ret && (mysql_affected_rows(mysql) == 0)) {
}
if (ci->memos.memos[i].id == 0 || (ret && (mysql_affected_rows(mysql) == 0))) {
ret = db_mysql_try("INSERT INTO anope_ms_info "
"(receiver, number,flags, time, sender, text, serv, active) "
"VALUES ('%s', %d, %d, %d, '%s', '%s', 'CHAN', 1)",
+1
View File
@@ -1678,6 +1678,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1989,6 +1989,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1385,6 +1385,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1574,6 +1574,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1958,6 +1958,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -2672,6 +2672,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(CMODE_P);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1880,6 +1880,7 @@ AnopeInit (int argc, char **argv)
pmodule_private_cmode (CMODE_p);
pmodule_key_mode (CMODE_k);
pmodule_limit_mode (CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds ();
moduleAddIRCDMsgs ();
+1
View File
@@ -1857,6 +1857,7 @@ AnopeInit (int argc, char **argv)
pmodule_private_cmode (CMODE_p);
pmodule_key_mode (CMODE_k);
pmodule_limit_mode (CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds ();
moduleAddIRCDMsgs ();
+1
View File
@@ -1798,6 +1798,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1678,6 +1678,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1883,6 +1883,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1834,6 +1834,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1706,6 +1706,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1735,6 +1735,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1819,6 +1819,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1600,6 +1600,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -2256,6 +2256,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+1
View File
@@ -1717,6 +1717,7 @@ int AnopeInit(int argc, char **argv)
pmodule_private_cmode(CMODE_p);
pmodule_key_mode(CMODE_k);
pmodule_limit_mode(CMODE_l);
pmodule_permchan_mode(0);
moduleAddAnopeCmds();
moduleAddIRCDMsgs();
+29 -3
View File
@@ -7,11 +7,37 @@
VERSION_MAJOR="1"
VERSION_MINOR="8"
VERSION_PATCH="2"
VERSION_PATCH="4"
VERSION_EXTRA=""
VERSION_BUILD="2771"
VERSION_BUILD="2859"
# $Log$ #
# $Log$ # Leading up to 1.8.4 Release
#Revision 2855 - Don't save databases when rehashed or shutdown from anoperc when in readonly mode
#Revision 2854 - Small change to the win32 makefile to use Config.bat rather than install.js after spotless.
#Revision 2843 - Fixed catserv module demo to work correctly on TS6 IRCds
#Revision 2842 - Fixed bug #1149 - Number memos in MySQL correctly
#Revision 2841 - Fixed bugs #1146 and #1147 - Fixed check_modes to only apply defcon settings when defcon is actually on
#Revision 2840 - Fixed bug #1144 - replaced some strcpy calls with strscpy to be safer
#Revision 2837 - Log deleting and clearing XOP access lists
#Revision 2836 - Document usage of the -protocoldebug option in services help
#Revision 2834 - Removed some unused functions from extern.h and changed docs/IRCD to not tell lies
#Revision 2821 - Fixed bug #1143 - Fixed a blind sprintf in sighandler that would write an error message to unallocated memory
#Revision 2819 - Fixed a bug introduced in r2667 that could cause some access entries to not convert to XOP correctly
#Revision 2818 - Fixed bug #1141, reordered some access checks in cs_kick and cs_modes to hide who is on the channel
#Revision 2816 - Fixed os_info to display syntax errors if you entered no text
#Revision 2815 - Fixed os_info to backup its databases properly with the now-working ModuleDatabaseBackup function
#Revision 2811 - Fixed bug #1140 - Made ModuleDatabaseBackup() not fail when multiple modules want to back up their databases
#Revision 2810 - Fixed bug #1139 - Delete the correct nicks from hs_request database when they are dropped
#Revision 2809 - Fixed bug #1138 - Fix maximum hostname length checking in hs_request
#Revision 2808 - Fixed check_ban to apply bans even if TTB was changed after the user has been kicked
#Revision 2807 - Added support for tracking permanent channels
#Revision 2801 - Fixed some memory leaks in ns_register
#Revision 2800 - Fixed a bug that would cause users access in channels to seemingly disappear. Introduced in release 1.8.3, revision 2667
#Revision 2792 - Documented /nickserv list's ability to accept ranges
#Revision 2791 - Don't show unconfirmed nicks when services admins list suspended nicks
#Revision 2787 - Fixed it so halfops can not be marked as forcibly deopped, fixes us sometimes undoing all modes by some halfops
#Revision 2774 - Bump Changes versions to 1.8-SVN & credit for tr.l
# Leading up to 1.8.3 Release
#Revision 2770 - Updated docs/INSTALL with some more upto date information