b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/***********************************************************
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCopyright 1987, 1998 The Open Group
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncthe above copyright notice appear in all copies and that both that
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynccopyright notice and this permission notice appear in supporting
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncdocumentation.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncThe above copyright notice and this permission notice shall be included in
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncall copies or substantial portions of the Software.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncin this Software without prior written authorization from The Open Group.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync All Rights Reserved
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPermission to use, copy, modify, and distribute this software and its
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncdocumentation for any purpose and without fee is hereby granted,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncprovided that the above copyright notice appear in all copies and that
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncboth that copyright notice and this permission notice appear in
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncsupporting documentation, and that the name of Digital not be
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncused in advertising or publicity pertaining to distribution of the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncsoftware without specific, written prior permission.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncSOFTWARE.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync******************************************************************/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef HAVE_DIX_CONFIG_H
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <dix-config.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef _OSDEP_H_
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define _OSDEP_H_ 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define BOTIMEOUT 200 /* in milliseconds */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define BUFSIZE 4096
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define BUFWATERMARK 8192
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#if defined(XDMCP) || defined(HASXDMAUTH)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <X11/Xdmcp.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef _POSIX_SOURCE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <limits.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#else
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define _POSIX_SOURCE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <limits.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#undef _POSIX_SOURCE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef OPEN_MAX
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef SVR4
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define OPEN_MAX 256
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#else
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <sys/param.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef OPEN_MAX
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#if defined(NOFILE) && !defined(NOFILES_MAX)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define OPEN_MAX NOFILE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#else
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#if !defined(WIN32)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define OPEN_MAX NOFILES_MAX
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#else
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define OPEN_MAX 256
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <X11/Xpoll.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * MAXSOCKS is used only for initialising MaxClients when no other method
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * like sysconf(_SC_OPEN_MAX) is not supported.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#if OPEN_MAX <= 256
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define MAXSOCKS (OPEN_MAX - 1)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#else
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define MAXSOCKS 256
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/* MAXSELECT is the number of fds that select() can handle */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define MAXSELECT (sizeof(fd_set) * NBBY)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef HAS_GETDTABLESIZE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#if !defined(SVR4) && !defined(SYSV)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define HAS_GETDTABLESIZE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <stddef.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#if defined(XDMCP) || defined(HASXDMAUTH)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef Bool (*ValidatorFunc)(ARRAY8Ptr Auth, ARRAY8Ptr Data, int packet_type);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef Bool (*GeneratorFunc)(ARRAY8Ptr Auth, ARRAY8Ptr Data, int packet_type);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef Bool (*AddAuthorFunc)(unsigned name_length, char *name, unsigned data_length, char *data);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _connectionInput {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _connectionInput *next;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *buffer; /* contains current client input */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *bufptr; /* pointer to current start of data */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int bufcnt; /* count of bytes in buffer */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int lenLastReq;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int size;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} ConnectionInput, *ConnectionInputPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _connectionOutput {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _connectionOutput *next;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int size;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned char *buf;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int count;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} ConnectionOutput, *ConnectionOutputPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncstruct _osComm;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define AuthInitArgs void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*AuthInitFunc) (AuthInitArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define AuthAddCArgs unsigned short data_length, char *data, XID id
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*AuthAddCFunc) (AuthAddCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define AuthCheckArgs unsigned short data_length, char *data, ClientPtr client, char **reason
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef XID (*AuthCheckFunc) (AuthCheckArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define AuthFromIDArgs XID id, unsigned short *data_lenp, char **datap
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*AuthFromIDFunc) (AuthFromIDArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define AuthGenCArgs unsigned data_length, char *data, XID id, unsigned *data_length_return, char **data_return
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef XID (*AuthGenCFunc) (AuthGenCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define AuthRemCArgs unsigned short data_length, char *data
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*AuthRemCFunc) (AuthRemCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define AuthRstCArgs void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*AuthRstCFunc) (AuthRstCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define AuthToIDArgs unsigned short data_length, char *data
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef XID (*AuthToIDFunc) (AuthToIDArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*OsCloseFunc)(ClientPtr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*OsFlushFunc)(ClientPtr who, struct _osComm * oc, char* extraBuf, int extraCount);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _osComm {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int fd;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ConnectionInputPtr input;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ConnectionOutputPtr output;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XID auth_id; /* authorization id */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 conn_time; /* timestamp if not established, else 0 */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _XtransConnInfo *trans_conn; /* transport connection object */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} OsCommRec, *OsCommPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int FlushClient(
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ClientPtr /*who*/,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync OsCommPtr /*oc*/,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const void * /*extraBuf*/,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int /*extraCount*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void FreeOsBuffers(
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync OsCommPtr /*oc*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "dix.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set AllSockets;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set AllClients;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set LastSelectMask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set WellKnownConnections;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set EnabledDevices;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set ClientsWithInput;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set ClientsWriteBlocked;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set OutputPending;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern fd_set IgnoredClientsWithInput;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef WIN32
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int *ConnectionTranslation;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#else
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int GetConnectionTranslation(int conn);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void SetConnectionTranslation(int conn, int client);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void ClearConnectionTranslation(void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern Bool NewOutputPending;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern Bool AnyClientsWriteBlocked;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern WorkQueuePtr workQueue;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/* in WaitFor.c */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef WIN32
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef long int fd_mask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define ffs mffs
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int mffs(fd_mask);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/* in auth.c */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void GenerateRandomData (int len, char *buf);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/* in mitauth.c */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern XID MitCheckCookie (AuthCheckArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern XID MitGenerateCookie (AuthGenCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern XID MitToID (AuthToIDArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int MitAddCookie (AuthAddCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int MitFromID (AuthFromIDArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int MitRemoveCookie (AuthRemCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int MitResetCookie (AuthRstCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/* in xdmauth.c */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef HASXDMAUTH
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern XID XdmCheckCookie (AuthCheckArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern XID XdmToID (AuthToIDArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int XdmAddCookie (AuthAddCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int XdmFromID (AuthFromIDArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int XdmRemoveCookie (AuthRemCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int XdmResetCookie (AuthRstCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/* in rpcauth.c */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef SECURE_RPC
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void SecureRPCInit (AuthInitArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern XID SecureRPCCheck (AuthCheckArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern XID SecureRPCToID (AuthToIDArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int SecureRPCAdd (AuthAddCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int SecureRPCFromID (AuthFromIDArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int SecureRPCRemove (AuthRemCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int SecureRPCReset (AuthRstCArgs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef XDMCP
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/* in xdmcp.c */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpUseMsg (void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int XdmcpOptions(int argc, char **argv, int i);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpRegisterConnection (
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int type,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *address,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int addrlen);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpRegisterAuthorizations (void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpRegisterAuthorization (char *name, int namelen);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpInit (void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpReset (void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpOpenDisplay(int sock);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpCloseDisplay(int sock);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpRegisterAuthentication (
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *name,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int namelen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *data,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int datalen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ValidatorFunc Validator,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GeneratorFunc Generator,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync AddAuthorFunc AddAuth);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncstruct sockaddr_in;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmcpRegisterBroadcastAddress (struct sockaddr_in *addr);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef HASXDMAUTH
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void XdmAuthenticationInit (char *cookie, int cookie_length);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif /* _OSDEP_H_ */