X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=include%2Fsend.h;h=1825e4db2b5a9a98519f15f7bc5766dff8de0130;hb=a36ad5e29241b0c89379947b13887cb6930ef3e0;hp=ca83b50da9e0b68a37571b376e3c3e59c99cc104;hpb=b6f940332af04280d29aa4cee8b60583c74661b2;p=ircu2.10.12-pk.git diff --git a/include/send.h b/include/send.h index ca83b50..1825e4d 100644 --- a/include/send.h +++ b/include/send.h @@ -1,7 +1,6 @@ -/* - * send.h - * - * $Id$ +/** @file send.h + * @brief Send messages to certain targets. + * @version $Id$ */ #ifndef INCLUDED_send_h #define INCLUDED_send_h @@ -9,6 +8,10 @@ #include /* va_list */ #define INCLUDED_stdarg_h #endif +#ifndef INCLUDED_time_h +#include /* time_t */ +#define INCLUDED_time_h +#endif struct Channel; struct Client; @@ -18,8 +21,11 @@ struct MsgBuf; /* * Prototypes */ +extern struct SLink *opsarray[]; + extern void send_buffer(struct Client* to, struct MsgBuf* buf, int prio); +extern void kill_highest_sendq(int servers_too); extern void flush_connections(struct Client* cptr); extern void send_queued(struct Client *to); @@ -33,11 +39,16 @@ extern void sendcmdto_one(struct Client *from, const char *cmd, const char *tok, struct Client *to, const char *pattern, ...); +/* Same as above, except it puts the message on the priority queue */ +extern void sendcmdto_prio_one(struct Client *from, const char *cmd, + const char *tok, struct Client *to, + const char *pattern, ...); -/* Same as above, except it takes a va_list */ -extern void vsendcmdto_one(struct Client *from, const char *cmd, - const char *tok, struct Client *to, - const char *pattern, va_list vl); +/* Send command to servers by flags except one */ +extern void sendcmdto_flag_serv_butone(struct Client *from, const char *cmd, + const char *tok, struct Client *one, + int require, int forbid, + const char *pattern, ...); /* Send command to all servers except one */ extern void sendcmdto_serv_butone(struct Client *from, const char *cmd, @@ -45,15 +56,29 @@ extern void sendcmdto_serv_butone(struct Client *from, const char *cmd, const char *pattern, ...); /* Send command to all channels user is on */ -extern void sendcmdto_common_channels(struct Client *from, const char *cmd, - const char *tok, const char *pattern, - ...); - +extern void sendcmdto_common_channels_butone(struct Client *from, + const char *cmd, + const char *tok, + struct Client *one, + const char *pattern, ...); /* Send command to all channel users on this server */ -extern void sendcmdto_channel_butserv(struct Client *from, const char *cmd, - const char *tok, struct Channel *to, - const char *pattern, ...); +extern void sendcmdto_channel_butserv_butone(struct Client *from, + const char *cmd, + const char *tok, + struct Channel *to, + struct Client *one, + unsigned int skip, + const char *pattern, ...); + +/* Send command to all servers interested in a channel */ +extern void sendcmdto_channel_servers_butone(struct Client *from, + const char *cmd, + const char *tok, + struct Channel *to, + struct Client *one, + unsigned int skip, + const char *pattern, ...); /* Send command to all interested channel users */ extern void sendcmdto_channel_butone(struct Client *from, const char *cmd, @@ -61,14 +86,20 @@ extern void sendcmdto_channel_butone(struct Client *from, const char *cmd, struct Client *one, unsigned int skip, const char *pattern, ...); -#define SKIP_DEAF 0x01 /* skip users that are +d */ -#define SKIP_BURST 0x02 /* skip users that are bursting */ -#define SKIP_NONOPS 0x04 /* skip users that aren't chanops */ +#define SKIP_DEAF 0x01 /**< skip users that are +d */ +#define SKIP_BURST 0x02 /**< skip users that are bursting */ +#define SKIP_NONOPS 0x04 /**< skip users that aren't chanops */ +#define SKIP_NONVOICES 0x08 /**< skip users that aren't voiced (includes + chanops) */ /* Send command to all users having a particular flag set */ -extern void sendcmdto_flag_butone(struct Client *from, const char *cmd, - const char *tok, struct Client *one, - unsigned int flag, const char *pattern, ...); +extern void sendwallto_group_butone(struct Client *from, int type, + struct Client *one, const char *pattern, + ...); + +#define WALL_DESYNCH 1 /**< send as a DESYNCH message */ +#define WALL_WALLOPS 2 /**< send to all +w opers */ +#define WALL_WALLUSERS 3 /**< send to all +w users */ /* Send command to all matching clients */ extern void sendcmdto_match_butone(struct Client *from, const char *cmd, @@ -80,6 +111,11 @@ extern void sendcmdto_match_butone(struct Client *from, const char *cmd, extern void sendto_opmask_butone(struct Client *one, unsigned int mask, const char *pattern, ...); +/* Same as above, but rate limited */ +extern void sendto_opmask_butone_ratelimited(struct Client *one, + unsigned int mask, time_t *rate, + const char *pattern, ...); + /* Same as above, but with variable argument list */ extern void vsendto_opmask_butone(struct Client *one, unsigned int mask, const char *pattern, va_list vl);