Initial import of the ircii-pana-1.1-final source tree.
git-svn-id: svn://svn.code.sf.net/p/bitchx/code/tags/ircii-pana-1.1-final@1 13b04d17-f746-0410-82c6-800466cd88b0
This commit is contained in:
425
include/server.h
Normal file
425
include/server.h
Normal file
@@ -0,0 +1,425 @@
|
||||
/*
|
||||
* server.h: header for server.c
|
||||
*
|
||||
* Written By Michael Sandrof
|
||||
*
|
||||
* Copyright(c) 1990
|
||||
*
|
||||
* See the COPYRIGHT file, or do a HELP IRCII COPYRIGHT
|
||||
*
|
||||
* @(#)$Id: server.h,v 1.1.1.1 2003/04/11 01:09:07 dan Exp $
|
||||
*/
|
||||
|
||||
#ifndef __server_h_
|
||||
#define __server_h_
|
||||
|
||||
/* for ChannelList */
|
||||
#include "who.h"
|
||||
#include "names.h"
|
||||
#include "struct.h"
|
||||
#include "ssl.h"
|
||||
|
||||
/*
|
||||
* type definition to distinguish different
|
||||
* server versions
|
||||
*/
|
||||
#define Server2_7 0
|
||||
#define Server2_8 1
|
||||
#define Server2_9 2
|
||||
#define Server2_10 3
|
||||
#define Server2_8ts4 4
|
||||
#define Server2_8hybrid 5
|
||||
#define Server2_8hybrid6 6
|
||||
#define Server2_8comstud 7
|
||||
|
||||
#define Server_u2_8 10
|
||||
#define Server_u2_9 11
|
||||
#define Server_u2_10 12
|
||||
#define Server_u3_0 13
|
||||
|
||||
struct notify_stru;
|
||||
|
||||
typedef struct _queued_send
|
||||
{
|
||||
struct _queued_send *next;
|
||||
int server;
|
||||
int des;
|
||||
char *buffer;
|
||||
} QueueSend;
|
||||
|
||||
typedef struct _sping_ {
|
||||
struct _sping_ *next;
|
||||
char *sname;
|
||||
#ifdef HAVE_GETTIMEOFDAY
|
||||
struct timeval in_sping;
|
||||
#else
|
||||
time_t in_sping;
|
||||
#endif
|
||||
} Sping;
|
||||
|
||||
|
||||
/* Server: a structure for the server_list */
|
||||
typedef struct
|
||||
{
|
||||
char *name; /* the name of the server */
|
||||
char *itsname; /* the server's idea of its name */
|
||||
char *password; /* password for that server */
|
||||
char *snetwork;
|
||||
char *cookie; /* TS4 op cookie */
|
||||
int port; /* port number on that server */
|
||||
|
||||
char *nickname; /* nickname for this server */
|
||||
char *s_nickname; /* last NICK command sent */
|
||||
char *d_nickname; /* Default nickname to use */
|
||||
char *userhost;
|
||||
int fudge_factor; /* How much s_nickname's fudged */
|
||||
int nickname_pending; /* Is a NICK command pending? */
|
||||
int orignick_pending; /* Is a ORIGNICK command pending? */
|
||||
int server_change_pending; /* We are waiting for a server change */
|
||||
|
||||
char *away; /* away message for this server */
|
||||
time_t awaytime;
|
||||
int operator; /* true if operator */
|
||||
int server2_8;
|
||||
int version; /* the version of the server -
|
||||
* defined above */
|
||||
char *version_string; /* what is says */
|
||||
int whois; /* true if server sends numeric 318 */
|
||||
long flags; /* Various flags */
|
||||
long flags2;
|
||||
int login_flags; /* server login flags */
|
||||
char *umodes;
|
||||
char umode[80]; /* User Mode storage */
|
||||
int connected; /* true if connection is assured */
|
||||
int write; /* write descriptor */
|
||||
int read; /* read descriptior */
|
||||
int eof; /* eof flag for server */
|
||||
int motd; /* motd flag (used in notice.c) */
|
||||
int sent; /* set if something has been sent,
|
||||
* used for redirect */
|
||||
int lag; /* indication of lag from server CDE*/
|
||||
time_t lag_time; /* time ping sent to server CDE */
|
||||
time_t last_msg; /* last mesg recieved from the server CDE */
|
||||
|
||||
time_t last_sent; /* last mesg time sent */
|
||||
QueueSend *queue; /* queue of lines to send to a server */
|
||||
|
||||
char *buffer; /* buffer of what dgets() doesn't get */
|
||||
|
||||
|
||||
WhoEntry *who_queue; /* Who queue */
|
||||
IsonEntry *ison_queue; /* Ison queue */
|
||||
UserhostEntry *userhost_queue;/* Userhost queue */
|
||||
|
||||
NotifyList notify_list; /* Notify list for this server */
|
||||
NotifyList watch_list; /* Watch list for this server */
|
||||
int watch; /* dalnet watch. available */
|
||||
int copy_from; /* server to copy the channels from
|
||||
* when (re)connecting */
|
||||
int ctcp_dropped; /* */
|
||||
int ctcp_not_warned; /* */
|
||||
time_t ctcp_last_reply_time; /* used to limit flooding */
|
||||
|
||||
struct sockaddr_foobar local_addr; /* ip address of this connection */
|
||||
struct sockaddr_foobar uh_addr; /* ip address of this connection */
|
||||
struct sockaddr_foobar local_sockname; /* sockname of this connection */
|
||||
|
||||
ChannelList *chan_list; /* list of channels for this server */
|
||||
int in_delay_notify;
|
||||
int link_look;
|
||||
time_t link_look_time;
|
||||
int trace_flags;
|
||||
int in_who_kill;
|
||||
int in_trace_kill;
|
||||
int stats_flags;
|
||||
int in_timed_server;
|
||||
|
||||
char *redirect;
|
||||
|
||||
irc_server *tmplink; /* list of linked servers */
|
||||
irc_server *server_last;/* list of linked servers */
|
||||
irc_server *split_link; /* list of linked servers */
|
||||
|
||||
void (*parse_server) (char *); /* pointer to parser for this server */
|
||||
unsigned long ircop_flags;
|
||||
Sping *in_sping;
|
||||
int reconnects;
|
||||
int reconnecting;
|
||||
int reconnect;
|
||||
int closing;
|
||||
int retries;
|
||||
int try_once;
|
||||
int old_server;
|
||||
int req_server;
|
||||
int server_change_refnum;
|
||||
#ifdef NON_BLOCKING_CONNECTS
|
||||
int connect_wait;
|
||||
int c_server;
|
||||
int from_server;
|
||||
#endif
|
||||
char *orignick;
|
||||
time_t connect_time;
|
||||
#if defined(HAVE_SSL) && !defined(IN_MODULE)
|
||||
SSL_CTX* ctx;
|
||||
int enable_ssl;
|
||||
int ssl_error;
|
||||
SSL* ssl_fd;
|
||||
#endif
|
||||
} Server;
|
||||
|
||||
typedef struct ser_group_list
|
||||
{
|
||||
struct ser_group_list *next;
|
||||
char *name;
|
||||
int number;
|
||||
} SGroup;
|
||||
|
||||
typedef unsigned short ServerType;
|
||||
|
||||
int find_server_group (char *, int);
|
||||
char * find_server_group_name (int);
|
||||
|
||||
void BX_add_to_server_list (char *, int, char *, char *, char *, int, int);
|
||||
int BX_build_server_list (char *);
|
||||
int connect_to_server (char *, int, int);
|
||||
void BX_get_connected (int, int);
|
||||
void try_connect (int, int);
|
||||
int BX_read_server_file (char *);
|
||||
void BX_display_server_list (void);
|
||||
void do_server (fd_set *, fd_set *);
|
||||
int BX_connect_to_server_by_refnum (int, int);
|
||||
int BX_find_server_refnum (char *, char **);
|
||||
|
||||
void BX_set_server_cookie (int, char *);
|
||||
char *BX_get_server_cookie (int);
|
||||
|
||||
extern int attempting_to_connect;
|
||||
/*extern int number_of_servers;*/
|
||||
extern int connected_to_server;
|
||||
extern int never_connected;
|
||||
extern int primary_server;
|
||||
extern int from_server;
|
||||
extern int last_server;
|
||||
extern int parsing_server_index;
|
||||
|
||||
extern SGroup *server_group_list;
|
||||
|
||||
void servercmd (char *, char *, char *, char *);
|
||||
char *BX_get_server_nickname (int);
|
||||
char *BX_get_server_name (int);
|
||||
char *BX_get_server_itsname (int);
|
||||
char *get_server_pass (int);
|
||||
int BX_find_in_server_list (char *, int);
|
||||
char *BX_create_server_list (char *);
|
||||
void BX_set_server_motd (int, int);
|
||||
int BX_get_server_motd (int);
|
||||
int BX_get_server_operator (int);
|
||||
int BX_get_server_version (int);
|
||||
void BX_close_server (int, char *);
|
||||
int BX_is_server_connected (int);
|
||||
void BX_flush_server (void);
|
||||
void BX_set_server_operator (int, int);
|
||||
void BX_server_is_connected (int, int);
|
||||
int BX_parse_server_index (char *);
|
||||
void BX_parse_server_info (char *, char **, char **, char **, char **);
|
||||
long set_server_bits (fd_set *, fd_set *);
|
||||
void BX_set_server_itsname (int, char *);
|
||||
void BX_set_server_version (int, int);
|
||||
char *BX_get_possible_umodes(int);
|
||||
|
||||
int BX_is_server_open (int);
|
||||
int BX_get_server_port (int);
|
||||
|
||||
int BX_get_server_lag (int);
|
||||
void BX_set_server_lag (int, int);
|
||||
time_t get_server_lagtime (int);
|
||||
void set_server_lagtime (int, time_t);
|
||||
|
||||
char *BX_set_server_password (int, char *);
|
||||
void BX_set_server_nickname (int, char *);
|
||||
|
||||
void BX_set_server2_8 (int , int);
|
||||
int BX_get_server2_8 (int);
|
||||
|
||||
void BX_close_all_server (void);
|
||||
void disconnectcmd (char *, char *, char *, char *);
|
||||
char *BX_get_umode (int);
|
||||
int BX_server_list_size (void);
|
||||
|
||||
void BX_set_server_away (int, char *, int);
|
||||
char * BX_get_server_away (int);
|
||||
time_t get_server_awaytime (int);
|
||||
void set_server_awaytime (int, time_t);
|
||||
|
||||
void server_redirect (int, char *);
|
||||
int BX_check_server_redirect (char *);
|
||||
char * BX_get_server_network (int);
|
||||
void BX_server_disconnect (int, char *);
|
||||
void send_from_server_queue (void);
|
||||
void clear_sent_to_server (int);
|
||||
int sent_to_server (int);
|
||||
void BX_set_server_flag (int, int, int);
|
||||
int BX_get_server_flag (int, int);
|
||||
char * get_server_userhost (int);
|
||||
void got_my_userhost (UserhostItem *item, char *nick, char *stuff);
|
||||
void BX_set_server_version (int, int);
|
||||
int BX_get_server_version (int);
|
||||
void set_server_version_string (int, const char *);
|
||||
char * get_server_version_string (int);
|
||||
|
||||
void BX_set_server_redirect (int, const char *);
|
||||
char * BX_get_server_redirect (int);
|
||||
|
||||
void change_server_nickname (int, char *);
|
||||
void register_server (int, char *);
|
||||
void BX_fudge_nickname (int, int);
|
||||
char *BX_get_pending_nickname (int);
|
||||
void accept_server_nickname (int, char *);
|
||||
void BX_reset_nickname (int);
|
||||
void nick_command_is_pending (int, int);
|
||||
void orignick_is_pending (int, int);
|
||||
int is_orignick_pending (int);
|
||||
|
||||
void set_server_ircop_flags (int, unsigned long);
|
||||
unsigned long get_server_ircop_flags (int);
|
||||
extern void start_identd (void);
|
||||
|
||||
void set_server_in_timed (int, int);
|
||||
int get_server_in_timed (int);
|
||||
time_t get_server_lastmsg (int);
|
||||
|
||||
int close_all_servers (char *);
|
||||
void close_unattached_servers (void);
|
||||
void close_unattached_server(int);
|
||||
|
||||
void set_server_orignick (int, char *);
|
||||
char *get_server_orignick (int);
|
||||
|
||||
ChannelList *BX_get_server_channels (int);
|
||||
void BX_set_server_channels (int, ChannelList *);
|
||||
void BX_add_server_channels (int, ChannelList *);
|
||||
void set_server_channels_server (int);
|
||||
int get_server_channels_server (int);
|
||||
|
||||
int BX_get_server_trace_flag (int);
|
||||
void BX_set_server_trace_flag (int, int);
|
||||
int BX_get_server_stat_flag (int);
|
||||
void BX_set_server_stat_flag (int, int);
|
||||
|
||||
void set_server_reconnect (int, int);
|
||||
void set_server_reconnecting (int, int);
|
||||
void set_server_old_server (int, int);
|
||||
void set_server_req_server (int, int);
|
||||
void set_server_retries (int, int);
|
||||
void set_server_try_once (int, int);
|
||||
void set_server_change_refnum (int, int);
|
||||
int get_server_reconnect (int);
|
||||
int get_server_reconnecting (int);
|
||||
int get_server_change_pending (int);
|
||||
#ifdef HAVE_SSL
|
||||
void set_server_ssl(int, int);
|
||||
int get_server_ssl(int);
|
||||
#endif
|
||||
int is_server_valid(char *name, int server);
|
||||
|
||||
#if 0
|
||||
#ifdef HAVE_GETTIMEOFDAY
|
||||
struct timeval get_server_sping (int);
|
||||
void set_server_sping (int, struct timeval);
|
||||
#else
|
||||
time_t get_server_sping (int);
|
||||
void set_server_sping (int, time_t);
|
||||
#endif
|
||||
#endif
|
||||
Sping *get_server_sping (int, char *);
|
||||
void clear_server_sping (int, char *);
|
||||
void set_server_sping (int, Sping *);
|
||||
|
||||
int BX_get_server_trace_kill (int);
|
||||
void BX_set_server_trace_kill (int, int);
|
||||
|
||||
void BX_set_server_last_ctcp_time (int, time_t);
|
||||
time_t BX_get_server_last_ctcp_time (int);
|
||||
|
||||
int BX_get_server_linklook (int);
|
||||
void BX_set_server_linklook (int, int);
|
||||
time_t BX_get_server_linklook_time (int);
|
||||
void BX_set_server_linklook_time (int, time_t);
|
||||
int BX_get_server_read (int);
|
||||
int get_server_watch (int);
|
||||
void set_server_watch (int, int);
|
||||
|
||||
void set_userhost_queue_top (int, UserhostEntry *);
|
||||
UserhostEntry *userhost_queue_top (int);
|
||||
|
||||
void set_ison_queue_top (int, IsonEntry *);
|
||||
IsonEntry *ison_queue_top (int);
|
||||
|
||||
void set_who_queue_top (int, WhoEntry *);
|
||||
WhoEntry *who_queue_top (int);
|
||||
|
||||
void reconnect_server(int *, int *, time_t *);
|
||||
int finalize_server_connect(int, int, int);
|
||||
int next_server(int);
|
||||
void do_idle_server (void);
|
||||
|
||||
/* XXXXX ick, gross, bad. XXXXX */
|
||||
void password_sendline (char *data, char *line);
|
||||
|
||||
Server *BX_get_server_list (void);
|
||||
|
||||
int get_server_local_port (int);
|
||||
struct sockaddr_foobar get_server_local_addr (int);
|
||||
struct sockaddr_foobar get_server_uh_addr (int);
|
||||
NotifyItem *get_server_notify_list (int);
|
||||
void BX_send_msg_to_nicks (ChannelList *, int, char *);
|
||||
void BX_send_msg_to_channels (ChannelList *, int, char *);
|
||||
int BX_is_server_queue (void);
|
||||
int save_servers (FILE *);
|
||||
void add_split_server (char *, char *, int);
|
||||
irc_server *check_split_server (char *);
|
||||
void remove_split_server (int, char *);
|
||||
void clean_split_server_list (int, time_t);
|
||||
void write_server_list(char *);
|
||||
void write_server_file (char *);
|
||||
|
||||
#define USER_MODE 0x0001
|
||||
#define USER_MODE_A USER_MODE << 0
|
||||
#define USER_MODE_B USER_MODE << 1
|
||||
#define USER_MODE_C USER_MODE << 2
|
||||
#define USER_MODE_D USER_MODE << 3
|
||||
#define USER_MODE_E USER_MODE << 4
|
||||
#define USER_MODE_F USER_MODE << 5
|
||||
#define USER_MODE_G USER_MODE << 6
|
||||
#define USER_MODE_H USER_MODE << 7
|
||||
#define USER_MODE_I USER_MODE << 8
|
||||
#define USER_MODE_J USER_MODE << 9
|
||||
#define USER_MODE_K USER_MODE << 10
|
||||
#define USER_MODE_L USER_MODE << 11
|
||||
#define USER_MODE_M USER_MODE << 12
|
||||
#define USER_MODE_N USER_MODE << 13
|
||||
#define USER_MODE_O USER_MODE << 14
|
||||
#define USER_MODE_P USER_MODE << 15
|
||||
#define USER_MODE_Q USER_MODE << 16
|
||||
#define USER_MODE_R USER_MODE << 17
|
||||
#define USER_MODE_S USER_MODE << 18
|
||||
#define USER_MODE_T USER_MODE << 19
|
||||
#define USER_MODE_U USER_MODE << 20
|
||||
#define USER_MODE_V USER_MODE << 21
|
||||
#define USER_MODE_W USER_MODE << 22
|
||||
#define USER_MODE_X USER_MODE << 23
|
||||
#define USER_MODE_Y USER_MODE << 24
|
||||
#define USER_MODE_Z USER_MODE << 25
|
||||
|
||||
#define LOGGED_IN USER_MODE << 29
|
||||
#define CLOSE_PENDING USER_MODE << 30
|
||||
#define CLOSING_SERVER USER_MODE << 31
|
||||
extern const char *umodes;
|
||||
|
||||
#define IMMED_SEND 0
|
||||
#define QUEUE_SEND 1
|
||||
|
||||
#define LLOOK_SPLIT 0
|
||||
#define CHAN_SPLIT 1
|
||||
|
||||
#endif /* __server_h_ */
|
||||
Reference in New Issue
Block a user