summaryrefslogtreecommitdiff
path: root/contrib/m_operspy.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/m_operspy.c')
-rw-r--r--contrib/m_operspy.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/contrib/m_operspy.c b/contrib/m_operspy.c
index f893bb7..5d37df2 100644
--- a/contrib/m_operspy.c
+++ b/contrib/m_operspy.c
@@ -470,15 +470,42 @@ operspy_whois(struct Client *client_p, int parc, char *parv[])
client_p->name, target_p->name, a2client_p->name,
a2client_p->info);
+ if (HasUMode(target_p, UMODE_REGISTERED))
+ sendto_one(client_p, form_str(RPL_WHOISREGNICK),
+ me.name, client_p->name, target_p->name);
+
+ if (target_p->away[0])
+ sendto_one(client_p, form_str(RPL_AWAY),
+ me.name, client_p->name, target_p->name,
+ target_p->away);
+
+ if (HasUMode(target_p, UMODE_CALLERID) && !HasUMode(target_p, UMODE_SOFTCALLERID))
+ sendto_one(client_p, form_str(RPL_TARGUMODEG),
+ me.name, client_p->name, target_p->name);
+
if (HasUMode(target_p, UMODE_OPER))
sendto_one(client_p, form_str(HasUMode(target_p, UMODE_ADMIN) ? RPL_WHOISADMIN :
RPL_WHOISOPERATOR), me.name, client_p->name, target_p->name);
+ if (strcmp(target_p->sockhost, "0"))
+ {
+ sendto_one(client_p, form_str(RPL_WHOISACTUALLY),
+ me.name, client_p->name, target_p->name,
+ target_p->sockhost);
+ }
+
if (MyConnect(target_p))
+ {
+#ifdef HAVE_LIBCRYPTO
+ if (target_p->localClient->fd.ssl)
+ sendto_one(client_p, form_str(RPL_WHOISSECURE),
+ me.name, client_p->name, target_p->name);
+#endif
sendto_one(client_p, form_str(RPL_WHOISIDLE), me.name,
client_p->name, target_p->name,
- CurrentTime - target_p->localClient->last_privmsg,
+ idle_time_get(client_p, target_p),
target_p->localClient->firsttime);
+ }
sendto_one(client_p, form_str(RPL_ENDOFWHOIS),
me.name, client_p->name, parv[2]);
}