ekg2
 All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje Grupay Strony
rivchat.h
Idź do dokumentacji tego pliku.
1 /* some rivchat-magic-stuff based on protocol: http://akolacz.googlepages.com/RivChat-specyfikacja.PDF */
2 
3 #define RC_BROADCAST 0xFFFFFFFF
4 
5 #define RC_TIMEOUT 30 /* soft-timeout */
6 #define RC_PING_TIMEOUT 60 /* hard-timeout */
7 
8 #define RC_MAGICSIZE 11
9 #define RC_SIZE 328
10 #define RC_DATASIZE 256
11 #define RC_INFOSIZE 140
12 
13 #define RC_MESSAGE 0
14 #define RC_INIT 1
15 #define RC_NICKCHANGE 2
16 #define RC_QUIT 3
17 #define RC_ME 4
18 #define RC_PING 5
19 #define RC_NICKPROTEST 6
20 #define RC_TOPIC 7
21 #define RC_NEWTOPIC 8
22 #define RC_AWAY 9
23 #define RC_REAWAY 10
24 #define RC_KICK 11
25 #define RC_POP 12
26 #define RC_REPOP 13
27 #define RC_KICKED 14
28 #define RC_IGNORE 15
29 #define RC_NOIGNORE 16
30 #define RC_REPOPIGNORED 17
31 #define RC_ECHOMSG 18
32 #define RC_PINGAWAY 19
33 #define RC_FILEPROPOSE 20
34 #define RC_FILEREQUEST 21
35 #define RC_FILECANCEL 22
36 #define RC_FILECANCEL2 23 /* XXX, nie w protokole */
37 
38 static const char rivchat_magic[RC_MAGICSIZE] = { 'R', 'i', 'v', 'C', 'h', 'a', 't' /* here NULs */}; /* RivChat\0\0\0\0 */
39 
40 #define RC_PACKED __attribute__ ((packed))
41 
42 typedef struct {
43  char host[50];
44  char os[20];
45  char prog[18];
46  uint8_t version[2];
47  uint8_t away;
48  uint8_t master;
49  uint32_t slowa;
50  char user[32];
51  uint8_t kod;
52  uint8_t plec;
53  uint8_t __pad1[2];
54  uint32_t online;
55  uint8_t filetransfer;
56  uint8_t pisze;
57  uint8_t __pad2[2];
58 } RC_PACKED rivchat_info_t;
59 
60 typedef struct {
61  char header[RC_MAGICSIZE]; /* rivchat_magic */
62  uint8_t __pad1;
63  uint32_t size;
64  uint32_t fromid;
65  uint32_t toid;
66  char nick[30];
67  uint8_t __pad2[2];
68  uint32_t type;
69  char data[RC_DATASIZE]; /* or RCINFO */
70  uint8_t colors[3]; /* colors RGB values */
71  uint8_t seq; /* sequence */
72 /* these 8bytes, can be uint64_t -> filesize */
73  uint8_t gender; /* 1 - man, 2 - woman */
74  uint8_t encrypted; /* we support encryption? */
75  uint8_t bold; /* ? */
76  uint8_t reserved[5];
77 } RC_PACKED rivchat_header_t;
78 
79 #define RC_FILETRANSFER 2
80 // #define RC_FILETRANSFER 0
81 #define RC_ENCRYPTED 0