libpurple/protocols/zephyr/internal.h

Wed, 25 Nov 2020 00:43:41 -0600

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Wed, 25 Nov 2020 00:43:41 -0600
changeset 40628
4266008a7791
parent 40625
56e1a1a5af0b
child 40633
d884c4b6e202
permissions
-rw-r--r--

Use a GQueue for zephyr plus related cleanup

* Make `_Z_InputQ->complete` a boolean, as that's all it's used as.
* Use GLib allocation functions for `Z_InputQ` members.
* Use a `GQueue` for zephyr input.
* Use `*_find_custom` functions for input queue search.

Testing Done:
Compile only.

Reviewed at https://reviews.imfreedom.org/r/253/

39819
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 34304
diff changeset
1 #ifndef PURPLE_ZEPHYR_INTERNAL_H
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 34304
diff changeset
2 #define PURPLE_ZEPHYR_INTERNAL_H
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4 #include <sysdep.h>
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
5
23315
934db4b32b9f When compiling against an external libzephyr, we need to use its zephyr.h,
Richard Laager <rlaager@pidgin.im>
parents: 15435
diff changeset
6 #ifdef LIBZEPHYR_EXT
934db4b32b9f When compiling against an external libzephyr, we need to use its zephyr.h,
Richard Laager <rlaager@pidgin.im>
parents: 15435
diff changeset
7 #include <zephyr/zephyr.h>
934db4b32b9f When compiling against an external libzephyr, we need to use its zephyr.h,
Richard Laager <rlaager@pidgin.im>
parents: 15435
diff changeset
8 #else
934db4b32b9f When compiling against an external libzephyr, we need to use its zephyr.h,
Richard Laager <rlaager@pidgin.im>
parents: 15435
diff changeset
9 #include <zephyr_internal.h>
934db4b32b9f When compiling against an external libzephyr, we need to use its zephyr.h,
Richard Laager <rlaager@pidgin.im>
parents: 15435
diff changeset
10 #endif
934db4b32b9f When compiling against an external libzephyr, we need to use its zephyr.h,
Richard Laager <rlaager@pidgin.im>
parents: 15435
diff changeset
11
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
12 #ifndef WIN32
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
13 #include <netdb.h>
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
14 #endif
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
15
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
16
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
17
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
18 #ifdef WIN32
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
19
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
20 #ifndef MAXHOSTNAMELEN
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
21 #define MAXHOSTNAMELEN 512
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
22 #endif
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
23
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
24 #define ETIMEDOUT WSAETIMEDOUT
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
25 #define EADDRINUSE WSAEADDRINUSE
28067
086aa4d8d4a4 zephyr: Build properly on Hurd.
Marc Dequènes <duck@hurdfr.org>
parents: 23315
diff changeset
26 #else /* !WIN32 */
086aa4d8d4a4 zephyr: Build properly on Hurd.
Marc Dequènes <duck@hurdfr.org>
parents: 23315
diff changeset
27
086aa4d8d4a4 zephyr: Build properly on Hurd.
Marc Dequènes <duck@hurdfr.org>
parents: 23315
diff changeset
28 #ifndef MAXHOSTNAMELEN
086aa4d8d4a4 zephyr: Build properly on Hurd.
Marc Dequènes <duck@hurdfr.org>
parents: 23315
diff changeset
29 #define MAXHOSTNAMELEN 4096
086aa4d8d4a4 zephyr: Build properly on Hurd.
Marc Dequènes <duck@hurdfr.org>
parents: 23315
diff changeset
30 #endif
086aa4d8d4a4 zephyr: Build properly on Hurd.
Marc Dequènes <duck@hurdfr.org>
parents: 23315
diff changeset
31
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 2419
diff changeset
32 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
33
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
34 #ifdef ZEPHYR_USES_HESIOD
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
35 #include <hesiod.h>
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
36 #endif
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
37
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
38 #ifndef ZEPHYR_USES_KERBEROS
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
39 #define REALM_SZ MAXHOSTNAMELEN
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
40 #define INST_SZ 0 /* no instances w/o Kerberos */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
41 #define ANAME_SZ 9 /* size of a username + null */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
42 #define CLOCK_SKEW 300 /* max time to cache packet ids */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
43 #endif
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
44
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
45 #define SERVER_SVC_FALLBACK htons((unsigned short) 2103)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
46 #define HM_SVC_FALLBACK htons((unsigned short) 2104)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
47 #define HM_SRV_SVC_FALLBACK htons((unsigned short) 2105)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
48
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
49 #define ZAUTH_UNSET (-3) /* Internal to client library. */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
50 #define Z_MAXFRAGS 500 /* Max number of packet fragments */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
51 #define Z_MAXNOTICESIZE 400000 /* Max size of incoming notice */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
52 #define Z_MAXQUEUESIZE 1500000 /* Max size of input queue notices */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
53 #define Z_FRAGFUDGE 13 /* Room to for multinotice field */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
54 #define Z_NOTICETIMELIMIT 30 /* Time to wait for fragments */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
55 #define Z_INITFILTERSIZE 30 /* Starting size of uid filter */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
56
40625
56e1a1a5af0b Use a GSList for Zephyr hole list.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40624
diff changeset
57 typedef struct {
56e1a1a5af0b Use a GSList for Zephyr hole list.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40624
diff changeset
58 gint first;
56e1a1a5af0b Use a GSList for Zephyr hole list.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40624
diff changeset
59 gint last;
56e1a1a5af0b Use a GSList for Zephyr hole list.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40624
diff changeset
60 } Z_Hole;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
61
40628
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
62 typedef struct {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
63 ZNotice_Kind_t kind;
40623
6260f39c7c65 zephyr: Replace gettimeofday by GLib functions
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39829
diff changeset
64 gint64 time;
40628
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
65 gint packet_len;
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
66 gchar *packet;
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
67 gboolean complete;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
68 struct sockaddr_in from;
40625
56e1a1a5af0b Use a GSList for Zephyr hole list.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40624
diff changeset
69 GSList *holelist; /* element-type: Z_Hole* */
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
70 ZUnique_Id_t uid;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
71 int auth;
40628
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
72 gint header_len;
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
73 gchar *header;
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
74 gint msg_len;
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
75 gchar *msg;
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
76 } Z_InputQ;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
77
40628
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
78 extern GQueue Z_input_queue;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
79
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
80 extern ZLocations_t *__locate_list;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
81 extern int __locate_num;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
82 extern int __locate_next;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
83
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
84 extern ZSubscription_t *__subscriptions_list;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
85 extern int __subscriptions_num;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
86 extern int __subscriptions_next;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
87
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
88 extern int __Zephyr_port; /* Port number */
2419
beb509dd2935 [gaim-migrate @ 2432]
Salvatore Valente
parents: 2086
diff changeset
89 extern struct in_addr __My_addr;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
90
39829
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
91 typedef Code_t (*Z_SendProc)(ZNotice_t *, char *, int, int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
92
40628
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
93 Z_InputQ *Z_GetFirstComplete(void);
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
94 Z_InputQ *Z_GetNextComplete(Z_InputQ *);
39829
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
95 Code_t Z_XmitFragment(ZNotice_t *, char *, int, int);
40628
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
96 void Z_RemQueue(Z_InputQ *);
4266008a7791 Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40625
diff changeset
97 Code_t Z_AddNoticeToEntry(Z_InputQ *, ZNotice_t *, int);
39829
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
98 Code_t Z_FormatAuthHeader(ZNotice_t *, char *, int, int *, Z_AuthProc);
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
99 Code_t Z_FormatHeader(ZNotice_t *, char *, int, int *, Z_AuthProc);
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
100 Code_t Z_FormatRawHeader(ZNotice_t *, char *, gsize, int *, char **, char **);
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
101 Code_t Z_ReadEnqueue(void);
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
102 Code_t Z_ReadWait(void);
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
103 Code_t Z_SendLocation(char *, char *, Z_AuthProc, char *);
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
104 Code_t Z_SendFragmentedNotice(ZNotice_t *notice, int len, Z_AuthProc cert_func,
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
105 Z_SendProc send_func);
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
106 Code_t Z_WaitForComplete(void);
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
107 Code_t Z_WaitForNotice(ZNotice_t *notice, int (*pred)(ZNotice_t *, void *),
ce056c64e426 zephyr: Remove support for compilers without __STDC__.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39819
diff changeset
108 void *arg, int timeout);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
109
39819
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 34304
diff changeset
110 #endif /* PURPLE_ZEPHYR_INTERNAL_H */

mercurial