]> jfr.im git - solanum.git/blobdiff - modules/m_trace.c
CONNECT: allow using 3-argument CONNECT with port == 0 locally (closes #119)
[solanum.git] / modules / m_trace.c
index 2f6e6c5b40f87d828073c7a5ebb338b7bc77cac8..868c1b4997aef54f19b7d456e7c9594328ec931d 100644 (file)
@@ -67,7 +67,6 @@ static const char *empty_sockhost = "255.255.255.255";
 
 /*
  * m_trace
- *      parv[0] = sender prefix
  *      parv[1] = servername
  */
 static int
@@ -112,7 +111,7 @@ m_trace(struct Client *client_p, struct Client *source_p, int parc, const char *
 
                        if(ac2ptr == NULL)
                        {
-                               RB_DLINK_FOREACH(ptr, global_client_list.head)
+                               RB_DLINK_FOREACH(ptr, global_serv_list.head)
                                {
                                        ac2ptr = ptr->data;
 
@@ -128,9 +127,9 @@ m_trace(struct Client *client_p, struct Client *source_p, int parc, const char *
                         */
                        if(IsOper(source_p) || IsExemptShide(source_p) ||
                           !ConfigServerHide.flatten_links)
-                               sendto_one_numeric(source_p, RPL_TRACELINK, 
+                               sendto_one_numeric(source_p, RPL_TRACELINK,
                                                   form_str(RPL_TRACELINK),
-                                                  ircd_version, 
+                                                  ircd_version,
                                                   ac2ptr ? ac2ptr->name : tname,
                                                   ac2ptr ? ac2ptr->from->name : "EEK!");
 
@@ -180,14 +179,14 @@ m_trace(struct Client *client_p, struct Client *source_p, int parc, const char *
 
                trace_spy(source_p, target_p);
 
-               sendto_one_numeric(source_p, RPL_ENDOFTRACE, 
+               sendto_one_numeric(source_p, RPL_ENDOFTRACE,
                                   form_str(RPL_ENDOFTRACE), tname);
                return 0;
        }
 
        trace_spy(source_p, NULL);
 
-       /* give non-opers a limited trace output of themselves (if local), 
+       /* give non-opers a limited trace output of themselves (if local),
         * opers and servers (if no shide) --fl
         */
        if(!IsOper(source_p))
@@ -221,7 +220,7 @@ m_trace(struct Client *client_p, struct Client *source_p, int parc, const char *
                        }
                }
 
-               sendto_one_numeric(source_p, RPL_ENDOFTRACE, 
+               sendto_one_numeric(source_p, RPL_ENDOFTRACE,
                                   form_str(RPL_ENDOFTRACE), tname);
                return 0;
        }
@@ -279,7 +278,7 @@ m_trace(struct Client *client_p, struct Client *source_p, int parc, const char *
                /* let the user have some idea that its at the end of the
                 * trace
                 */
-               sendto_one_numeric(source_p, RPL_ENDOFTRACE, 
+               sendto_one_numeric(source_p, RPL_ENDOFTRACE,
                                   form_str(RPL_ENDOFTRACE), tname);
                return 0;
        }
@@ -292,7 +291,7 @@ m_trace(struct Client *client_p, struct Client *source_p, int parc, const char *
 
                        if(CurrUsers(cltmp) > 0)
                                sendto_one_numeric(source_p, RPL_TRACECLASS,
-                                                  form_str(RPL_TRACECLASS), 
+                                                  form_str(RPL_TRACECLASS),
                                                   ClassName(cltmp), CurrUsers(cltmp));
                }
        }
@@ -375,23 +374,22 @@ report_this_status(struct Client *source_p, struct Client *target_p)
                sendto_one_numeric(source_p, RPL_TRACEUNKNOWN,
                                   form_str(RPL_TRACEUNKNOWN),
                                   class_name, name, ip,
-                                  rb_current_time() - target_p->localClient->firsttime);
+                                  (unsigned long)(rb_current_time() - target_p->localClient->firsttime));
                cnt++;
                break;
 
        case STAT_CLIENT:
-               int tnumeric = RPL_TRACEUSER;
-               
-               if(IsOper(target_p))
-                       tnumeric = RPL_TRACEOPERATOR;
-                       
-               sendto_one_numeric(source_p, tnumeric, form_str(tnumeric),
-                               class_name, name,
-                               show_ip(source_p, target_p) ? ip : empty_sockhost,
-                               rb_current_time() - target_p->localClient->lasttime,
-                               rb_current_time() - target_p->localClient->last);
+               {
+                       sendto_one_numeric(source_p,
+                                       IsOper(target_p) ? RPL_TRACEOPERATOR : RPL_TRACEUSER,
+                                       IsOper(target_p) ? form_str(RPL_TRACEOPERATOR) : form_str(RPL_TRACEUSER),
+                                       class_name, name,
+                                       show_ip(source_p, target_p) ? ip : empty_sockhost,
+                                       (unsigned long)(rb_current_time() - target_p->localClient->lasttime),
+                                       (unsigned long)(rb_current_time() - target_p->localClient->last));
 
-               cnt++;
+                       cnt++;
+               }
                break;
 
        case STAT_SERVER:
@@ -404,16 +402,16 @@ report_this_status(struct Client *source_p, struct Client *target_p)
                        sendto_one_numeric(source_p, RPL_TRACESERVER, form_str(RPL_TRACESERVER),
                                   class_name, servcount, usercount, name,
                                   *(target_p->serv->by) ? target_p->serv->by : "*", "*",
-                                  me.name, rb_current_time() - target_p->localClient->lasttime);
+                                  me.name,
+                                  (unsigned long)(rb_current_time() - target_p->localClient->lasttime));
                        cnt++;
 
                }
                break;
 
        default:                /* ...we actually shouldn't come here... --msa */
-               sendto_one_numeric(source_p, RPL_TRACENEWTYPE, 
-                                  form_str(RPL_TRACENEWTYPE), 
-                                  me.name, source_p->name, name);
+               sendto_one_numeric(source_p, RPL_TRACENEWTYPE,
+                                  form_str(RPL_TRACENEWTYPE), name);
                cnt++;
                break;
        }