added gnutls backend and moved backend code into new files
[ircu2.10.12-pk.git] / ircd / m_whowas.c
index 2d8e9d1fad116588deaffbf34122c4271cdbaed9..eee2745cd1603ad365923d5c1e32ae3cfbb33c5e 100644 (file)
@@ -84,7 +84,8 @@
 #include "client.h"
 #include "hash.h"
 #include "ircd.h"
-#include "ircd_policy.h"
+#include "ircd_features.h"
+#include "ircd_log.h"
 #include "ircd_reply.h"
 #include "ircd_string.h"
 #include "msg.h"
@@ -95,7 +96,7 @@
 #include "send.h"
 #include "whowas.h"
 
-#include <assert.h>
+/* #include <assert.h> -- Now using assert in ircd_log.h */
 #include <stdlib.h>
 
 /*
  *
  * parv[0] = sender prefix
  * parv[1] = nickname queried
- * parv[2] = maximum returned items (optional, default is unlimitted)
+ * parv[2] = maximum returned items (optional, default is unlimited)
  * parv[3] = remote server target (Opers only, max returned items 20)
  */
 int m_whowas(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
@@ -137,14 +138,13 @@ int m_whowas(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
       {
        send_reply(sptr, RPL_WHOWASUSER, temp->name, temp->username,
                   temp->hostname, temp->realname);
-#ifdef HEAD_IN_SAND_WHOIS_SERVERNAME
-       if (!IsOper(sptr))
-         send_reply(sptr, RPL_WHOISSERVER, temp->name, "*.undernet.org",
-                    myctime(temp->logoff));
-       else
-#endif
-         send_reply(sptr, RPL_WHOISSERVER, temp->name, temp->servername,
-                    myctime(temp->logoff));
+        if (IsAnOper(sptr) && temp->realhost)
+          send_reply(sptr, RPL_WHOISACTUALLY, temp->name, temp->username, temp->realhost, "<untracked>");
+        send_reply(sptr, RPL_WHOISSERVER, temp->name,
+                   (feature_bool(FEAT_HIS_WHOIS_SERVERNAME) && !IsOper(sptr)) ?
+                     feature_str(FEAT_HIS_SERVERNAME) :
+                     temp->servername,
+                  myctime(temp->logoff));
         if (temp->away)
          send_reply(sptr, RPL_AWAY, temp->name, temp->away);
         cur++;