pidgin/pidgin

Fix build with external libzephyr.

2020-12-01, Arkadiy Illarionov
d884c4b6e202
Parents cb8fd8a527ab
Children 4d3018b00ad4
Fix build with external libzephyr.

Testing Done:
Successfully compiled with meson configure -Dzephyr=disabled and meson configure -Dzephyr=enabled.

Reviewed at https://reviews.imfreedom.org/r/254/
--- a/libpurple/protocols/zephyr/internal.h Tue Dec 01 01:00:55 2020 -0600
+++ b/libpurple/protocols/zephyr/internal.h Tue Dec 01 22:06:48 2020 -0600
@@ -9,12 +9,6 @@
#include <zephyr_internal.h>
#endif
-#ifndef WIN32
-#include <netdb.h>
-#endif
-
-
-
#ifdef WIN32
#ifndef MAXHOSTNAMELEN
@@ -24,6 +18,7 @@
#define ETIMEDOUT WSAETIMEDOUT
#define EADDRINUSE WSAEADDRINUSE
#else /* !WIN32 */
+#include <netdb.h>
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN 4096
@@ -42,69 +37,4 @@
#define CLOCK_SKEW 300 /* max time to cache packet ids */
#endif
-#define SERVER_SVC_FALLBACK htons((unsigned short) 2103)
-#define HM_SVC_FALLBACK htons((unsigned short) 2104)
-#define HM_SRV_SVC_FALLBACK htons((unsigned short) 2105)
-
-#define ZAUTH_UNSET (-3) /* Internal to client library. */
-#define Z_MAXFRAGS 500 /* Max number of packet fragments */
-#define Z_MAXNOTICESIZE 400000 /* Max size of incoming notice */
-#define Z_MAXQUEUESIZE 1500000 /* Max size of input queue notices */
-#define Z_FRAGFUDGE 13 /* Room to for multinotice field */
-#define Z_NOTICETIMELIMIT 30 /* Time to wait for fragments */
-#define Z_INITFILTERSIZE 30 /* Starting size of uid filter */
-
-typedef struct {
- gint first;
- gint last;
-} Z_Hole;
-
-typedef struct {
- ZNotice_Kind_t kind;
- gint64 time;
- gint packet_len;
- gchar *packet;
- gboolean complete;
- struct sockaddr_in from;
- GSList *holelist; /* element-type: Z_Hole* */
- ZUnique_Id_t uid;
- int auth;
- gint header_len;
- gchar *header;
- gint msg_len;
- gchar *msg;
-} Z_InputQ;
-
-extern GQueue Z_input_queue;
-
-extern ZLocations_t *__locate_list;
-extern int __locate_num;
-extern int __locate_next;
-
-extern ZSubscription_t *__subscriptions_list;
-extern int __subscriptions_num;
-extern int __subscriptions_next;
-
-extern int __Zephyr_port; /* Port number */
-extern struct in_addr __My_addr;
-
-typedef Code_t (*Z_SendProc)(ZNotice_t *, char *, int, int);
-
-Z_InputQ *Z_GetFirstComplete(void);
-Z_InputQ *Z_GetNextComplete(Z_InputQ *);
-Code_t Z_XmitFragment(ZNotice_t *, char *, int, int);
-void Z_RemQueue(Z_InputQ *);
-Code_t Z_AddNoticeToEntry(Z_InputQ *, ZNotice_t *, int);
-Code_t Z_FormatAuthHeader(ZNotice_t *, char *, int, int *, Z_AuthProc);
-Code_t Z_FormatHeader(ZNotice_t *, char *, int, int *, Z_AuthProc);
-Code_t Z_FormatRawHeader(ZNotice_t *, char *, gsize, int *, char **, char **);
-Code_t Z_ReadEnqueue(void);
-Code_t Z_ReadWait(void);
-Code_t Z_SendLocation(char *, char *, Z_AuthProc, char *);
-Code_t Z_SendFragmentedNotice(ZNotice_t *notice, int len, Z_AuthProc cert_func,
- Z_SendProc send_func);
-Code_t Z_WaitForComplete(void);
-Code_t Z_WaitForNotice(ZNotice_t *notice, int (*pred)(ZNotice_t *, void *),
- void *arg, int timeout);
-
#endif /* PURPLE_ZEPHYR_INTERNAL_H */
--- a/libpurple/protocols/zephyr/zephyr.c Tue Dec 01 01:00:55 2020 -0600
+++ b/libpurple/protocols/zephyr/zephyr.c Tue Dec 01 22:06:48 2020 -0600
@@ -60,8 +60,13 @@
static PurpleProtocol *my_protocol = NULL;
static GSList *cmds = NULL;
+#ifdef LIBZEPHYR_EXT
+extern char __Zephyr_realm[];
+#else
extern Code_t ZGetLocations(ZLocations_t *, int *);
extern Code_t ZGetSubscriptions(ZSubscription_t *, int*);
+#endif
+
typedef struct _zframe zframe;
typedef struct _zephyr_triple zephyr_triple;
typedef struct _zephyr_account zephyr_account;
--- a/libpurple/protocols/zephyr/zephyr_internal.h Tue Dec 01 01:00:55 2020 -0600
+++ b/libpurple/protocols/zephyr/zephyr_internal.h Tue Dec 01 22:06:48 2020 -0600
@@ -61,6 +61,18 @@
#define ZAUTH_YES 1
#define ZAUTH_NO 0
+#define SERVER_SVC_FALLBACK htons((unsigned short) 2103)
+#define HM_SVC_FALLBACK htons((unsigned short) 2104)
+#define HM_SRV_SVC_FALLBACK htons((unsigned short) 2105)
+
+#define ZAUTH_UNSET (-3) /* Internal to client library. */
+#define Z_MAXFRAGS 500 /* Max number of packet fragments */
+#define Z_MAXNOTICESIZE 400000 /* Max size of incoming notice */
+#define Z_MAXQUEUESIZE 1500000 /* Max size of input queue notices */
+#define Z_FRAGFUDGE 13 /* Room to for multinotice field */
+#define Z_NOTICETIMELIMIT 30 /* Time to wait for fragments */
+#define Z_INITFILTERSIZE 30 /* Starting size of uid filter */
+
typedef char ZPacket_t[Z_MAXPKTLEN];
/* Packet type */
@@ -128,6 +140,27 @@
char *version;
} ZAsyncLocateData_t;
+typedef struct {
+ gint first;
+ gint last;
+} Z_Hole;
+
+typedef struct {
+ ZNotice_Kind_t kind;
+ gint64 time;
+ gint packet_len;
+ gchar *packet;
+ gboolean complete;
+ struct sockaddr_in from;
+ GSList *holelist; /* element-type: Z_Hole* */
+ ZUnique_Id_t uid;
+ int auth;
+ gint header_len;
+ gchar *header;
+ gint msg_len;
+ gchar *msg;
+} Z_InputQ;
+
int ZCompareUIDPred(ZNotice_t *, void *);
int ZCompareMultiUIDPred(ZNotice_t *, void *);
@@ -197,6 +230,38 @@
int ZPending(void);
Code_t ZReceiveNotice(ZNotice_t *notice, struct sockaddr_in *from);
+typedef Code_t (*Z_SendProc)(ZNotice_t *, char *, int, int);
+
+Z_InputQ *Z_GetFirstComplete(void);
+Z_InputQ *Z_GetNextComplete(Z_InputQ *);
+Code_t Z_XmitFragment(ZNotice_t *, char *, int, int);
+void Z_RemQueue(Z_InputQ *);
+Code_t Z_AddNoticeToEntry(Z_InputQ *, ZNotice_t *, int);
+Code_t Z_FormatAuthHeader(ZNotice_t *, char *, int, int *, Z_AuthProc);
+Code_t Z_FormatHeader(ZNotice_t *, char *, int, int *, Z_AuthProc);
+Code_t Z_FormatRawHeader(ZNotice_t *, char *, gsize, int *, char **, char **);
+Code_t Z_ReadEnqueue(void);
+Code_t Z_ReadWait(void);
+Code_t Z_SendLocation(char *, char *, Z_AuthProc, char *);
+Code_t Z_SendFragmentedNotice(ZNotice_t *notice, int len, Z_AuthProc cert_func,
+ Z_SendProc send_func);
+Code_t Z_WaitForComplete(void);
+Code_t Z_WaitForNotice(ZNotice_t *notice, int (*pred)(ZNotice_t *, void *),
+ void *arg, int timeout);
+
+extern GQueue Z_input_queue;
+
+extern ZLocations_t *__locate_list;
+extern int __locate_num;
+extern int __locate_next;
+
+extern ZSubscription_t *__subscriptions_list;
+extern int __subscriptions_num;
+extern int __subscriptions_next;
+
+extern int __Zephyr_port; /* Port number */
+extern struct in_addr __My_addr;
+
/* Macros to retrieve Zephyr library values. */
extern int __Zephyr_fd;
extern int __Q_CompleteLength;