* note: it is guaranteed that parv[0]..parv[parc-1] are all
* non-NULL pointers.
*/
-#if 0
-/*
- * No need to include handlers.h here the signatures must match
- * and we don't need to force a rebuild of all the handlers everytime
- * we add a new one to the list. --Bleep
- */
-#include "handlers.h"
-#endif /* 0 */
+#include "config.h"
+
#include "client.h"
#include "jupe.h"
#include "hash.h"
#include "ircd.h"
+#include "ircd_features.h"
+#include "ircd_log.h"
#include "ircd_reply.h"
#include "ircd_string.h"
#include "match.h"
#include "s_conf.h"
#include "s_misc.h"
#include "send.h"
-#include "support.h"
-#include <assert.h>
+/* #include <assert.h> -- Now using assert in ircd_log.h */
#include <stdlib.h>
#include <string.h>
return jupe_activate(cptr, sptr, ajupe, lastmod, flags);
else
return jupe_deactivate(cptr, sptr, ajupe, lastmod, flags);
- } else if (JupeLastMod(ajupe) == lastmod) /* no changes */
- return 0;
- else if (IsBurstOrBurstAck(cptr)) /* it's in the burst, so don't resynch */
+ } else if (JupeLastMod(ajupe) == lastmod || IsBurstOrBurstAck(cptr))
return 0;
else
return jupe_resend(cptr, ajupe); /* other server desynched WRT jupes */
* parv[4] = [Comment]
*
*/
-#ifdef CONFIG_OPERCMDS
int mo_jupe(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
{
struct Client *acptr = 0;
else
return jupe_list(sptr, server);
+ if (!feature_bool(FEAT_CONFIG_OPERCMDS))
+ return send_reply(sptr, ERR_DISABLED, "JUPE");
+
if (parc == 4) {
expire_off = atoi(parv[2]);
reason = parv[3];
return send_reply(sptr, ERR_NOSUCHSERVER, target);
if (!IsMe(acptr)) { /* manually propagate, since we don't set it */
- if (!IsOper(sptr))
+ if (!HasPriv(sptr, PRIV_JUPE))
return send_reply(sptr, ERR_NOPRIVILEGES);
sendcmdto_one(sptr, CMD_JUPE, acptr, "%C %c%s %s %Tu :%s", acptr,
flags & JUPE_ACTIVE ? '+' : '-', server, parv[3],
TStime(), reason);
return 0;
- }
+ } else if (!HasPriv(sptr, PRIV_LOCAL_JUPE))
+ return send_reply(sptr, ERR_NOPRIVILEGES);
flags |= JUPE_LOCAL;
- } else if (!IsOper(sptr))
+ } else if (!HasPriv(sptr, PRIV_JUPE))
return send_reply(sptr, ERR_NOPRIVILEGES);
}
return jupe_add(cptr, sptr, server, reason, expire_off, TStime(), flags);
}
-#endif /* CONFIG_OPERCMDS */
/*
* m_jupe - user message handler