#endif
#include "state.h"
+#include "isupport.h"
+#include <sys/socket.h>
+
+#define DEFAULT_NETWORK_CHARSET NULL
struct global;
struct network;
enum network_connection_state state;
time_t last_line_sent;
+ time_t last_line_recvd;
GQueue *pending_lines;
GIOChannel *outgoing;
- GIOChannel *unix_incoming;
gint outgoing_id;
gint incoming_id;
- gint unix_incoming_id;
+ GIConv outgoing_iconv;
+ GIConv incoming_iconv;
union {
struct {
struct tcp_server_config *current_server;
struct sockaddr *remote_name;
struct sockaddr *local_name;
- size_t namelen;
+ socklen_t namelen;
+ char *last_disconnect_reason;
+ gint ping_id;
} tcp;
struct {
* An IRC network
*/
struct network {
- char *name;
struct global *global;
struct network_config *config;
};
/* server.c */
+G_MODULE_EXPORT gboolean network_set_charset(struct network *n, const char *name);
G_MODULE_EXPORT struct network *find_network_by_hostname(struct global *global, const char *host, guint16 port, gboolean create);
G_MODULE_EXPORT gboolean load_networks(struct global *, struct ctrlproxy_config *cfg);
G_MODULE_EXPORT gboolean autoconnect_networks(struct global *);
G_MODULE_EXPORT gboolean connect_network(struct network *);
G_MODULE_EXPORT void network_select_next_server(struct network *n);
G_MODULE_EXPORT gboolean disconnect_network(struct network *s);
-G_MODULE_EXPORT void clients_send(struct network *, struct line *, const struct client *exception);
-G_MODULE_EXPORT gboolean network_send_line(struct network *s, struct client *c, const struct line *);
+G_MODULE_EXPORT void clients_send(GList *clients, struct line *, const struct client *exception);
+G_MODULE_EXPORT void clients_send_args_ex(GList *clients, const char *hostmask, ...);
+G_MODULE_EXPORT gboolean network_send_line(struct network *s, struct client *c, const struct line *, gboolean);
G_MODULE_EXPORT gboolean network_send_args(struct network *s, ...);
G_MODULE_EXPORT void register_virtual_network(struct virtual_network_ops *);
G_MODULE_EXPORT struct network *find_network(struct global *, const char *);
G_MODULE_EXPORT gboolean virtual_network_recv_line(struct network *l, struct line *);
G_MODULE_EXPORT gboolean virtual_network_recv_args(struct network *l, const char *origin, ...);
+G_MODULE_EXPORT gboolean virtual_network_recv_response(struct network *n, int num, ...);
typedef void (*new_network_notify_fn) (struct network *, void *);
G_MODULE_EXPORT void register_new_network_notify(struct global *, new_network_notify_fn, void *userdata);
G_MODULE_EXPORT struct linestack_context *new_linestack(struct network *network);
+char *network_generate_feature_string(struct network *n);
#endif /* __CTRLPROXY_NETWORK_H__ */