From 841b3f689eed1573bd816454ed9e72fc1d87a2df Mon Sep 17 00:00:00 2001 From: Viper Date: Thu, 24 Mar 2011 23:43:53 +0100 Subject: Fixed bug #1252 - The group display nick showing in HS req memos instead of the requesting alias. Also cleaned up the mess in Changes... --- Changes | 39 ++++++++++++++++++++------------------- include/extern.h | 1 + src/memoserv.c | 23 +++++++++++++++++++++-- src/modules/hs_request.c | 41 ++++++++++++++++++++++------------------- version.log | 3 ++- 5 files changed, 66 insertions(+), 41 deletions(-) diff --git a/Changes b/Changes index c44541f66..a84470a6c 100644 --- a/Changes +++ b/Changes @@ -1,26 +1,27 @@ Anope Version 1.8 - GIT ----------------------- -9/11 F Fixed db-convert handling some vhost collisions [ #00] -9/14 F Fixed ./configure failing with partial SQL installations [ #00] -9/28 F Fixed ForkForMail to always work [ #00] -9/28 F Fixed /nickserv saset display to use nicktracking if enabled [#1193] -9/28 F Fixed /nickserv group to use nicktracking if enabled [#1194] +10/31 A Added support for plexus3's channel mode +z [#1202] +02/23 A Added account tracking support to ratbox protocol module [ #00] +03/21 A Added support for Hybrid's m_services and m_change [ #00] +09/11 F Fixed db-convert handling some vhost collisions [ #00] +09/14 F Fixed ./configure failing with partial SQL installations [ #00] +09/28 F Fixed ForkForMail to always work [ #00] +09/28 F Fixed /nickserv saset display to use nicktracking if enabled [#1193] +09/28 F Fixed /nickserv group to use nicktracking if enabled [#1194] 12/12 F Remove vhost requests from nicks that expire [ #00] 12/15 F Fixed /cs enforce #channel to say SET was enforced not (null) [#1213] 12/23 F Fixed /cs (un)ban and akick from matching users real hosts/IP [#1079] -1/19 F Fixed 'make install' recompiling src/tools [#1227] -1/21 F Fixed many incorrect apostrophe usages [#1223] -1/28 F Fixed not introducing our clients with usermode k on InspIRCd2.0[ #00] -1/29 F Updated german language file. [ #00] -2/05 F Fixed wiki URLs in Windows configure script [ #00] -2/11 F Fixed build on Mac [ #00] -2/23 F Fixed rejoining our clients if they are kicked on a TS6 IRCd [ #00] -3/2 F Fixed showing SENDPASS in HELP to users who can't use it [ #00] -3/3 F Fixed opping our clients on ratbox when not using TS6 [ #00] -3/4 F Fixed setting a users host in InspIRCd when vhost is turned off [ #00] -10/31 A Added support for plexus3's channel mode +z [#1202] -2/23 A Added account tracking support to ratbox protocol module [ #00] -3/21 A Added support for Hybrid's m_services and m_change [ #00] +01/19 F Fixed 'make install' recompiling src/tools [#1227] +01/21 F Fixed many incorrect apostrophe usages [#1223] +01/28 F Fixed not introducing our clients with usermode k on InspIRCd2.0[ #00] +01/29 F Updated german language file. [ #00] +02/05 F Fixed wiki URLs in Windows configure script [ #00] +02/11 F Fixed build on Mac [ #00] +02/23 F Fixed rejoining our clients if they are kicked on a TS6 IRCd [ #00] +03/02 F Fixed showing SENDPASS in HELP to users who can't use it [ #00] +03/03 F Fixed opping our clients on ratbox when not using TS6 [ #00] +03/04 F Fixed setting a users host in InspIRCd when vhost is turned off [ #00] +03/24 F Fixed groups display nick showing in HS req memos for aliases. [#1252] Anope Version 1.8.5 ------------------- @@ -48,7 +49,7 @@ Anope Version 1.8.5 09/10 F Fixed pseudo-clients always getting oper on InspIRCd. [ #00] Provided by Han` - 2010 -8/14 F Updated german language file. [ #00] +08/14 F Updated german language file. [ #00] Anope Version 1.8.4 ------------------- diff --git a/include/extern.h b/include/extern.h index 4c7e01465..1dd475d9b 100644 --- a/include/extern.h +++ b/include/extern.h @@ -817,6 +817,7 @@ E void memoserv(User * u, char *buf); E void check_memos(User * u); E MemoInfo *getmemoinfo(const char *name, int *ischan, int *isforbid); E void memo_send(User * u, char *name, char *text, int z); +E void memo_send_from(User * u, char *name, char *text, int z, char *source); E int delmemo(MemoInfo * mi, int num); /**** messages.c ****/ diff --git a/src/memoserv.c b/src/memoserv.c index e012ab4af..3b18a9e4a 100644 --- a/src/memoserv.c +++ b/src/memoserv.c @@ -183,7 +183,8 @@ MemoInfo *getmemoinfo(const char *name, int *ischan, int *isforbid) /*************************************************************************/ /** - * Split from do_send, this way we can easily send a memo from any point + * Split from do_send, this way we can easily send a memo from any point. + * * @param u User Struct * @param name Target of the memo * @param text Memo Text @@ -195,13 +196,31 @@ MemoInfo *getmemoinfo(const char *name, int *ischan, int *isforbid) * @return void */ void memo_send(User * u, char *name, char *text, int z) +{ + memo_send_from(u, name, text, z, u->na->nc->display); +} + +/** + * Split from do_send, this way we can easily send a memo from any point. + * + * @param u User Struct + * @param name Target of the memo + * @param text Memo Text + * @param z type see info + * @param source Nickname of the alias the memo originates from. + * 0 - reply to user + * 1 - silent + * 2 - silent with no delay timer + * 3 - reply to user and request read receipt + * @return void + */ +void memo_send_from(User * u, char *name, char *text, int z, char *source) { int ischan; int isforbid; Memo *m; MemoInfo *mi; time_t now = time(NULL); - char *source = u->na->nc->display; int is_servoper = is_services_oper(u); if (readonly) { diff --git a/src/modules/hs_request.c b/src/modules/hs_request.c index 35c0d174b..00b7d74d0 100644 --- a/src/modules/hs_request.c +++ b/src/modules/hs_request.c @@ -67,7 +67,7 @@ void hs_help(User * u); void my_add_host_request(char *nick, char *vIdent, char *vhost, char *creator, int32 tmp_time); int my_isvalidchar(const char c); -void my_memo_lang(User * u, char *name, int z, int number, ...); +void my_memo_lang(User * u, char *name, int z, char *source, int number, ...); void req_send_memos(User * u, char *vHost); void show_list(User * u); int hs_do_waiting(User * u); @@ -255,7 +255,7 @@ int hs_do_request(User * u) return MOD_CONT; } -void my_memo_lang(User * u, char *name, int z, int number, ...) +void my_memo_lang(User * u, char *name, int z, char *source, int number, ...) { va_list va; char buffer[4096], outbuf[4096]; @@ -294,7 +294,10 @@ void my_memo_lang(User * u, char *name, int z, int number, ...) va_start(va, number); vsnprintf(buffer, 4095, outbuf, va); va_end(va); - memo_send(u, name, buffer, z); + if (source) + memo_send_from(u, name, buffer, z, source); + else + memo_send(u, name, buffer, z); } free(buf); } else { @@ -314,36 +317,36 @@ void req_send_memos(User * u, char *vHost) if (HSRequestMemoOper == 1) { for (i = 0; i < servopers.count; i++) { my_memo_lang(u, (((NickCore *) servopers.list[i])->display), z, - LNG_REQUEST_MEMO, vHost); + u->na->nick, LNG_REQUEST_MEMO, vHost); } for (i = 0; i < servadmins.count; i++) { my_memo_lang(u, (((NickCore *) servadmins.list[i])->display), - z, LNG_REQUEST_MEMO, vHost); + z, u->na->nick, LNG_REQUEST_MEMO, vHost); } for (i = 0; i < RootNumber; i++) { - my_memo_lang(u, ServicesRoots[i], z, LNG_REQUEST_MEMO, vHost); + my_memo_lang(u, ServicesRoots[i], z, u->na->nick, LNG_REQUEST_MEMO, vHost); } } if (HSRequestMemoSetters == 1) { for (i = 0; i < HostNumber; i++) { - my_memo_lang(u, HostSetters[i], z, LNG_REQUEST_MEMO, vHost); + my_memo_lang(u, HostSetters[i], z, u->na->nick, LNG_REQUEST_MEMO, vHost); } } } int hsreqevt_nick_dropped(int argc, char **argv) { - HostCore *tmp; - boolean found = false; + HostCore *tmp; + boolean found = false; - if (!argc) - return MOD_CONT; + if (!argc) + return MOD_CONT; - tmp = findHostCore(hs_request_head, argv[0], &found); - if (found) - 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) @@ -374,10 +377,10 @@ int hs_do_reject(User * u) if (HSRequestMemoUser) { if (reason) - my_memo_lang(u, hc->nick, 2, LNG_REJECT_MEMO_REASON, + my_memo_lang(u, hc->nick, 2, NULL, LNG_REJECT_MEMO_REASON, reason); else - my_memo_lang(u, hc->nick, 2, LNG_REJECT_MEMO); + my_memo_lang(u, hc->nick, 2, NULL, LNG_REJECT_MEMO); } hs_request_head = deleteHostCore(hs_request_head, tmp); @@ -423,7 +426,7 @@ int hs_do_activate(User * u) time(NULL)); if (HSRequestMemoUser) - my_memo_lang(u, hc->nick, 2, LNG_ACTIVATE_MEMO); + my_memo_lang(u, hc->nick, 2, NULL, LNG_ACTIVATE_MEMO); hs_request_head = deleteHostCore(hs_request_head, tmp); moduleNoticeLang(s_HostServ, u, LNG_ACTIVATED, nick); @@ -432,7 +435,7 @@ int hs_do_activate(User * u) moduleNoticeLang(s_HostServ, u, LNG_NO_REQUEST, nick); } } else { - notice_lang(s_HostServ, u, NICK_X_NOT_REGISTERED, nick); + notice_lang(s_HostServ, u, NICK_X_NOT_REGISTERED, nick); } free(nick); diff --git a/version.log b/version.log index 6b0144884..9dfbbf1f6 100644 --- a/version.log +++ b/version.log @@ -8,9 +8,10 @@ VERSION_MAJOR="1" VERSION_MINOR="8" VERSION_PATCH="5" VERSION_EXTRA="-git" -VERSION_BUILD="3066" +VERSION_BUILD="3067" # $Log$ # Changes since 1.8.5 Release +#Revision 3067 - Fixed bug #1252 - The group display nick showing in HS req memos instead of the requesting alias. Also cleaned up the mess in Changes... #Revision 3066 - Added support m_services.c and m_change.c from Hybrid's contrib folder #Revision 3065 - Change to users masked host instead of the real one after turning vhost off in inspircd. #Revision 3063 - Fixed opping our clients on ratbox when TS6 is not used. -- cgit