1 /* $Id: oscar_dc.h 2726 2009-03-10 22:47:09Z kuhlmann $ */
2 
3 #ifndef CLIMM_PEER_H
4 #define CLIMM_PEER_H
5 
6 #include "contact.h"
7 
8 Event *ConnectionInitPeer   (Connection *list);
9 
10 /* Open, close, disallow connection of UIN with this listener */
11 BOOL TCPDirectOpen     (Connection *list, Contact *cont);
12 void TCPDirectClose    (Connection *list, Contact *cont);
13 void TCPDirectOff      (Connection *list, Contact *cont);
14 
15 /* Do the given peer2peer request */
16 UBYTE PeerSendMsg      (Connection *list, Contact *cont, UDWORD type, const char *text);
17 UBYTE PeerSendMsgFat   (Connection *list, Contact *cont, Message *msg);
18 BOOL TCPSendFiles      (Connection *list, Contact *cont, const char *description, const char **file, const char **as, int count);
19 BOOL TCPGetAuto        (Connection *list, Contact *cont, UWORD which);
20 BOOL TCPSendSSLReq     (Connection *list, Contact *cont);
21 
22 Connection *PeerFileCreate    (Server *serv);
23 BOOL        PeerFileAccept    (Connection *peer, UWORD ackstatus, UDWORD port);
24 UBYTE       PeerFileIncAccept (Connection *list, Event *event);
25 
26 void PeerFileResend (Event *event);
27 void PeerFileDispatchIncoming (Connection *fpeer);
28 void PeerFileDispatch (Connection *);
29 
30 Packet *PeerPacketC    (Connection *peer, UBYTE cmd);
31 void    PeerPacketSend (Connection *peer, Packet *pak);
32 
33 void       TCPDispatchShake   (Connection *peer);
34 void       TCPDispatchReconn  (Connection *peer);
35 void       TCPDispatchMain    (Connection *peer);
36 void       TCPDispatchConn    (Connection *peer);
37 void       TCPClose           (Connection *peer);
38 void       TCPPrint           (Packet *pak, Connection *peer, BOOL out);
39 
40 #define ASSERT_MSGLISTEN(s)   (assert (s), assert ((s)->type == TYPE_MSGLISTEN), assert ((s)->serv), assert ((s)->serv->oscar_dc == (s)))
41 #define ASSERT_MSGDIRECT(s)   (assert (s), assert ((s)->type == TYPE_MSGDIRECT), assert ((s)->serv), ASSERT_MSGLISTEN ((s)->serv->oscar_dc))
42 #define ASSERT_FILELISTEN(s)  (assert (s), assert ((s)->type == TYPE_FILELISTEN), assert ((s)->serv))
43 #define ASSERT_FILEDIRECT(s)  (assert (s), assert ((s)->type == TYPE_FILEDIRECT), assert ((s)->serv), ASSERT_FILELISTEN ((s)->serv->oscar_dc))
44 #define ASSERT_FILE(s)        (assert (s), assert ((s)->type == TYPE_FILE), ASSERT_FILEDIRECT ((s)->serv))
45 
46 #endif /* CLIMM_PEER_H */
47