VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/7.0/X11/Xdmcp.h@ 17236

Last change on this file since 17236 was 17236, checked in by vboxsync, 16 years ago

Additions/x11/x11include: blast! Reverted r43555 and r43556

  • Property svn:eol-style set to native
File size: 6.6 KB
Line 
1/* $XdotOrg: xc/lib/Xdmcp/Xdmcp.h,v 1.2 2004/04/23 18:43:41 eich Exp $ */
2/* $Xorg: Xdmcp.h,v 1.7 2001/04/13 14:43:00 steve Exp $ */
3/*
4 * Copyright 1989 Network Computing Devices, Inc., Mountain View, California.
5 *
6 * Permission to use, copy, modify, and distribute this software and its
7 * documentation for any purpose and without fee is hereby granted, provided
8 * that the above copyright notice appear in all copies and that both that
9 * copyright notice and this permission notice appear in supporting
10 * documentation, and that the name of N.C.D. not be used in advertising or
11 * publicity pertaining to distribution of the software without specific,
12 * written prior permission. N.C.D. makes no representations about the
13 * suitability of this software for any purpose. It is provided "as is"
14 * without express or implied warranty.
15 *
16 */
17/* $XFree86: xc/lib/Xdmcp/Xdmcp.h,v 3.7 2003/07/09 15:27:29 tsi Exp $ */
18
19#ifndef _XDMCP_H_
20#define _XDMCP_H_
21
22#include <X11/Xmd.h>
23
24#include <X11/Xfuncproto.h>
25
26_XFUNCPROTOBEGIN
27
28#define XDM_PROTOCOL_VERSION 1
29#define XDM_UDP_PORT 177
30
31/* IANA has assigned FF0X:0:0:0:0:0:0:12B as the permanently assigned
32 * multicast addresses for XDMCP, where X in the prefix may be replaced
33 * by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local,
34 * 5 for Site-Local, and so on. We set the default here to the Link-Local
35 * version to most closely match the old IPv4 subnet broadcast behavior.
36 * Both xdm and X -query allow specifying a different address if a different
37 * scope is defined.
38 */
39#define XDM_DEFAULT_MCAST_ADDR6 "ff02:0:0:0:0:0:0:12b"
40
41#define XDM_MAX_MSGLEN 8192
42#define XDM_MIN_RTX 2
43#define XDM_MAX_RTX 32
44#define XDM_RTX_LIMIT 7
45#define XDM_KA_RTX_LIMIT 4
46#define XDM_DEF_DORMANCY (3 * 60) /* 3 minutes */
47#define XDM_MAX_DORMANCY (24 * 60 * 60) /* 24 hours */
48
49typedef enum {
50 BROADCAST_QUERY = 1, QUERY, INDIRECT_QUERY, FORWARD_QUERY,
51 WILLING, UNWILLING, REQUEST, ACCEPT, DECLINE, MANAGE, REFUSE,
52 FAILED, KEEPALIVE, ALIVE
53} xdmOpCode;
54
55typedef enum {
56 XDM_QUERY, XDM_BROADCAST, XDM_INDIRECT, XDM_COLLECT_QUERY,
57 XDM_COLLECT_BROADCAST_QUERY, XDM_COLLECT_INDIRECT_QUERY,
58 XDM_START_CONNECTION, XDM_AWAIT_REQUEST_RESPONSE,
59 XDM_AWAIT_MANAGE_RESPONSE, XDM_MANAGE, XDM_RUN_SESSION, XDM_OFF,
60 XDM_AWAIT_USER_INPUT, XDM_KEEPALIVE, XDM_AWAIT_ALIVE_RESPONSE,
61#if defined(IPv6) && defined(AF_INET6)
62 XDM_MULTICAST, XDM_COLLECT_MULTICAST_QUERY,
63#endif
64 XDM_KEEP_ME_LAST
65} xdmcp_states;
66
67#ifdef NOTDEF
68/* table of hosts */
69
70#define XDM_MAX_STR_LEN 21
71#define XDM_MAX_HOSTS 20
72struct xdm_host_table {
73 struct sockaddr_in sockaddr;
74 char name[XDM_MAX_STR_LEN];
75 char status[XDM_MAX_STR_LEN];
76};
77#endif /* NOTDEF */
78
79typedef CARD8 *CARD8Ptr;
80typedef CARD16 *CARD16Ptr;
81typedef CARD32 *CARD32Ptr;
82
83typedef struct _ARRAY8 {
84 CARD16 length;
85 CARD8Ptr data;
86} ARRAY8, *ARRAY8Ptr;
87
88typedef struct _ARRAY16 {
89 CARD8 length;
90 CARD16Ptr data;
91} ARRAY16, *ARRAY16Ptr;
92
93typedef struct _ARRAY32 {
94 CARD8 length;
95 CARD32Ptr data;
96} ARRAY32, *ARRAY32Ptr;
97
98typedef struct _ARRAYofARRAY8 {
99 CARD8 length;
100 ARRAY8Ptr data;
101} ARRAYofARRAY8, *ARRAYofARRAY8Ptr;
102
103typedef struct _XdmcpHeader {
104 CARD16 version, opcode, length;
105} XdmcpHeader, *XdmcpHeaderPtr;
106
107typedef struct _XdmcpBuffer {
108 BYTE *data;
109 int size; /* size of buffer pointed by to data */
110 int pointer; /* current index into data */
111 int count; /* bytes read from network into data */
112} XdmcpBuffer, *XdmcpBufferPtr;
113
114typedef struct _XdmAuthKey {
115 BYTE data[8];
116} XdmAuthKeyRec, *XdmAuthKeyPtr;
117
118
119/* implementation-independent network address structure.
120 Equiv to sockaddr* for sockets and netbuf* for STREAMS. */
121
122typedef char *XdmcpNetaddr;
123
124extern int XdmcpWriteARRAY16(XdmcpBufferPtr buffer, ARRAY16Ptr array);
125extern int XdmcpWriteARRAY32(XdmcpBufferPtr buffer, ARRAY32Ptr array);
126extern int XdmcpWriteARRAY8(XdmcpBufferPtr buffer, ARRAY8Ptr array);
127extern int XdmcpWriteARRAYofARRAY8(XdmcpBufferPtr buffer, ARRAYofARRAY8Ptr array);
128extern int XdmcpWriteCARD16(XdmcpBufferPtr buffer, unsigned value);
129extern int XdmcpWriteCARD32(XdmcpBufferPtr buffer, unsigned value);
130extern int XdmcpWriteCARD8(XdmcpBufferPtr buffer, unsigned value);
131extern int XdmcpWriteHeader(XdmcpBufferPtr buffer, XdmcpHeaderPtr header);
132
133extern int XdmcpFlush(int fd, XdmcpBufferPtr buffer, XdmcpNetaddr to, int tolen);
134
135extern int XdmcpReadARRAY16(XdmcpBufferPtr buffer, ARRAY16Ptr array);
136extern int XdmcpReadARRAY32(XdmcpBufferPtr buffer, ARRAY32Ptr array);
137extern int XdmcpReadARRAY8(XdmcpBufferPtr buffer, ARRAY8Ptr array);
138extern int XdmcpReadARRAYofARRAY8(XdmcpBufferPtr buffer, ARRAYofARRAY8Ptr array);
139extern int XdmcpReadCARD16(XdmcpBufferPtr buffer, CARD16Ptr valuep);
140extern int XdmcpReadCARD32(XdmcpBufferPtr buffer, CARD32Ptr valuep);
141extern int XdmcpReadCARD8(XdmcpBufferPtr buffer, CARD8Ptr valuep);
142extern int XdmcpReadHeader(XdmcpBufferPtr buffer, XdmcpHeaderPtr header);
143
144extern int XdmcpFill(int fd, XdmcpBufferPtr buffer, XdmcpNetaddr from, int *fromlen);
145
146extern int XdmcpReadRemaining(XdmcpBufferPtr buffer);
147
148extern void XdmcpDisposeARRAY8(ARRAY8Ptr array);
149extern void XdmcpDisposeARRAY16(ARRAY16Ptr array);
150extern void XdmcpDisposeARRAY32(ARRAY32Ptr array);
151extern void XdmcpDisposeARRAYofARRAY8(ARRAYofARRAY8Ptr array);
152
153extern int XdmcpCopyARRAY8(ARRAY8Ptr src, ARRAY8Ptr dst);
154
155extern int XdmcpARRAY8Equal(ARRAY8Ptr array1, ARRAY8Ptr array2);
156
157extern void XdmcpGenerateKey (XdmAuthKeyPtr key);
158extern void XdmcpIncrementKey (XdmAuthKeyPtr key);
159extern void XdmcpDecrementKey (XdmAuthKeyPtr key);
160#ifdef HASXDMAUTH
161extern void XdmcpWrap(unsigned char *input, unsigned char *wrapper, unsigned char *output, int bytes);
162extern void XdmcpUnwrap(unsigned char *input, unsigned char *wrapper, unsigned char *output, int bytes);
163#endif
164
165#ifndef TRUE
166#define TRUE 1
167#define FALSE 0
168#endif
169
170#if !defined(Xalloc) && !defined(xalloc) && !defined(Xrealloc)
171extern void *Xalloc (unsigned long amount);
172extern void *Xrealloc (void *old, unsigned long amount);
173extern void Xfree(void *old);
174#endif
175
176extern int XdmcpCompareKeys (XdmAuthKeyPtr a, XdmAuthKeyPtr b);
177
178extern int XdmcpAllocARRAY16 (ARRAY16Ptr array, int length);
179extern int XdmcpAllocARRAY32 (ARRAY32Ptr array, int length);
180extern int XdmcpAllocARRAY8 (ARRAY8Ptr array, int length);
181extern int XdmcpAllocARRAYofARRAY8 (ARRAYofARRAY8Ptr array, int length);
182
183extern int XdmcpReallocARRAY16 (ARRAY16Ptr array, int length);
184extern int XdmcpReallocARRAY32 (ARRAY32Ptr array, int length);
185extern int XdmcpReallocARRAY8 (ARRAY8Ptr array, int length);
186extern int XdmcpReallocARRAYofARRAY8 (ARRAYofARRAY8Ptr array, int length);
187
188_XFUNCPROTOEND
189
190#endif /* _XDMCP_H_ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette