/[svn]/ircd-hybrid-7.2/modules/m_trace.c
ViewVC logotype

Diff of /ircd-hybrid-7.2/modules/m_trace.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 890 by michael, Thu Nov 1 12:59:05 2007 UTC revision 891 by michael, Thu Nov 1 13:44:50 2007 UTC
# Line 40  Line 40 
40  #include "parse.h"  #include "parse.h"
41  #include "modules.h"  #include "modules.h"
42  #include "s_conf.h"  #include "s_conf.h"
 #include "irc_getnameinfo.h"  
43    
44  static void m_trace(struct Client *, struct Client *, int, char *[]);  static void m_trace(struct Client *, struct Client *, int, char *[]);
45  static void ms_trace(struct Client *, struct Client *, int, char *[]);  static void ms_trace(struct Client *, struct Client *, int, char *[]);
# Line 234  do_actual_trace(struct Client *source_p, Line 233  do_actual_trace(struct Client *source_p,
233    {    {
234      const char *name;      const char *name;
235      const char *class_name;      const char *class_name;
     char ipaddr[HOSTIPLEN];  
236    
237      target_p = find_client(tname);      target_p = find_client(tname);
238                
239      if (target_p && IsClient(target_p))      if (target_p && IsClient(target_p))
240      {      {
241        name = get_client_name(target_p, HIDE_IP);        name = get_client_name(target_p, HIDE_IP);
       /* should we not use sockhost here? - stu */  
       irc_getnameinfo((struct sockaddr*)&target_p->localClient->ip,  
                       target_p->localClient->ip.ss_len, ipaddr, HOSTIPLEN, NULL, 0,  
                       NI_NUMERICHOST);  
   
242        class_name = get_client_class(target_p);        class_name = get_client_class(target_p);
243    
244        if (IsOper(target_p))        if (IsOper(target_p))
245        {        {
246          sendto_one(source_p, form_str(RPL_TRACEOPERATOR),          sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
247                     from, to, class_name, name,                     from, to, class_name, name,
248                     IsIPSpoof(target_p) ? "255.255.255.255" : ipaddr,                     IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
249                     CurrentTime - target_p->lasttime,                     CurrentTime - target_p->lasttime,
250                     CurrentTime - target_p->localClient->last);                     CurrentTime - target_p->localClient->last);
251        }        }
# Line 260  do_actual_trace(struct Client *source_p, Line 253  do_actual_trace(struct Client *source_p,
253        {        {
254          sendto_one(source_p,form_str(RPL_TRACEUSER),          sendto_one(source_p,form_str(RPL_TRACEUSER),
255                     from, to, class_name, name,                     from, to, class_name, name,
256                     IsIPSpoof(target_p) ? "255.255.255.255" : ipaddr,                     IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
257                     CurrentTime - target_p->lasttime,                     CurrentTime - target_p->lasttime,
258                     CurrentTime - target_p->localClient->last);                     CurrentTime - target_p->localClient->last);
259        }        }
# Line 355  report_this_status(struct Client *source Line 348  report_this_status(struct Client *source
348    const char *name;    const char *name;
349    const char *class_name;    const char *class_name;
350    const char *from, *to;    const char *from, *to;
   char ip[HOSTIPLEN];  
351    
352    if (!MyConnect(source_p) && IsCapable(source_p->from, CAP_TS6) && HasID(source_p))    if (!MyConnect(source_p) && IsCapable(source_p->from, CAP_TS6) && HasID(source_p))
353    {    {
# Line 368  report_this_status(struct Client *source Line 360  report_this_status(struct Client *source
360      to = source_p->name;      to = source_p->name;
361    }    }
362    
   /* Should this be sockhost? - stu */  
   irc_getnameinfo((struct sockaddr*)&target_p->localClient->ip,  
         target_p->localClient->ip.ss_len, ip, HOSTIPLEN, NULL, 0,  
         NI_NUMERICHOST);  
363    name = get_client_name(target_p, HIDE_IP);    name = get_client_name(target_p, HIDE_IP);
364    class_name = get_client_class(target_p);    class_name = get_client_class(target_p);
365    
# Line 394  report_this_status(struct Client *source Line 382  report_this_status(struct Client *source
382      case STAT_UNKNOWN:      case STAT_UNKNOWN:
383        /* added time -Taner */        /* added time -Taner */
384        sendto_one(source_p, form_str(RPL_TRACEUNKNOWN),        sendto_one(source_p, form_str(RPL_TRACEUNKNOWN),
385                   from, to, class_name, name, ip,                   from, to, class_name, name, target_p->sockhost,
386                   target_p->firsttime ? CurrentTime - target_p->firsttime : -1);                   target_p->firsttime ? CurrentTime - target_p->firsttime : -1);
387        break;        break;
388      case STAT_CLIENT:      case STAT_CLIENT:
389        /* Only opers see users if there is a wildcard        /*
390           * Only opers see users if there is a wildcard
391         * but anyone can see all the opers.         * but anyone can see all the opers.
392         */         */
393        if ((IsOper(source_p) &&        if ((IsOper(source_p) &&
# Line 408  report_this_status(struct Client *source Line 397  report_this_status(struct Client *source
397            if (IsAdmin(target_p) && !ConfigFileEntry.hide_spoof_ips)            if (IsAdmin(target_p) && !ConfigFileEntry.hide_spoof_ips)
398              sendto_one(source_p, form_str(RPL_TRACEOPERATOR),              sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
399                         from, to, class_name, name,                         from, to, class_name, name,
400                         IsOperAdmin(source_p) ? ip : "255.255.255.255",                         IsOperAdmin(source_p) ? target_p->sockhost : "255.255.255.255",
401                         CurrentTime - target_p->lasttime,                         CurrentTime - target_p->lasttime,
402                         CurrentTime - target_p->localClient->last);                         CurrentTime - target_p->localClient->last);
403                                                
# Line 417  report_this_status(struct Client *source Line 406  report_this_status(struct Client *source
406              if (ConfigFileEntry.hide_spoof_ips)              if (ConfigFileEntry.hide_spoof_ips)
407                sendto_one(source_p, form_str(RPL_TRACEOPERATOR),                sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
408                           from, to, class_name, name,                           from, to, class_name, name,
409                           IsIPSpoof(target_p) ? "255.255.255.255" : ip,                           IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
410                           CurrentTime - target_p->lasttime,                           CurrentTime - target_p->lasttime,
411                           CurrentTime - target_p->localClient->last);                           CurrentTime - target_p->localClient->last);
412              else              else
413                sendto_one(source_p, form_str(RPL_TRACEOPERATOR),                sendto_one(source_p, form_str(RPL_TRACEOPERATOR),
414                           from, to, class_name, name,                           from, to, class_name, name,
415                           MyOper(source_p) ? ip :                           MyOper(source_p) ? target_p->sockhost :
416                           (IsIPSpoof(target_p) ? "255.255.255.255" : ip),                           (IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost),
417                           CurrentTime - target_p->lasttime,                           CurrentTime - target_p->lasttime,
418                           CurrentTime - target_p->localClient->last);                           CurrentTime - target_p->localClient->last);
419            }                                }                    
# Line 439  report_this_status(struct Client *source Line 428  report_this_status(struct Client *source
428              if (ConfigFileEntry.hide_spoof_ips)              if (ConfigFileEntry.hide_spoof_ips)
429                sendto_one(source_p, format_str,                sendto_one(source_p, format_str,
430                           from, to, class_name, name,                           from, to, class_name, name,
431                           IsIPSpoof(target_p) ? "255.255.255.255" : ip,                           IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost,
432                           CurrentTime - target_p->lasttime,                           CurrentTime - target_p->lasttime,
433                           CurrentTime - target_p->localClient->last);                           CurrentTime - target_p->localClient->last);
434              else              else
435                sendto_one(source_p, format_str,                sendto_one(source_p, format_str,
436                           from, to, class_name, name,                           from, to, class_name, name,
437                           MyOper(source_p) ? ip :                           MyOper(source_p) ? target_p->sockhost :
438                           (IsIPSpoof(target_p) ? "255.255.255.255" : ip),                           (IsIPSpoof(target_p) ? "255.255.255.255" : target_p->sockhost),
439                           CurrentTime - target_p->lasttime,                           CurrentTime - target_p->lasttime,
440                           CurrentTime - target_p->localClient->last);                           CurrentTime - target_p->localClient->last);
441            }            }

Legend:
Removed from v.890  
changed lines
  Added in v.891

svnadmin@ircd-hybrid.org
ViewVC Help
Powered by ViewVC 1.1.26