deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/***********************************************************
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1987, 1998 The Open Group
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncthe above copyright notice appear in all copies and that both that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynccopyright notice and this permission notice appear in supporting
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncThe above copyright notice and this permission notice shall be included in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncall copies or substantial portions of the Software.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncin this Software without prior written authorization from The Open Group.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync All Rights Reserved
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission to use, copy, modify, and distribute this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation for any purpose and without fee is hereby granted,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncprovided that the above copyright notice appear in all copies and that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncboth that copyright notice and this permission notice appear in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncsupporting documentation, and that the name of Digital not be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncused in advertising or publicity pertaining to distribution of the
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncsoftware without specific, written prior permission.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncSOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync******************************************************************/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef HAVE_DIX_CONFIG_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <dix-config.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef _OSDEP_H_
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define _OSDEP_H_ 1
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define BOTIMEOUT 200 /* in milliseconds */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define BUFSIZE 4096
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define BUFWATERMARK 8192
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef MAXBUFSIZE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define MAXBUFSIZE (1 << 22)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <X11/Xdmcp.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef sgi /* SGI defines OPEN_MAX in a useless way */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef X_NOT_POSIX
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef _POSIX_SOURCE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <limits.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define _POSIX_SOURCE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <limits.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#undef _POSIX_SOURCE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else /* X_NOT_POSIX */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef WIN32
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define _POSIX_
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <limits.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#undef _POSIX_
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* X_NOT_POSIX */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef __QNX__
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define NOFILES_MAX 256
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef OPEN_MAX
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef SVR4
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define OPEN_MAX 256
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <sys/param.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef OPEN_MAX
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if defined(NOFILE) && !defined(NOFILES_MAX)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define OPEN_MAX NOFILE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if !defined(__UNIXOS2__) && !defined(WIN32)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define OPEN_MAX NOFILES_MAX
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define OPEN_MAX 256
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <X11/Xpoll.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * MAXSOCKS is used only for initialising MaxClients when no other method
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * like sysconf(_SC_OPEN_MAX) is not supported.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if OPEN_MAX <= 256
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define MAXSOCKS (OPEN_MAX - 1)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define MAXSOCKS 256
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* MAXSELECT is the number of fds that select() can handle */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define MAXSELECT (sizeof(fd_set) * NBBY)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef HAS_GETDTABLESIZE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if !defined(hpux) && !defined(SVR4) && !defined(SYSV)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define HAS_GETDTABLESIZE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <stddef.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (*ValidatorFunc)(ARRAY8Ptr Auth, ARRAY8Ptr Data, int packet_type);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (*GeneratorFunc)(ARRAY8Ptr Auth, ARRAY8Ptr Data, int packet_type);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (*AddAuthorFunc)(unsigned name_length, char *name, unsigned data_length, char *data);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _connectionInput {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync struct _connectionInput *next;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *buffer; /* contains current client input */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *bufptr; /* pointer to current start of data */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bufcnt; /* count of bytes in buffer */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int lenLastReq;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int size;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} ConnectionInput, *ConnectionInputPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _connectionOutput {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync struct _connectionOutput *next;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int size;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char *buf;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int count;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} ConnectionOutput, *ConnectionOutputPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef K5AUTH
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _k5_state {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int stageno; /* current stage of auth protocol */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer srvcreds; /* server credentials */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer srvname; /* server principal name */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer ktname; /* key table: principal-key pairs */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer skey; /* session key */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} k5_state;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncstruct _osComm;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define AuthInitArgs void
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*AuthInitFunc) (AuthInitArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define AuthAddCArgs unsigned short data_length, char *data, XID id
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (*AuthAddCFunc) (AuthAddCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define AuthCheckArgs unsigned short data_length, char *data, ClientPtr client, char **reason
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef XID (*AuthCheckFunc) (AuthCheckArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define AuthFromIDArgs XID id, unsigned short *data_lenp, char **datap
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (*AuthFromIDFunc) (AuthFromIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define AuthGenCArgs unsigned data_length, char *data, XID id, unsigned *data_length_return, char **data_return
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef XID (*AuthGenCFunc) (AuthGenCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define AuthRemCArgs unsigned short data_length, char *data
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (*AuthRemCFunc) (AuthRemCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define AuthRstCArgs void
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (*AuthRstCFunc) (AuthRstCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define AuthToIDArgs unsigned short data_length, char *data
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef XID (*AuthToIDFunc) (AuthToIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*OsCloseFunc)(ClientPtr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (*OsFlushFunc)(ClientPtr who, struct _osComm * oc, char* extraBuf, int extraCount);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _osComm {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int fd;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ConnectionInputPtr input;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ConnectionOutputPtr output;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XID auth_id; /* authorization id */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef K5AUTH
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync k5_state authstate; /* state of setup auth conversation */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD32 conn_time; /* timestamp if not established, else 0 */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync struct _XtransConnInfo *trans_conn; /* transport connection object */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} OsCommRec, *OsCommPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int FlushClient(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /*who*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync OsCommPtr /*oc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char* /*extraBuf*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*extraCount*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void FreeOsBuffers(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync OsCommPtr /*oc*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "dix.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern ConnectionInputPtr AllocateInputBuffer(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern ConnectionOutputPtr AllocateOutputBuffer(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set AllSockets;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set AllClients;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set LastSelectMask;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set WellKnownConnections;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set EnabledDevices;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set ClientsWithInput;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set ClientsWriteBlocked;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set OutputPending;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern fd_set IgnoredClientsWithInput;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef WIN32
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int *ConnectionTranslation;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int GetConnectionTranslation(int conn);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void SetConnectionTranslation(int conn, int client);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void ClearConnectionTranslation();
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool NewOutputPending;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool AnyClientsWriteBlocked;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool CriticalOutputPending;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int timesThisConnection;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern ConnectionInputPtr FreeInputs;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern ConnectionOutputPtr FreeOutputs;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern OsCommPtr AvailableInput;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern WorkQueuePtr workQueue;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* added by raphael */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef WIN32
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef long int fd_mask;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define ffs mffs
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int mffs(fd_mask);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* in auth.c */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void GenerateRandomData (int len, char *buf);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* in mitauth.c */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID MitCheckCookie (AuthCheckArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID MitGenerateCookie (AuthGenCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID MitToID (AuthToIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int MitAddCookie (AuthAddCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int MitFromID (AuthFromIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int MitRemoveCookie (AuthRemCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int MitResetCookie (AuthRstCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* in xdmauth.c */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef HASXDMAUTH
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID XdmCheckCookie (AuthCheckArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID XdmToID (AuthToIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XdmAddCookie (AuthAddCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XdmFromID (AuthFromIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XdmRemoveCookie (AuthRemCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XdmResetCookie (AuthRstCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* in rpcauth.c */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef SECURE_RPC
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void SecureRPCInit (AuthInitArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID SecureRPCCheck (AuthCheckArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID SecureRPCToID (AuthToIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SecureRPCAdd (AuthAddCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SecureRPCFromID (AuthFromIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SecureRPCRemove (AuthRemCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SecureRPCReset (AuthRstCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* in k5auth.c */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef K5AUTH
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID K5Check (AuthCheckArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID K5ToID (AuthToIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int K5Add (AuthAddCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int K5FromID (AuthFromIDArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int K5Remove (AuthRemCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int K5Reset (AuthRstCArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* in secauth.c */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern XID AuthSecurityCheck (AuthCheckArgs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* in xdmcp.c */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpUseMsg (void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XdmcpOptions(int argc, char **argv, int i);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpSetAuthentication (ARRAY8Ptr name);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpRegisterConnection (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int type,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *address,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int addrlen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpRegisterAuthorizations (void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpRegisterAuthorization (char *name, int namelen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpRegisterDisplayClass (char *name, int length);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpInit (void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpReset (void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpOpenDisplay(int sock);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpCloseDisplay(int sock);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpRegisterAuthentication (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *name,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int namelen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *data,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int datalen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ValidatorFunc Validator,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GeneratorFunc Generator,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync AddAuthorFunc AddAuth);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XdmcpCheckAuthentication (ARRAY8Ptr Name, ARRAY8Ptr Data, int packet_type);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int XdmcpAddAuthorization (ARRAY8Ptr name, ARRAY8Ptr data);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncstruct sockaddr_in;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmcpRegisterBroadcastAddress (struct sockaddr_in *addr);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef HASXDMAUTH
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void XdmAuthenticationInit (char *cookie, int cookie_length);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* _OSDEP_H_ */