Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
BitchX
GitHub Repository: BitchX/BitchX1.3
Path: blob/master/include/dcc.h
1069 views
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
167