| 24 |
|
|
| 25 |
|
#include "stdinc.h" |
| 26 |
|
#include "handlers.h" |
| 27 |
< |
#include "tools.h" |
| 27 |
> |
#include "list.h" |
| 28 |
|
#include "hook.h" |
| 29 |
|
#include "client.h" |
| 30 |
|
#include "hash.h" |
| 51 |
|
{ m_unregistered, m_trace, ms_trace, m_ignore, mo_trace, m_ignore } |
| 52 |
|
}; |
| 53 |
|
|
| 54 |
– |
#ifndef STATIC_MODULES |
| 54 |
|
const char *_version = "$Revision$"; |
| 55 |
|
static struct Callback *trace_cb; |
| 56 |
|
|
| 78 |
|
mod_del_cmd(&trace_msgtab); |
| 79 |
|
uninstall_hook(trace_cb, va_actual_trace); |
| 80 |
|
} |
| 82 |
– |
#endif |
| 81 |
|
|
| 82 |
|
static void report_this_status(struct Client *, struct Client *, int); |
| 83 |
|
|
| 160 |
|
{ |
| 161 |
|
ac2ptr = ptr->data; |
| 162 |
|
|
| 163 |
< |
if (match(tname, ac2ptr->name) || match(ac2ptr->name, tname)) |
| 163 |
> |
if (match(tname, ac2ptr->name)) |
| 164 |
|
break; |
| 165 |
|
else |
| 166 |
|
ac2ptr = NULL; |
| 175 |
|
ircd_version, tname, "ac2ptr_is_NULL!!"); |
| 176 |
|
return; |
| 177 |
|
} |
| 178 |
+ |
|
| 179 |
|
case HUNTED_ISME: |
| 181 |
– |
#ifdef STATIC_MODULES |
| 182 |
– |
do_actual_trace(source_p, parc, parv); |
| 183 |
– |
#else |
| 180 |
|
execute_callback(trace_cb, source_p, parc, parv); |
| 185 |
– |
#endif |
| 181 |
|
break; |
| 182 |
|
default: |
| 183 |
|
return; |
| 211 |
|
to = source_p->name; |
| 212 |
|
} |
| 213 |
|
|
| 214 |
+ |
sendto_realops_flags(UMODE_SPY, L_ALL, |
| 215 |
+ |
"TRACE requested by %s (%s@%s) [%s]", |
| 216 |
+ |
source_p->name, source_p->username, |
| 217 |
+ |
source_p->host, source_p->servptr->name); |
| 218 |
+ |
|
| 219 |
|
if (match(tname, me.name)) |
| 220 |
|
doall = TRUE; |
| 221 |
|
else if (!MyClient(source_p) && !strcmp(tname, me.id)) |