X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmessage.cpp;h=28a11fda9645f1cc0ed58624bdfeaf62c5875b1f;hb=8f9d0a68cd77b6a78eccfa7df9c1045d453ce581;hp=655591607c99f157ee8cc6dfd95740094b8869dc;hpb=0974364c1a67edaffec275c5a65e72ba8289ac02;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/message.cpp b/src/message.cpp index 655591607..28a11fda9 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -18,7 +18,7 @@ using namespace std; #include "inspircd_config.h" #include "inspircd.h" -#include "inspircd_io.h" +#include "configreader.h" #include #include #include @@ -223,14 +223,14 @@ void ChangeName(userrec* user, const char* gecos) void ChangeDisplayedHost(userrec* user, const char* host) { - if (user->fd > -1) - { - int MOD_RESULT = 0; - FOREACH_RESULT(I_OnChangeLocalUserHost,OnChangeLocalUserHost(user,host)); - if (MOD_RESULT) - return; + if (user->fd > -1) + { + int MOD_RESULT = 0; + FOREACH_RESULT(I_OnChangeLocalUserHost,OnChangeLocalUserHost(user,host)); + if (MOD_RESULT) + return; FOREACH_MOD(I_OnChangeHost,OnChangeHost(user,host)); - } + } strlcpy(user->dhost,host,63); WriteServ(user->fd,"396 %s %s :is now your hidden host",user->nick,user->dhost); } @@ -239,23 +239,23 @@ void ChangeDisplayedHost(userrec* user, const char* host) int isident(const char* n) { - if (!n || !*n) - { - return 0; - } - for (char* i = (char*)n; *i; i++) - { - if ((*i >= 'A') && (*i <= '}')) - { - continue; - } - if (strchr(".-0123456789",*i)) - { - continue; - } + if (!n || !*n) + { return 0; - } - return 1; + } + for (char* i = (char*)n; *i; i++) + { + if ((*i >= 'A') && (*i <= '}')) + { + continue; + } + if (strchr(".-0123456789",*i)) + { + continue; + } + return 0; + } + return 1; } @@ -416,8 +416,12 @@ std::string chlist(userrec *user,userrec* source) /* Commenting this out until someone finds a case where we need it */ //if (lst.find(rec->channel->name) == std::string::npos) //{ - // if the channel is NOT private/secret, OR the source user is on the channel, AND the user is not invisible. - // if the user is the same as the source or is an oper, shortcircuit the comparison. + + /* + * If the target is the same as the sender, let them see all their channels. + * If the channel is NOT private/secret AND the user is not invisible. + * If the user is an oper, and the option is set. + */ if ((source == user) || (*source->oper && Config->OperSpyWhois) || (((!rec->channel->modes[CM_PRIVATE]) && (!rec->channel->modes[CM_SECRET]) && !(user->modebits & UM_INVISIBLE)) || (rec->channel->HasUser(source)))) { list << cmode(user, rec->channel) << rec->channel->name << " ";