1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
#ifndef __INTERNAL_H__
#define __INTERNAL_H__
#include <sysdep.h>
#include <zephyr/zephyr.h>
#include <netdb.h>
#ifdef HAVE_KRB4
#include <krb.h>
#include <krb_err.h>
#endif
#ifdef HAVE_HESIOD
#include <hesiod.h>
#endif
#ifndef HAVE_KRB4
#define REALM_SZ MAXHOSTNAMELEN
#define INST_SZ 0 /* no instances w/o Kerberos */
#define ANAME_SZ 9 /* size of a username + null */
#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_CKSUM_FAILED (-2) /* Used only by server. */
#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 */
struct _Z_Hole {
struct _Z_Hole *next;
int first;
int last;
};
struct _Z_InputQ {
struct _Z_InputQ *next;
struct _Z_InputQ *prev;
ZNotice_Kind_t kind;
unsigned ZEPHYR_INT32 timep;
int packet_len;
char *packet;
int complete;
struct sockaddr_in from;
struct _Z_Hole *holelist;
ZUnique_Id_t uid;
int auth;
int header_len;
char *header;
int msg_len;
char *msg;
};
extern struct _Z_InputQ *__Q_Head, *__Q_Tail;
extern int __Zephyr_open; /* 0 if FD opened, 1 otherwise */
extern int __HM_set; /* 0 if dest addr set, 1 otherwise */
extern int __Zephyr_server; /* 0 if normal client, 1 if server or zhm */
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) __P((ZNotice_t *, char *, int, int));
struct _Z_InputQ *Z_GetFirstComplete __P((void));
struct _Z_InputQ *Z_GetNextComplete __P((struct _Z_InputQ *));
Code_t Z_XmitFragment __P((ZNotice_t*, char *,int,int));
void Z_RemQueue __P((struct _Z_InputQ *));
Code_t Z_AddNoticeToEntry __P((struct _Z_InputQ*, ZNotice_t*, int));
Code_t Z_FormatAuthHeader __P((ZNotice_t *, char *, int, int *, Z_AuthProc));
Code_t Z_FormatHeader __P((ZNotice_t *, char *, int, int *, Z_AuthProc));
Code_t Z_FormatRawHeader __P((ZNotice_t *, char*, int,
int*, char **, char **));
Code_t Z_ReadEnqueue __P((void));
Code_t Z_ReadWait __P((void));
Code_t Z_SendLocation __P((char*, char*, Z_AuthProc, char*));
Code_t Z_SendFragmentedNotice __P((ZNotice_t *notice, int len,
Z_AuthProc cert_func,
Z_SendProc send_func));
Code_t Z_WaitForComplete __P((void));
Code_t Z_WaitForNotice __P((ZNotice_t *notice,
int (*pred) __P((ZNotice_t *, void *)), void *arg,
int timeout));
#endif /* __INTERNAL_H__ */
|