Added SILC Thread Queue API
[crypto.git] / apps / irssi / src / core / servers-setup.h
1 #ifndef __SERVERS_SETUP_H
2 #define __SERVERS_SETUP_H
3
4 #include "modules.h"
5
6 #define SERVER_SETUP(server) \
7         MODULE_CHECK_CAST(server, SERVER_SETUP_REC, type, "SERVER SETUP")
8
9 #define IS_SERVER_SETUP(server) \
10         (SERVER_SETUP(server) ? TRUE : FALSE)
11
12 /* servers */
13 struct _SERVER_SETUP_REC {
14 #include "server-setup-rec.h"
15 };
16
17 extern GSList *setupservers;
18
19 extern IPADDR *source_host_ip4, *source_host_ip6; /* Resolved address */
20 extern int source_host_ok; /* Use source_host_ip .. */
21
22 /* Fill reconnection specific information to connection
23    from server setup record */
24 void server_setup_fill_reconn(SERVER_CONNECT_REC *conn,
25                               SERVER_SETUP_REC *sserver);
26
27 /* Create server connection record. `dest' is required, rest can be NULL.
28    `dest' is either a server address or chat network */
29 SERVER_CONNECT_REC *
30 server_create_conn(int chat_type, const char *dest, int port,
31                    const char *chatnet, const char *password,
32                    const char *nick);
33
34 /* Find matching server from setup. Try to find record with a same port,
35    but fallback to any server with the same address. */
36 SERVER_SETUP_REC *server_setup_find(const char *address, int port,
37                                     const char *chatnet);
38 /* Find matching server from setup. Ports must match or NULL is returned. */
39 SERVER_SETUP_REC *server_setup_find_port(const char *address, int port);
40
41 void server_setup_add(SERVER_SETUP_REC *rec);
42 void server_setup_remove(SERVER_SETUP_REC *rec);
43
44 void servers_setup_init(void);
45 void servers_setup_deinit(void);
46
47 #endif