]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands.cpp
Tidying of snotices (adding '***' to start of WriteOpers texts)
[user/henk/code/inspircd.git] / src / commands.cpp
index e9b921bebe4800f9896183d9d23d72f84763b88d..4b376bbde2e241ca1058ea810c1a3ff1f4f2eb3e 100644 (file)
@@ -119,7 +119,7 @@ void do_whois(userrec* user, userrec* dest,unsigned long signon, unsigned long i
                WriteServ(user->fd,"311 %s %s %s %s * :%s",user->nick, dest->nick, dest->ident, dest->dhost, dest->fullname);
                if ((user == dest) || (strchr(user->modes,'o')))
                {
-                       WriteServ(user->fd,"378 %s %s :is connecting from *@%s %s",user->nick, dest->nick, dest->host, dest->ip);
+                       WriteServ(user->fd,"378 %s %s :is connecting from *@%s %s",user->nick, dest->nick, dest->host, (char*)inet_ntoa(dest->ip4));
                }
                std::string cl = chlist(dest,user);
                if (cl.length())
@@ -133,7 +133,14 @@ void do_whois(userrec* user, userrec* dest,unsigned long signon, unsigned long i
                                WriteServ(user->fd,"319 %s %s :%s",user->nick, dest->nick, cl.c_str());
                        }
                }
-               WriteServ(user->fd,"312 %s %s %s :%s",user->nick, dest->nick, dest->server, GetServerDescription(dest->server).c_str());
+               if (*Config->HideWhoisServer)
+               {
+                       WriteServ(user->fd,"312 %s %s %s :%s",user->nick, dest->nick, *user->oper ? dest->server : Config->HideWhoisServer, *user->oper ? GetServerDescription(dest->server).c_str() : Config->Network);
+               }
+               else
+               {
+                       WriteServ(user->fd,"312 %s %s %s :%s",user->nick, dest->nick, dest->server, GetServerDescription(dest->server).c_str());
+               }
                if (*dest->awaymsg)
                {
                        WriteServ(user->fd,"301 %s %s :%s",user->nick, dest->nick, dest->awaymsg);
@@ -146,7 +153,7 @@ void do_whois(userrec* user, userrec* dest,unsigned long signon, unsigned long i
                        }
                        else
                        {
-                               WriteServ(user->fd,"313 %s %s :is opered but has an unknown type",user->nick, dest->nick);
+                               WriteServ(user->fd,"313 %s %s :is an IRC operator",user->nick, dest->nick);
                        }
                }
                if ((!signon) && (!idle))
@@ -309,7 +316,7 @@ bool ip_matches_everyone(std::string ip, userrec* user)
        long matches = 0;
        for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
        {
-               if (match(u->second->ip,ip.c_str()))
+               if (match((char*)inet_ntoa(u->second->ip4),ip.c_str()))
                        matches++;
        }
        float percent = ((float)matches / (float)clientlist.size()) * 100;