1 /* 2 * dcc.h: Things dealing client to client connections. 3 * 4 * Copyright(c) 1998 Colten Edwards 5 * 6 */ 7 8 #ifndef __dcc_h_ 9 #define __dcc_h_ 10 11 /* 12 * these are all used in the bot_link layer. the dcc_printf is used in 13 * a few other places as well. ie dcc.c 14 */ 15 int BX_dcc_printf (int, char *, ...); 16 void tandout_but (int, char *, ...); 17 void chanout_but (int, char *, ...); 18 int handle_tcl_chan (int, char *, char *, char *); 19 int tand_chan (int, char *); 20 int tand_zapf (int, char *); 21 int tand_zapfbroad (int, char *); 22 int handle_dcc_bot (int, char *); 23 int tandem_join (int, char *); 24 int tandem_part (int, char *); 25 int send_who_to (int, char *, int); 26 int tand_who (int, char *); 27 int tand_whom (int, char *); 28 int tell_who (int, char *); 29 int send_who (int, char *); 30 int tell_whom (int, char *); 31 int send_whom (int, char *); 32 int tand_priv (int, char *); 33 int tand_boot (int, char *); 34 int tand_privmsg (int, char *); 35 int tand_part (int, char *); 36 int tand_join (int, char *); 37 int tand_clink (int, char *); 38 int tand_command (int, char *); 39 int cmd_cmsg (int, char *); 40 int cmd_cboot (int, char *); 41 int cmd_act (int, char *); 42 int cmd_help (int, char *); 43 int cmd_msg (int, char *); 44 int cmd_say (int, char *); 45 int cmd_tcl (int, char *); 46 int cmd_chat (int, char *); 47 int cmd_quit (int, char *); 48 int cmd_invite (int, char *); 49 int cmd_echo (int, char *); 50 int cmd_boot (int, char *); 51 int cmd_ops (int, char *); 52 int cmd_adduser (int, char *); 53 int cmd_ircii (int, char *); 54 int cmd_whoami (int, char *); 55 int send_command (int, char *); 56 57 int dcc_ftpcommand (char *, char *); 58 59 60 /* 61 * these definitions are mostly used by ircII as well 62 * I expanded the flags to a full 32 bits to allow for future 63 * expansion. 64 */ 65 #define DCC_PACKETID 0xfeab /* used to figure out endianess 66 * as well as identify the resend 67 * packet 68 */ 69 #define MAX_DCC_BLOCK_SIZE 16384 /* 70 * this is really arbritrary value. 71 * we can actually make this a lot 72 * larger and things will still work 73 * as expected. The network layer places 74 * a limit however. 75 */ 76 77 #define DCC_CHAT 0x00000001 78 79 #define DCC_FILEOFFER 0x00000002 80 #define DCC_FILEREAD 0x00000003 81 82 #define DCC_RAW_LISTEN 0x00000004 83 #define DCC_RAW 0x00000005 84 85 #define DCC_REFILEOFFER 0x00000006 86 #define DCC_REFILEREAD 0x00000007 87 88 #define DCC_BOTMODE 0x00000008 89 #define DCC_FTPOPEN 0x00000009 90 #define DCC_FTPGET 0x0000000a 91 #define DCC_FTPSEND 0x0000000b 92 #define DCC_FTPCOMMAND 0x0000000c 93 #define DCC_TYPES 0x000000ff 94 95 #define DCC_WAIT 0x00010000 96 #define DCC_ACTIVE 0x00020000 97 #define DCC_OFFER 0x00040000 98 #define DCC_DELETE 0x00080000 99 #define DCC_TWOCLIENTS 0x00100000 100 101 #ifdef NON_BLOCKING_CONNECTS 102 #define DCC_CNCT_PEND 0x00200000 103 #endif 104 105 #ifdef HAVE_SSL 106 #define DCC_SSL 0x04000000 107 #endif 108 109 #define DCC_QUEUE 0x00400000 110 #define DCC_TDCC 0x00800000 111 #define DCC_BOTCHAT 0x01000000 112 #define DCC_ECHO 0x02000000 113 #define DCC_STATES 0xffffff00 114 115 116 int check_dcc_list (char *); 117 int dcc_exempt_save (FILE *); 118 119 void BX_dcc_filesend(char *, char *); 120 void BX_dcc_resend(char *, char *); 121 void dcc_stats(char *, char *); 122 void dcc_chat(char *, char *); 123 void dcc_ftpopen(char *, char *); 124 void dcc_glist(char *, char *); 125 void dcc_chatbot(char *, char *); 126 void dcc_resume(char *, char *); 127 void dcc_rename(char *, char *); 128 129 int BX_get_active_count(void); 130 int dcc_ftpcommand(char *, char *); 131 void process_dcc(char *); 132 int dcc_activechat(char *); /* identify all active chat dcc's */ 133 int dcc_activebot(char *); /* identify all active bot's */ 134 int dcc_activeraw(char *); /* identify all active raw connects */ 135 void dcc_chat_transmit(char *, char *, char *, char *, int); 136 void dcc_bot_transmit(char *, char *, char *); 137 void dcc_raw_transmit(char *, char *, char *); 138 139 void register_dcc_type(char *, char *, char *, char *, char *, char *, char *, char *, void (*func)(int)); 140 141 void dcc_reject(char *, char *, char *); 142 char *dcc_raw_connect(char *, unsigned short); 143 char *dcc_raw_listen(int port); 144 void close_all_dcc(void); 145 void dcc_sendfrom_queue(void); 146 void dcc_check_idle(void); 147 int check_dcc_socket(int); 148 char *get_dcc_info(SocketList *, DCC_int *, int); 149 void init_dcc_table(void); 150 int BX_remove_all_dcc_binds(char *); 151 int BX_remove_dcc_bind(char *, int); 152 153 154 int BX_add_dcc_bind(char *, char *, void *, void *, void *, void *, void *); 155 156 SocketList *BX_find_dcc(char *, char *, char *, int, int, int, int); 157 void BX_erase_dcc_info(int, int, char *, ...); 158 DCC_int *BX_dcc_create(char *, char *, char *, unsigned long, int, int, unsigned long, void (*func)(int)); 159 int close_dcc_number(int); 160 161 char * equal_nickname (const char *); 162 163 #define DCC_STRUCT_TYPE 0xdcc0dcc0 164 165 #endif /* __dcc_h_ */ 166