* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
- *
- * $Id: send.h 3520 2007-06-30 22:15:35Z jilles $
*/
#ifndef INCLUDED_send_h
#define INCLUDED_send_h
-#include "ratbox_lib.h"
+#include "rb_lib.h"
#include "ircd_defs.h"
-#include "config.h" /* HAVE_STDARG_H */
struct Client;
struct Channel;
/* The nasty global also used in s_serv.c for server bursts */
extern unsigned long current_serial;
+extern struct Client *remote_rehash_oper_p;
+
extern void send_pop_queue(struct Client *);
extern void send_queued(struct Client *to);
extern void sendto_channel_flags(struct Client *one, int type, struct Client *source_p,
struct Channel *chptr, const char *, ...) AFP(5, 6);
+extern void sendto_channel_opmod(struct Client *one, struct Client *source_p,
+ struct Channel *chptr, const char *command,
+ const char *text);
-extern void sendto_channel_local(int type, struct Channel *, const char *, ...) AFP(3, 4);
+extern void sendto_channel_local(struct Client *, int type, struct Channel *, const char *, ...) AFP(4, 5);
+extern void sendto_channel_local_priv(struct Client *, int type, const char *priv, struct Channel *, const char *, ...) AFP(5, 6);
extern void sendto_channel_local_butone(struct Client *, int type, struct Channel *, const char *, ...) AFP(4, 5);
-extern void sendto_common_channels_local(struct Client *, const char *, ...) AFP(2, 3);
-extern void sendto_common_channels_local_butone(struct Client *, const char *, ...) AFP(2, 3);
+
+extern void sendto_channel_local_with_capability(struct Client *, int type, int caps, int negcaps, struct Channel *, const char *, ...) AFP(6, 7);
+extern void sendto_channel_local_with_capability_butone(struct Client *, int type, int caps, int negcaps, struct Channel *,
+ const char *, ...) AFP(6, 7);
+
+extern void sendto_common_channels_local(struct Client *, int cap, int negcap, const char *, ...) AFP(4, 5);
+extern void sendto_common_channels_local_butone(struct Client *, int cap, int negcap, const char *, ...) AFP(4, 5);
extern void sendto_match_butone(struct Client *, struct Client *,
const char *, int, const char *, ...) AFP(5, 6);
-extern void sendto_match_servs(struct Client *source_p, const char *mask,
+extern void sendto_match_servs(struct Client *source_p, const char *mask,
int capab, int, const char *, ...) AFP(5, 6);
-extern void sendto_monitor(struct monitor *monptr, const char *, ...) AFP(2, 3);
+extern void sendto_monitor(struct Client *, struct monitor *monptr, const char *, ...) AFP(3, 4);
extern void sendto_anywhere(struct Client *, struct Client *, const char *,
const char *, ...) AFP(4, 5);
+extern void sendto_anywhere_echo(struct Client *, struct Client *, const char *,
+ const char *, ...) AFP(4, 5);
+extern void sendto_local_clients_with_capability(int cap, const char *pattern, ...) AFP(2, 3);
-extern void sendto_realops_flags(int, int, const char *, ...) AFP(3, 4);
extern void sendto_realops_snomask(int, int, const char *, ...) AFP(3, 4);
extern void sendto_realops_snomask_from(int, int, struct Client *, const char *, ...) AFP(4, 5);
extern void kill_client(struct Client *client_p, struct Client *diedie,
const char *pattern, ...) AFP(3, 4);
-extern void kill_client_serv_butone(struct Client *one, struct Client *source_p,
+extern void kill_client_serv_butone(struct Client *one, struct Client *source_p,
const char *pattern, ...) AFP(3, 4);
+enum multiline_item_result {
+ MULTILINE_FAILURE,
+ MULTILINE_SUCCESS,
+ MULTILINE_WRAPPED,
+};
+
+extern bool send_multiline_init(struct Client *target_p, const char *separator, const char *format, ...) AFP(3, 4);
+extern bool send_multiline_remote_pad(struct Client *target_p, struct Client *client_p);
+extern enum multiline_item_result send_multiline_item(struct Client *target_p, const char *format, ...) AFP(2, 3);
+extern bool send_multiline_fini(struct Client *target_p, const char *format, ...) AFP(2, 3);
+extern void send_multiline_reset(void);
+
#define L_ALL 0
#define L_OPER 1
#define L_ADMIN 2