* note: it is guaranteed that parv[0]..parv[parc-1] are all
* non-NULL pointers.
*/
+#include "config.h"
+
#if 0
/*
* No need to include handlers.h here the signatures must match
#include "client.h"
#include "ircd.h"
#include "ircd_chattr.h"
+#include "ircd_features.h"
#include "ircd_relay.h"
#include "ircd_reply.h"
#include "ircd_string.h"
assert(0 != cptr);
assert(cptr == sptr);
- assert(0 != sptr->user);
+ assert(0 != cli_user(sptr));
- sptr->flags &= ~FLAGS_TS8;
+ cli_flags(sptr) &= ~FLAGS_TS8;
-#ifdef IDLE_FROM_MSG
- sptr->user->last = CurrentTime;
-#endif
+ if (feature_bool(FEAT_IDLE_FROM_MSG))
+ cli_user(sptr)->last = CurrentTime;
if (parc < 2 || EmptyString(parv[1]))
return send_reply(sptr, ERR_NORECIPIENT, MSG_PRIVATE);
char* name;
char* server;
- sptr->flags &= ~FLAGS_TS8;
+ cli_flags(sptr) &= ~FLAGS_TS8;
if (parc < 3) {
/*
char* vector[MAXTARGETS];
assert(0 != cptr);
assert(cptr == sptr);
- assert(0 != sptr->user);
+ assert(0 != cli_user(sptr));
- sptr->flags &= ~FLAGS_TS8;
+ cli_flags(sptr) &= ~FLAGS_TS8;
-#ifdef IDLE_FROM_MSG
- sptr->user->last = CurrentTime;
-#endif
+ if (feature_bool(FEAT_IDLE_FROM_MSG))
+ cli_user(sptr)->last = CurrentTime;
if (parc < 2 || EmptyString(parv[1]))
return send_reply(sptr, ERR_NORECIPIENT, MSG_PRIVATE);
acptr = 0;
if (acptr)
{
- if (MyUser(sptr) && check_target_limit(sptr, acptr, acptr->name, 0))
+ if (MyUser(sptr) && !IsChannelService(acptr) &&
+ check_target_limit(sptr, acptr, acptr->name, 0))
continue;
if (!is_silenced(sptr, acptr))
{