From 868e1a2a18ee1fd25fa18a47072c70a650abc141 Mon Sep 17 00:00:00 2001 From: "Emilio A. Escobar" Date: Mon, 17 Sep 2018 12:50:17 -0700 Subject: [PATCH] Updated changes for 2.1.0 release (#56) * Updated changes for 2.1.0 release Still needs some content for help. * Updating patch level to 2.1.0 * More updates for 2.1.0. * Fixed a broken merge (SVSXCF). * Added missing extern. * Updated version.c.SH (cosmetic fix). * More updates for 2.1.0. * Updated MODULE_INTERFACE_VERSION. * Fixes for masked opers as they're already masked anyway. * Let's make sure m_quit() will only check real users. Currently, QUIT from un-registered clients (before NICK & USER) can crash the server because we're checking sptr->user->channels and sptr->user doesn't exist. -Kobi. --- CHANGES | 34 +++++++++++++++++++++++++++++ include/hooks.h | 2 +- include/msg.h | 1 + include/patchlevel.h | 4 ++-- src/s_user.c | 51 +++++++++++++++++++++++++------------------- src/version.c.SH | 2 +- 6 files changed, 68 insertions(+), 26 deletions(-) diff --git a/CHANGES b/CHANGES index 5a846e9a..2e0b8726 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,37 @@ +Changes for 2.1.0: +------------------ +Kobi Shmueli (11): + Fixed m_message() to compile with old gcc 2.x (i.e. for FreeBSD 4.x). + Let server admins (and u:lined servers) see more info with /info: OS, socket engine type, maxconnections, etc. + Changed STATS o/c/i output to be in human-readable format (#35). + Added user host-masking feature. When enabled, users' hostnames are masked by default and users can use umode -H to unmask themselves. + Added module hook for WHOIS. + Updated version.c.SH (Kobi --> Kobi_S & added RuneB & skill). + Added spamfilter feature (https://www.dal.net/kb/view.php?kb=411). + Added extended channel flags (https://www.dal.net/kb/view.php?kb=414) (#41). + Automatically build & install modules if they exist (#40). + Exempt IRC Operators from the auditorium mode (cmode +A). + Let IRC Operators (both local and global) see cmode +j's settings with /mode #channel from outside the channel in addition to +l (#45). + +Ryan Smith (6): + Allow U-lined servers to remove all network-wide bans in case of an emergency. + Allow bahamut to be compiled against OpenSSL versions >= 1.1.0. + Fixed compile warning. + Fixed modern compiler warnings and possible buffer overflows (#53). + Added support for kill -HUP to rehash SSL certificates, including adding proper sanity checks to all SSL rehashes. + Added support for ircd.crt to handle chain certificates. + +Ned T. Crigler (1): + Resend the nicklist to a client in auditorium mode (#50). + +Bradley Claghorn (3): + Updated opers.txt. + Default creation of ircd.smotd added. + Updated Makefile.in. + +Michael Wobst (1): + m_trace(): added missing argument to RPL_TRACESERVER required for the %ld conversion specifier (#32). + Changes for 2.0.7: ------------------ Kobi Shmueli (1): diff --git a/include/hooks.h b/include/hooks.h index 60901cbd..b9639925 100644 --- a/include/hooks.h +++ b/include/hooks.h @@ -84,7 +84,7 @@ enum c_hooktype { extern int call_hooks(enum c_hooktype hooktype, ...); extern int init_modules(); -#define MODULE_INTERFACE_VERSION 1008 /* the interface version (hooks, modules.c commands, etc) */ +#define MODULE_INTERFACE_VERSION 1009 /* the interface version (hooks, modules.c commands, etc) */ #ifdef BIRCMODULE extern void *bircmodule_add_hook(enum c_hooktype, void *, void *); diff --git a/include/msg.h b/include/msg.h index 8155f403..9cd0fa87 100644 --- a/include/msg.h +++ b/include/msg.h @@ -235,6 +235,7 @@ extern int m_check(aClient *, aClient *, int, char **); extern int m_webirc(aClient *, aClient *, int, char **); extern int m_spamops(aClient *, aClient *, int, char **); extern int m_sf(aClient *, aClient *, int, char **); +extern int m_svsxcf(aClient *, aClient *, int, char **); /* aliastab indexes */ #define AII_NS 0 diff --git a/include/patchlevel.h b/include/patchlevel.h index 7c67d85f..8dbf49eb 100644 --- a/include/patchlevel.h +++ b/include/patchlevel.h @@ -21,8 +21,8 @@ #define BASENAME "bahamut" #define MAJOR 2 -#define MINOR 0 -#define PATCH 7 +#define MINOR 1 +#define PATCH 0 #define PATCHES "" diff --git a/src/s_user.c b/src/s_user.c index 14778241..f966cc26 100644 --- a/src/s_user.c +++ b/src/s_user.c @@ -979,6 +979,10 @@ register_user(aClient *cptr, aClient *sptr, char *nick, char *username, memset(&sptr->ip, 0, sizeof(sptr->ip)); strcpy(sptr->hostip, "0.0.0.0"); strncpy(sptr->sockhost, Staff_Address, HOSTLEN + 1); +#ifdef USER_HOSTMASKING + strncpyzt(sptr->user->mhost, mask_host(Staff_Address,0), HOSTLEN + 1); + if(uhm_type > 0) sptr->umode &= ~UMODE_H; /* It's already masked anyway */ +#endif } if(tmpptr) @@ -2351,17 +2355,34 @@ m_quit(aClient *cptr, aClient *sptr, int parc, char *parv[]) strncpy(comment + 6, reason, TOPICLEN - 6); comment[TOPICLEN] = 0; #ifdef SPAMFILTER - if((blocked = check_sf(sptr, reason, "quit", SF_CMD_QUIT, sptr->name))) + if(IsPerson(sptr)) { - for(lp = sptr->user->channel; lp; lp = lpn) + if((blocked = check_sf(sptr, reason, "quit", SF_CMD_QUIT, sptr->name))) + { + for(lp = sptr->user->channel; lp; lp = lpn) + { + lpn = lp->next; + chptr = lp->value.chptr; + if(!(chptr->mode.mode & MODE_PRIVACY)) + { + sendto_serv_butone(cptr, ":%s PART %s", parv[0], chptr->chname); + sendto_channel_butserv(chptr, sptr, ":%s PART %s", parv[0], chptr->chname); + remove_user_from_channel(sptr, chptr); + } + } + } + else { - lpn = lp->next; - chptr = lp->value.chptr; - if(!(chptr->mode.mode & MODE_PRIVACY)) + for(lp = sptr->user->channel; lp; lp = lpn) { - sendto_serv_butone(cptr, ":%s PART %s", parv[0], chptr->chname); - sendto_channel_butserv(chptr, sptr, ":%s PART %s", parv[0], chptr->chname); - remove_user_from_channel(sptr, chptr); + lpn = lp->next; + chptr = lp->value.chptr; + if((chptr->xflags & XFLAG_NO_QUIT_MSG) && !is_xflags_exempted(sptr,chptr)) + { + sendto_serv_butone(cptr, ":%s PART %s", parv[0], chptr->chname); + sendto_channel_butserv(chptr, sptr, ":%s PART %s", parv[0], chptr->chname); + remove_user_from_channel(sptr, chptr); + } } } } @@ -2954,20 +2975,6 @@ int m_oper(aClient *cptr, aClient *sptr, int parc, char *parv[]) parv[0], sptr->user->username, sptr->user->host); return 0; } - else - { - for(lp = sptr->user->channel; lp; lp = lpn) - { - lpn = lp->next; - chptr = lp->value.chptr; - if((chptr->xflags & XFLAG_NO_QUIT_MSG) && !is_xflags_exempted(sptr,chptr)) - { - sendto_serv_butone(cptr, ":%s PART %s", parv[0], chptr->chname); - sendto_channel_butserv(chptr, sptr, ":%s PART %s", parv[0], chptr->chname); - remove_user_from_channel(sptr, chptr); - } - } - } /* attach our conf */ sptr->user->oper = aoper; diff --git a/src/version.c.SH b/src/version.c.SH index f928d74f..08bdc6e0 100755 --- a/src/version.c.SH +++ b/src/version.c.SH @@ -88,7 +88,7 @@ char *infotext[] = "Raistlin_Majere Jason Slagle raistlin@bahamut.net", "Rakarra Ian Westcott rakarra@dal.net", "sedition David Parton sedition@dal.net", - "srd Holbrook Bunting srd@powertrip.net", + "srd Holbrook Bunting srd@powertrip.net", "White_Dragon Chip Norkus wd@dal.net", "xPsycho Ryan Smith xpsycho@dal.net", "",