-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathxtrace.h
69 lines (61 loc) · 2.2 KB
/
xtrace.h
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
extern size_t authdata_len;
extern char *authdata;
extern FILE *out;
bool generateAuthorisation(const char *displayname);
const char *parseDisplay(const char *displayname,
char **protocol, char **hostname,
int *display, int *screen, int *family );
int connectToServer(const char *displayname,int family,const char *hostname,int display);
int listenForClients(const char *displayname,int family,int display);
struct sockaddr_un;
const char *generateSocketName(struct sockaddr_un *addr,int display);
uint16_t calculateTCPport(int display);
int acceptClient(int family,int listener, char **from);
#define FDQUEUE_MAX_FD 16
struct fdqueue {
int fd[FDQUEUE_MAX_FD];
int nfd;
};
extern struct connection {
struct connection *next;
int id; char *from;
int client_fd,server_fd;
bool bigendian;
unsigned char clientbuffer[16*4096];
unsigned int clientcount,clientignore;
enum client_state { c_start=0, c_normal, c_amlost } clientstate;
unsigned char serverbuffer[16*4096];
unsigned int servercount,serverignore;
enum server_state { s_start=0, s_normal, s_amlost} serverstate;
struct fdqueue clientfdq;
struct fdqueue serverfdq;
struct expectedreply *expectedreplies;
uint64_t seq;
struct usedextension *usedextensions;
struct unknownextension *waiting, *unknownextensions;
unsigned long long starttime;
} *connections;
void parse_server(struct connection *c);
void parse_client(struct connection *c);
void free_usedextensions(struct usedextension *);
void free_unknownextensions(struct unknownextension *);
bool copy_authentication(const char *fakedisplay,const char *display, const char *infile, const char *outfile);
struct atom;
struct atom *newAtom(const char *name, size_t len);
const char *getAtom(struct connection *c, uint32_t atom);
void internAtom(struct connection *c, uint32_t atom, struct atom *data);
extern bool denyallextensions;
extern size_t maxshownlistlen;
extern bool print_timestamps;
extern bool print_reltimestamps;
extern bool print_uptimestamps;
#ifdef __GNUC__
#define UNUSED __attribute__ ((unused))
#define FORMAT(func,fmtarg,dotarg) __attribute__((format(func,fmtarg,dotarg)));
#else
#define UNUSED
#define FORMAT(func,fmtarg,dotarg)
#endif
#ifndef HAVE_STRNDUP
char *strndup(const char *,size_t);
#endif