X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/452f4d4bcc67bc8415b3eb26a86edd47192e55f4..91e46e62e5f9faf6735e0c41ce21113939cacb85:/modules/core/m_join.c diff --git a/modules/core/m_join.c b/modules/core/m_join.c index cadfa6f..43186ac 100644 --- a/modules/core/m_join.c +++ b/modules/core/m_join.c @@ -21,7 +21,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: m_join.c 3410 2007-04-14 21:53:28Z jilles $ + * $Id: m_join.c 3494 2007-05-27 13:07:27Z jilles $ */ #include "stdinc.h" @@ -62,7 +62,7 @@ mapi_hlist_av1 join_hlist[] = { { NULL, NULL }, }; -DECLARE_MODULE_AV1(join, NULL, NULL, join_clist, join_hlist, NULL, "$Revision: 3410 $"); +DECLARE_MODULE_AV1(join, NULL, NULL, join_clist, join_hlist, NULL, "$Revision: 3494 $"); static void do_join_0(struct Client *client_p, struct Client *source_p); static int check_channel_name_loc(struct Client *source_p, const char *name); @@ -150,7 +150,7 @@ m_join(struct Client *client_p, struct Client *source_p, int parc, const char *p } /* join 0 parts all channels */ - if(*name == '0' && !atoi(name)) + if(*name == '0' && (name[1] == ',' || name[1] == '\0') && name == chanlist) { (void) strcpy(jbuf, "0"); continue; @@ -236,7 +236,7 @@ m_join(struct Client *client_p, struct Client *source_p, int parc, const char *p call_hook(h_can_create_channel, &moduledata); - if(moduledata.approved != 0 && !IsOper(source_p)) + if(moduledata.approved != 0) { sendto_one(source_p, form_str(moduledata.approved), me.name, source_p->name, name); @@ -480,6 +480,9 @@ ms_join(struct Client *client_p, struct Client *source_p, int parc, const char * ":%s NOTICE %s :*** Notice -- TS for %s changed from %ld to %ld", me.name, chptr->chname, chptr->chname, (long) oldts, (long) newts); + /* Update capitalization in channel name, this makes the + * capitalization timestamped like modes are -- jilles */ + strcpy(chptr->chname, parv[2]); if(*modebuf != '\0') sendto_channel_local(ALL_MEMBERS, chptr, ":%s MODE %s %s %s", @@ -508,7 +511,7 @@ ms_join(struct Client *client_p, struct Client *source_p, int parc, const char * source_p->id, (long) chptr->channelts, chptr->chname); sendto_server(client_p, chptr, NOCAPS, CAP_TS6, ":%s SJOIN %ld %s %s :%s", - source_p->user->server, (long) chptr->channelts, + source_p->servptr->name, (long) chptr->channelts, chptr->chname, keep_new_modes ? "+" : "0", source_p->name); return 0;