Xdmcp.h
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:7k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  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. #ifndef _XDMCP_H_
  19. #define _XDMCP_H_
  20. #include <X11/Xmd.h>
  21. #include <X11/Xfuncproto.h>
  22. _XFUNCPROTOBEGIN
  23. #define XDM_PROTOCOL_VERSION 1
  24. #define XDM_UDP_PORT 177
  25. /* IANA has assigned FF0X:0:0:0:0:0:0:12B as the permanently assigned 
  26.  * multicast addresses for XDMCP, where X in the prefix may be replaced
  27.  * by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local,
  28.  * 5 for Site-Local, and so on.  We set the default here to the Link-Local
  29.  * version to most closely match the old IPv4 subnet broadcast behavior.
  30.  * Both xdm and X -query allow specifying a different address if a different
  31.  * scope is defined.
  32.  */
  33. #define XDM_DEFAULT_MCAST_ADDR6 "ff02:0:0:0:0:0:0:12b"
  34. #define XDM_MAX_MSGLEN 8192
  35. #define XDM_MIN_RTX 2
  36. #define XDM_MAX_RTX 32
  37. #define XDM_RTX_LIMIT 7
  38. #define XDM_KA_RTX_LIMIT 4
  39. #define XDM_DEF_DORMANCY (3 * 60) /* 3 minutes */
  40. #define XDM_MAX_DORMANCY (24 * 60 * 60) /* 24 hours */
  41. typedef enum {
  42.     BROADCAST_QUERY = 1, QUERY, INDIRECT_QUERY, FORWARD_QUERY,
  43.     WILLING, UNWILLING, REQUEST, ACCEPT, DECLINE, MANAGE, REFUSE,
  44.     FAILED, KEEPALIVE, ALIVE
  45. } xdmOpCode;
  46. typedef enum {
  47.     XDM_QUERY, XDM_BROADCAST, XDM_INDIRECT, XDM_COLLECT_QUERY,
  48.     XDM_COLLECT_BROADCAST_QUERY, XDM_COLLECT_INDIRECT_QUERY,
  49.     XDM_START_CONNECTION, XDM_AWAIT_REQUEST_RESPONSE,
  50.     XDM_AWAIT_MANAGE_RESPONSE, XDM_MANAGE, XDM_RUN_SESSION, XDM_OFF,
  51.     XDM_AWAIT_USER_INPUT, XDM_KEEPALIVE, XDM_AWAIT_ALIVE_RESPONSE,
  52. #if defined(IPv6) && defined(AF_INET6)
  53.     XDM_MULTICAST, XDM_COLLECT_MULTICAST_QUERY,
  54. #endif
  55.     XDM_KEEP_ME_LAST
  56. } xdmcp_states;
  57. #ifdef NOTDEF
  58. /* table of hosts */
  59. #define XDM_MAX_STR_LEN 21
  60. #define XDM_MAX_HOSTS 20
  61. struct xdm_host_table {
  62.   struct sockaddr_in sockaddr;
  63.   char name[XDM_MAX_STR_LEN];
  64.   char status[XDM_MAX_STR_LEN];
  65. };
  66. #endif /* NOTDEF */
  67. typedef CARD8 *CARD8Ptr;
  68. typedef CARD16 *CARD16Ptr;
  69. typedef CARD32 *CARD32Ptr;
  70. typedef struct _ARRAY8 {
  71.     CARD16 length;
  72.     CARD8Ptr data;
  73. } ARRAY8, *ARRAY8Ptr;
  74. typedef struct _ARRAY16 {
  75.     CARD8 length;
  76.     CARD16Ptr data;
  77. } ARRAY16, *ARRAY16Ptr;
  78. typedef struct _ARRAY32 {
  79.     CARD8 length;
  80.     CARD32Ptr data;
  81. } ARRAY32, *ARRAY32Ptr;
  82. typedef struct _ARRAYofARRAY8 {
  83.     CARD8 length;
  84.     ARRAY8Ptr data;
  85. } ARRAYofARRAY8, *ARRAYofARRAY8Ptr;
  86. typedef struct _XdmcpHeader {
  87.     CARD16  version, opcode, length;
  88. } XdmcpHeader, *XdmcpHeaderPtr;
  89. typedef struct _XdmcpBuffer {
  90.     BYTE    *data;
  91.     int     size; /* size of buffer pointed by to data */
  92.     int     pointer; /* current index into data */
  93.     int     count; /* bytes read from network into data */
  94. } XdmcpBuffer, *XdmcpBufferPtr;
  95. typedef struct _XdmAuthKey {
  96.     BYTE    data[8];
  97. } XdmAuthKeyRec, *XdmAuthKeyPtr;
  98. /* implementation-independent network address structure.
  99.    Equiv to sockaddr* for sockets and netbuf* for STREAMS. */
  100. typedef char *XdmcpNetaddr;
  101. extern int XdmcpWriteARRAY16(XdmcpBufferPtr buffer, ARRAY16Ptr array);
  102. extern int XdmcpWriteARRAY32(XdmcpBufferPtr buffer, ARRAY32Ptr array);
  103. extern int XdmcpWriteARRAY8(XdmcpBufferPtr buffer, ARRAY8Ptr array);
  104. extern int XdmcpWriteARRAYofARRAY8(XdmcpBufferPtr buffer, ARRAYofARRAY8Ptr array);
  105. extern int XdmcpWriteCARD16(XdmcpBufferPtr buffer, unsigned value);
  106. extern int XdmcpWriteCARD32(XdmcpBufferPtr buffer, unsigned value);
  107. extern int XdmcpWriteCARD8(XdmcpBufferPtr buffer, unsigned value);
  108. extern int XdmcpWriteHeader(XdmcpBufferPtr  buffer, XdmcpHeaderPtr  header);
  109. extern int XdmcpFlush(int fd, XdmcpBufferPtr buffer, XdmcpNetaddr to, int tolen);
  110. extern int XdmcpReadARRAY16(XdmcpBufferPtr buffer, ARRAY16Ptr array);
  111. extern int XdmcpReadARRAY32(XdmcpBufferPtr buffer, ARRAY32Ptr array);
  112. extern int XdmcpReadARRAY8(XdmcpBufferPtr buffer, ARRAY8Ptr array);
  113. extern int XdmcpReadARRAYofARRAY8(XdmcpBufferPtr buffer, ARRAYofARRAY8Ptr array);
  114. extern int XdmcpReadCARD16(XdmcpBufferPtr buffer, CARD16Ptr valuep);
  115. extern int XdmcpReadCARD32(XdmcpBufferPtr buffer, CARD32Ptr valuep);
  116. extern int XdmcpReadCARD8(XdmcpBufferPtr buffer, CARD8Ptr valuep);
  117. extern int XdmcpReadHeader(XdmcpBufferPtr buffer, XdmcpHeaderPtr header);
  118. extern int XdmcpFill(int fd, XdmcpBufferPtr buffer, XdmcpNetaddr from, int *fromlen);
  119. extern int XdmcpReadRemaining(XdmcpBufferPtr buffer);
  120. extern void XdmcpDisposeARRAY8(ARRAY8Ptr array);
  121. extern void XdmcpDisposeARRAY16(ARRAY16Ptr array);
  122. extern void XdmcpDisposeARRAY32(ARRAY32Ptr array);
  123. extern void XdmcpDisposeARRAYofARRAY8(ARRAYofARRAY8Ptr array);
  124. extern int XdmcpCopyARRAY8(ARRAY8Ptr src, ARRAY8Ptr dst);
  125. extern int XdmcpARRAY8Equal(ARRAY8Ptr array1, ARRAY8Ptr array2);
  126. extern void XdmcpGenerateKey (XdmAuthKeyPtr key);
  127. extern void XdmcpIncrementKey (XdmAuthKeyPtr key);
  128. extern void XdmcpDecrementKey (XdmAuthKeyPtr key);
  129. #ifdef HASXDMAUTH
  130. extern void XdmcpWrap(unsigned char *input, unsigned char *wrapper, unsigned char *output, int bytes);
  131. extern void XdmcpUnwrap(unsigned char *input, unsigned char *wrapper, unsigned char *output, int bytes);
  132. #endif
  133. #ifndef TRUE
  134. #define TRUE 1
  135. #define FALSE 0
  136. #endif
  137. #if !defined(Xalloc) && !defined(xalloc) && !defined(Xrealloc)
  138. extern void *Xalloc (unsigned long amount);
  139. extern void *Xrealloc (void *old, unsigned long amount);
  140. extern void Xfree(void *old);
  141. #endif
  142. extern int XdmcpCompareKeys (XdmAuthKeyPtr a, XdmAuthKeyPtr b);
  143. extern int XdmcpAllocARRAY16 (ARRAY16Ptr array, int length);
  144. extern int XdmcpAllocARRAY32 (ARRAY32Ptr array, int length);
  145. extern int XdmcpAllocARRAY8 (ARRAY8Ptr array, int length);
  146. extern int XdmcpAllocARRAYofARRAY8 (ARRAYofARRAY8Ptr array, int length);
  147. extern int XdmcpReallocARRAY16 (ARRAY16Ptr array, int length);
  148. extern int XdmcpReallocARRAY32 (ARRAY32Ptr array, int length);
  149. extern int XdmcpReallocARRAY8 (ARRAY8Ptr array, int length);
  150. extern int XdmcpReallocARRAYofARRAY8 (ARRAYofARRAY8Ptr array, int length);
  151. _XFUNCPROTOEND
  152. #endif /* _XDMCP_H_ */