diff options
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | botserv.c | 11 | ||||
-rw-r--r-- | init.c | 142 | ||||
-rw-r--r-- | services.h | 209 | ||||
-rw-r--r-- | version.log | 6 |
5 files changed, 236 insertions, 133 deletions
@@ -1,6 +1,7 @@ Anope Version S V N ------------------- Provided by Anope Dev. <dev@anope.org> - 2004 +06/10 A User customizable pseudo-client modes. [ #99] 06/10 A Improved handling of /NS INFO for pseudo-clients. [ #98] 06/07 A Added register script in /bin/ for users to register anope. [ #00] 05/27 A Better /OS MODLIST output to include version information. [ #74] @@ -1381,15 +1381,8 @@ static int do_bot(User * u) EnforceQlinedNick(nick, s_BotServ); /* We make the bot online, ready to serve */ -#if defined(IRC_UNREAL) || defined (IRC_VIAGRA) - NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+qS", 1); -#elif defined(IRC_ULTIMATE) || defined (IRC_ULTIMATE3) - NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+pS", 1); -#elif defined(IRC_RAGE2) - NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+S", 1); -#else - NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+", 1); -#endif + NEWNICK(bi->nick, bi->user, bi->host, bi->real, + BOTSERV_BOTS_MODE, 1); notice_lang(s_BotServ, u, BOT_BOT_ADDED, bi->nick, bi->user, bi->host, bi->real); @@ -88,200 +88,96 @@ void introduce_user(const char *user) if (!user || stricmp(user, s_NickServ) == 0) { EnforceQlinedNick(s_NickServ, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) - NICK(s_NickServ, desc_NickServ, "+S"); -#elif defined(IRC_RAGE2) - NICK(s_NickServ, desc_NickServ, "+dS"); -#elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_NickServ, desc_NickServ, "+oS"); -#else - NICK(s_NickServ, desc_NickServ, "+o"); -#endif + NICK(s_NickServ, desc_NickServ, NICKSERV_MODE); } - if (!user || stricmp(user, s_ChanServ) == 0) { EnforceQlinedNick(s_ChanServ, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) - NICK(s_ChanServ, desc_ChanServ, "+S"); -#elif defined(IRC_RAGE2) - NICK(s_ChanServ, desc_ChanServ, "+dS"); -#elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_ChanServ, desc_ChanServ, "+oS"); -#else - NICK(s_ChanServ, desc_ChanServ, "+o"); -#endif + NICK(s_ChanServ, desc_ChanServ, CHANSERV_MODE); } #ifdef HAS_VHOST if (s_HostServ && (!user || stricmp(user, s_HostServ) == 0)) { EnforceQlinedNick(s_HostServ, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_HostServ, desc_HostServ, "+oS"); -#elif defined(IRC_RAGE2) - NICK(s_HostServ, desc_HostServ, "+dS"); -#else - NICK(s_HostServ, desc_HostServ, "+o"); -#endif + NICK(s_HostServ, desc_HostServ, HOSTSERV_MODE); } #endif if (!user || stricmp(user, s_MemoServ) == 0) { EnforceQlinedNick(s_MemoServ, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) - NICK(s_MemoServ, desc_MemoServ, "+S"); -#elif defined(IRC_RAGE2) - NICK(s_MemoServ, desc_MemoServ, "+dS"); -#elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_MemoServ, desc_MemoServ, "+oS"); -#else - NICK(s_MemoServ, desc_MemoServ, "+o"); -#endif + NICK(s_MemoServ, desc_MemoServ, MEMOSERV_MODE); } if (s_BotServ && (!user || stricmp(user, s_BotServ) == 0)) { EnforceQlinedNick(s_BotServ, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) - NICK(s_BotServ, desc_BotServ, "+S"); -#elif defined(IRC_RAGE2) - NICK(s_BotServ, desc_BotServ, "+dS"); -#elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_BotServ, desc_BotServ, "+oS"); -#else - NICK(s_BotServ, desc_BotServ, "+o"); -#endif + NICK(s_BotServ, desc_BotServ, BOTSERV_MODE); } if (!user || stricmp(user, s_HelpServ) == 0) { EnforceQlinedNick(s_HelpServ, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) - NICK(s_HelpServ, desc_HelpServ, "+Sh"); -#elif defined(IRC_RAGE2) - NICK(s_HelpServ, desc_HelpServ, "+dSh"); -#elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_HelpServ, desc_HelpServ, "+oS"); -#else - NICK(s_HelpServ, desc_HelpServ, "+h"); -#endif + NICK(s_HelpServ, desc_HelpServ, HELPSERV_MODE); } if (!user || stricmp(user, s_OperServ) == 0) { EnforceQlinedNick(s_OperServ, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) - NICK(s_OperServ, desc_OperServ, "+iS"); -#elif defined(IRC_RAGE2) - NICK(s_OperServ, desc_OperServ, "+diS"); -#elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_OperServ, desc_OperServ, "+ioS"); -#else - NICK(s_OperServ, desc_OperServ, "+io"); -#endif + NICK(s_OperServ, desc_OperServ, OPERSERV_MODE); } if (s_DevNull && (!user || stricmp(user, s_DevNull) == 0)) { EnforceQlinedNick(s_DevNull, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3) - NICK(s_DevNull, desc_DevNull, "+iS"); -#elif defined(IRC_RAGE2) - NICK(s_DevNull, desc_DevNull, "+diS"); -#else - NICK(s_DevNull, desc_DevNull, "+i"); -#endif + NICK(s_DevNull, desc_DevNull, DEVNULL_MODE); } if (!user || stricmp(user, s_GlobalNoticer) == 0) { EnforceQlinedNick(s_GlobalNoticer, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3) - NICK(s_GlobalNoticer, desc_GlobalNoticer, "+iS"); -#elif defined(IRC_RAGE2) - NICK(s_GlobalNoticer, desc_GlobalNoticer, "+diS"); -#elif defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_GlobalNoticer, desc_GlobalNoticer, "+ioS"); -#else - NICK(s_GlobalNoticer, desc_GlobalNoticer, "+io"); -#endif + NICK(s_GlobalNoticer, desc_GlobalNoticer, GLOBAL_MODE); } /* We make aliases go online */ if (s_NickServAlias && (!user || stricmp(user, s_NickServAlias) == 0)) { EnforceQlinedNick(s_NickServAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_NickServAlias, desc_NickServAlias, "+oS"); -#else - NICK(s_NickServAlias, desc_NickServAlias, "+o"); -#endif + NICK(s_NickServAlias, desc_NickServAlias, NICKSERV_ALIAS_MODE); } if (s_ChanServAlias && (!user || stricmp(user, s_ChanServAlias) == 0)) { EnforceQlinedNick(s_ChanServAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_ChanServAlias, desc_ChanServAlias, "+oS"); -#else - NICK(s_ChanServAlias, desc_ChanServAlias, "+o"); -#endif + NICK(s_ChanServAlias, desc_ChanServAlias, CHANSERV_ALIAS_MODE); } if (s_MemoServAlias && (!user || stricmp(user, s_MemoServAlias) == 0)) { EnforceQlinedNick(s_MemoServAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_MemoServAlias, desc_MemoServAlias, "+oS"); -#else - NICK(s_MemoServAlias, desc_MemoServAlias, "+o"); -#endif + NICK(s_MemoServAlias, desc_MemoServAlias, MEMOSERV_ALIAS_MODE); } if (s_BotServAlias && (!user || stricmp(user, s_BotServAlias) == 0)) { EnforceQlinedNick(s_BotServAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_BotServAlias, desc_BotServAlias, "+oS"); -#else - NICK(s_BotServAlias, desc_BotServAlias, "+o"); -#endif + NICK(s_BotServAlias, desc_BotServAlias, BOTSERV_ALIAS_MODE); } if (s_HelpServAlias && (!user || stricmp(user, s_HelpServAlias) == 0)) { EnforceQlinedNick(s_HelpServAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_HelpServAlias, desc_HelpServAlias, "+oS"); -#else - NICK(s_HelpServAlias, desc_HelpServAlias, "+h"); -#endif + NICK(s_HelpServAlias, desc_HelpServAlias, HELPSERV_ALIAS_MODE); } if (s_OperServAlias && (!user || stricmp(user, s_OperServAlias) == 0)) { EnforceQlinedNick(s_OperServAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_OperServAlias, desc_OperServAlias, "+ioS"); -#else - NICK(s_OperServAlias, desc_OperServAlias, "+io"); -#endif + NICK(s_OperServAlias, desc_OperServAlias, OPERSERV_ALIAS_MODE); } if (s_DevNullAlias && (!user || stricmp(user, s_DevNullAlias) == 0)) { EnforceQlinedNick(s_DevNullAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_DevNullAlias, desc_DevNullAlias, "+iS"); -#else - NICK(s_DevNullAlias, desc_DevNullAlias, "+i"); -#endif + NICK(s_DevNullAlias, desc_DevNullAlias, DEVNULL_ALIAS_MODE); } #ifdef HAS_VHOST if (s_HostServAlias && (!user || stricmp(user, s_HostServAlias) == 0)) { EnforceQlinedNick(s_HostServAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA) - NICK(s_HostServAlias, desc_HostServAlias, "+ioS"); -#else - NICK(s_HostServAlias, desc_HostServAlias, "+io"); -#endif + NICK(s_HostServAlias, desc_HostServAlias, HOSTSERV_ALIAS_MODE); } #endif if (s_GlobalNoticerAlias && (!user || stricmp(user, s_GlobalNoticerAlias) == 0)) { EnforceQlinedNick(s_GlobalNoticerAlias, NULL); -#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) - NICK(s_GlobalNoticerAlias, desc_GlobalNoticerAlias, "+ioS"); -#else - NICK(s_GlobalNoticerAlias, desc_GlobalNoticerAlias, "+io"); -#endif + NICK(s_GlobalNoticerAlias, desc_GlobalNoticerAlias, + GLOBAL_ALIAS_MODE); } /* We make the bots go online */ diff --git a/services.h b/services.h index 2c798722e..243078801 100644 --- a/services.h +++ b/services.h @@ -132,9 +132,29 @@ typedef struct channel_ Channel; /*************************************************************************/ /* Protocol tweaks */ + + + #ifdef IRC_HYBRID # define HAS_HALFOP # define HAS_EXCEPT /* Has +e (chan excepts) */ +# define NICKSERV_MODE "+o" +# define CHANSERV_MODE "+o" +# define MEMOSERV_MODE "+o" +# define BOTSERV_MODE "+o" +# define HELPSERV_MODE "+h" +# define OPERSERV_MODE "+io" +# define DEVNULL_MODE "+i" +# define GLOBAL_MODE "+io" +# define NICKSERV_ALIAS_MODE "+o" +# define CHANSERV_ALIAS_MODE "+o" +# define MEMOSERV_ALIAS_MODE "+o" +# define BOTSERV_ALIAS_MODE "+o" +# define HELPSERV_ALIAS_MODE "+h" +# define OPERSERV_ALIAS_MODE "+io" +# define DEVNULL_ALIAS_MODE "+i" +# define GLOBAL_ALIAS_MODE "+io" +# define BOTSERV_BOTS_MODE "+" #endif #ifdef IRC_VIAGRA @@ -142,10 +162,46 @@ typedef struct channel_ Channel; # define HAS_VHOST # define HAS_VIDENT # define HAS_EXCEPT +# define NICKSERV_MODE "+oS" +# define CHANSERV_MODE "+oS" +# define HOSTSERV_MODE "+oS" +# define MEMOSERV_MODE "+oS" +# define BOTSERV_MODE "+oS" +# define HELPSERV_MODE "+oS" +# define OPERSERV_MODE "+ioS" +# define DEVNULL_MODE "+i" +# define GLOBAL_MODE "+ioS" +# define NICKSERV_ALIAS_MODE "+oS" +# define CHANSERV_ALIAS_MODE "+oS" +# define MEMOSERV_ALIAS_MODE "+oS" +# define BOTSERV_ALIAS_MODE "+oS" +# define HELPSERV_ALIAS_MODE "+oS" +# define OPERSERV_ALIAS_MODE "+ioS" +# define DEVNULL_ALIAS_MODE "+iS" +# define GLOBAL_ALIAS_MODE "+ioS" +# define HOSTSERV_ALIAS_MODE "+ioS" +# define BOTSERV_BOTS_MODE "+qS" #endif #ifdef IRC_BAHAMUT # define HAS_NICKIP +# define NICKSERV_MODE "+o" +# define CHANSERV_MODE "+o" +# define MEMOSERV_MODE "+o" +# define BOTSERV_MODE "+o" +# define HELPSERV_MODE "+h" +# define OPERSERV_MODE "+io" +# define DEVNULL_MODE "+i" +# define GLOBAL_MODE "+io" +# define NICKSERV_ALIAS_MODE "+o" +# define CHANSERV_ALIAS_MODE "+o" +# define MEMOSERV_ALIAS_MODE "+o" +# define BOTSERV_ALIAS_MODE "+o" +# define HELPSERV_ALIAS_MODE "+h" +# define OPERSERV_ALIAS_MODE "+io" +# define DEVNULL_ALIAS_MODE "+i" +# define GLOBAL_ALIAS_MODE "+io" +# define BOTSERV_BOTS_MODE "+" #endif #ifdef IRC_RAGE2 @@ -153,6 +209,25 @@ typedef struct channel_ Channel; # define HAS_EXCEPT # define HAS_VHOST # define HAS_NICKVHOST +# define NICKSERV_MODE "+dS" +# define CHANSERV_MODE "+dS" +# define HOSTSERV_MODE "+dS" +# define MEMOSERV_MODE "+dS" +# define BOTSERV_MODE "+dS" +# define HELPSERV_MODE "+dSh" +# define OPERSERV_MODE "+diS" +# define DEVNULL_MODE "+diS" +# define GLOBAL_MODE "+diS" +# define NICKSERV_ALIAS_MODE "+o" +# define CHANSERV_ALIAS_MODE "+o" +# define MEMOSERV_ALIAS_MODE "+o" +# define BOTSERV_ALIAS_MODE "+o" +# define HELPSERV_ALIAS_MODE "+h" +# define OPERSERV_ALIAS_MODE "+io" +# define DEVNULL_ALIAS_MODE "+i" +# define GLOBAL_ALIAS_MODE "+io" +# define HOSTSERV_ALIAS_MODE "+io" +# define BOTSERV_BOTS_MODE "+S" #endif #ifdef IRC_PTLINK @@ -160,6 +235,25 @@ typedef struct channel_ Channel; # define HAS_VHOST # define HAS_FMODE # define HAS_EXCEPT +# define NICKSERV_MODE "+o" +# define CHANSERV_MODE "+o" +# define HOSTSERV_MODE "+o" +# define MEMOSERV_MODE "+o" +# define BOTSERV_MODE "+o" +# define HELPSERV_MODE "+h" +# define OPERSERV_MODE "+io" +# define DEVNULL_MODE "+i" +# define GLOBAL_MODE "+io" +# define NICKSERV_ALIAS_MODE "+o" +# define CHANSERV_ALIAS_MODE "+o" +# define MEMOSERV_ALIAS_MODE "+o" +# define BOTSERV_ALIAS_MODE "+o" +# define HELPSERV_ALIAS_MODE "+h" +# define OPERSERV_ALIAS_MODE "+io" +# define DEVNULL_ALIAS_MODE "+i" +# define GLOBAL_ALIAS_MODE "+io" +# define HOSTSERV_ALIAS_MODE "+io" +# define BOTSERV_BOTS_MODE "+" #endif #ifdef IRC_ULTIMATE @@ -169,6 +263,25 @@ typedef struct channel_ Channel; # define HAS_VHOST # define HAS_VIDENT /* Can the IRCD Change Idents on the fly */ # define HAS_EXCEPT +# define NICKSERV_MODE "+S" +# define CHANSERV_MODE "+S" +# define HOSTSERV_MODE "+oS" +# define MEMOSERV_MODE "+S" +# define BOTSERV_MODE "+S" +# define HELPSERV_MODE "+Sh" +# define OPERSERV_MODE "+iS" +# define DEVNULL_MODE "+iS" +# define GLOBAL_MODE "+iS" +# define NICKSERV_ALIAS_MODE "+oS" +# define CHANSERV_ALIAS_MODE "+oS" +# define MEMOSERV_ALIAS_MODE "+oS" +# define BOTSERV_ALIAS_MODE "+oS" +# define HELPSERV_ALIAS_MODE "+oS" +# define OPERSERV_ALIAS_MODE "+ioS" +# define DEVNULL_ALIAS_MODE "+iS" +# define GLOBAL_ALIAS_MODE "+ioS" +# define HOSTSERV_ALIAS_MODE "+ioS" +# define BOTSERV_BOTS_MODE "+pS" #endif #ifdef IRC_UNREAL @@ -179,6 +292,25 @@ typedef struct channel_ Channel; # define HAS_VHOST # define HAS_VIDENT /* Can the IRCD Change Idents on the fly */ # define HAS_EXCEPT +# define NICKSERV_MODE "+oS" +# define CHANSERV_MODE "+oS" +# define HOSTSERV_MODE "+oS" +# define MEMOSERV_MODE "+oS" +# define BOTSERV_MODE "+oS" +# define HELPSERV_MODE "+oS" +# define OPERSERV_MODE "+ioS" +# define DEVNULL_MODE "+iS" +# define GLOBAL_MODE "+ioS" +# define NICKSERV_ALIAS_MODE "+oS" +# define CHANSERV_ALIAS_MODE "+oS" +# define MEMOSERV_ALIAS_MODE "+oS" +# define BOTSERV_ALIAS_MODE "+oS" +# define HELPSERV_ALIAS_MODE "+oS" +# define OPERSERV_ALIAS_MODE "+ioS" +# define DEVNULL_ALIAS_MODE "+iS" +# define GLOBAL_ALIAS_MODE "+ioS" +# define HOSTSERV_ALIAS_MODE "+ioS" +# define BOTSERV_BOTS_MODE "+qS" #endif #ifdef IRC_ULTIMATE3 @@ -187,6 +319,83 @@ typedef struct channel_ Channel; # define HAS_NICKVHOST # define HAS_VIDENT /* Can the IRCD Change Idents on the fly */ # define HAS_EXCEPT +# define NICKSERV_MODE "+S" +# define CHANSERV_MODE "+S" +# define HOSTSERV_MODE "+o" +# define MEMOSERV_MODE "+S" +# define BOTSERV_MODE "+S" +# define HELPSERV_MODE "+Sh" +# define OPERSERV_MODE "+iS" +# define DEVNULL_MODE "+iS" +# define GLOBAL_MODE "+iS" +# define NICKSERV_ALIAS_MODE "+o" +# define CHANSERV_ALIAS_MODE "+o" +# define MEMOSERV_ALIAS_MODE "+o" +# define BOTSERV_ALIAS_MODE "+o" +# define HELPSERV_ALIAS_MODE "+h" +# define OPERSERV_ALIAS_MODE "+io" +# define DEVNULL_ALIAS_MODE "+i" +# define GLOBAL_ALIAS_MODE "+io" +# define HOSTSERV_ALIAS_MODE "+io" +# define BOTSERV_BOTS_MODE "+S" +#endif + +/* + This gets ugly since serval ircds use both DREAMFORCE and their own define +*/ + +#ifdef IRC_DREAMFORGE + #ifndef NICKSERV_MODE + # define NICKSERV_MODE "+o" + #endif + #ifndef CHANSERV_MODE + # define CHANSERV_MODE "+o" + #endif + #ifndef MEMOSERV_MODE + # define MEMOSERV_MODE "+o" + #endif + #ifndef BOTSERV_MODE + # define BOTSERV_MODE "+o" + #endif + #ifndef HELPSERV_MODE + # define HELPSERV_MODE "+h" + #endif + #ifndef OPERSERV_MODE + # define OPERSERV_MODE "+io" + #endif + #ifndef DEVNULL_MODE + # define DEVNULL_MODE "+i" + #endif + #ifndef GLOBAL_MODE + # define GLOBAL_MODE "+io" + #endif + #ifndef BOTSERV_BOTS_MODE + # define BOTSERV_BOTS_MODE "+" + #endif + #ifndef NICKSERV_ALIAS_MODE + # define NICKSERV_ALIAS_MODE "+o" + #endif + #ifndef CHANSERV_ALIAS_MODE + # define CHANSERV_ALIAS_MODE "+o" + #endif + #ifndef MEMOSERV_ALIAS_MODE + # define MEMOSERV_ALIAS_MODE "+o" + #endif + #ifndef BOTSERV_ALIAS_MODE + # define BOTSERV_ALIAS_MODE "+o" + #endif + #ifndef HELPSERV_ALIAS_MODE + # define HELPSERV_ALIAS_MODE "+h" + #endif + #ifndef OPERSERV_ALIAS_MODE + # define OPERSERV_ALIAS_MODE "+io" + #endif + #ifndef DEVNULL_ALIAS_MODE + # define DEVNULL_ALIAS_MODE "+i" + #endif + #ifndef GLOBAL_ALIAS_MODE + # define GLOBAL_ALIAS_MODE "+io" + #endif #endif /*************************************************************************/ diff --git a/version.log b/version.log index 820a7e9e2..c1e72c396 100644 --- a/version.log +++ b/version.log @@ -8,10 +8,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="3" -VERSION_BUILD="184" +VERSION_BUILD="185" # $Log$ # +# BUILD : 1.7.3 (185) +# BUGS : 99 +# NOTES : User customizable pseudo-client modes. +# # BUILD : 1.7.3 (184) # BUGS : 98 # NOTES : Improved handling of /NS INFO for pseudo-clients. |