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