120 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
#ifndef _XSERVER_OS_AUTH_H
 | 
						|
#define _XSERVER_OS_AUTH_H
 | 
						|
 | 
						|
#include <X11/X.h>
 | 
						|
 | 
						|
#include "dix.h"
 | 
						|
 | 
						|
#define XAUTH_PROTO_MIT "MIT-MAGIC-COOKIE-1"
 | 
						|
#define XAUTH_PROTO_XDM "XDM-AUTHORIZATION-1"
 | 
						|
 | 
						|
#define AuthInitArgs void
 | 
						|
typedef void (*AuthInitFunc) (AuthInitArgs);
 | 
						|
 | 
						|
#define AuthAddCArgs unsigned short data_length, const char *data
 | 
						|
typedef XID (*AuthAddCFunc) (AuthAddCArgs);
 | 
						|
 | 
						|
#define AuthCheckArgs unsigned short data_length, const char *data, ClientPtr client, const char **reason
 | 
						|
typedef XID (*AuthCheckFunc) (AuthCheckArgs);
 | 
						|
 | 
						|
#define AuthFromIDArgs XID id, unsigned short *data_lenp, char **datap
 | 
						|
typedef int (*AuthFromIDFunc) (AuthFromIDArgs);
 | 
						|
 | 
						|
#define AuthGenCArgs unsigned data_length, const char *data, unsigned *data_length_return, char **data_return
 | 
						|
typedef XID (*AuthGenCFunc) (AuthGenCArgs);
 | 
						|
 | 
						|
#define AuthRemCArgs unsigned short data_length, const char *data
 | 
						|
typedef int (*AuthRemCFunc) (AuthRemCArgs);
 | 
						|
 | 
						|
#define AuthRstCArgs void
 | 
						|
typedef int (*AuthRstCFunc) (AuthRstCArgs);
 | 
						|
 | 
						|
int set_font_authorizations(char **authorizations,
 | 
						|
                            int *authlen,
 | 
						|
                            void *client);
 | 
						|
 | 
						|
#define LCC_UID_SET     (1 << 0)
 | 
						|
#define LCC_GID_SET     (1 << 1)
 | 
						|
#define LCC_PID_SET     (1 << 2)
 | 
						|
#define LCC_ZID_SET     (1 << 3)
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    int fieldsSet;              /* Bit mask of fields set */
 | 
						|
    int euid;                   /* Effective uid */
 | 
						|
    int egid;                   /* Primary effective group id */
 | 
						|
    int nSuppGids;              /* Number of supplementary group ids */
 | 
						|
    int *pSuppGids;             /* Array of supplementary group ids */
 | 
						|
    int pid;                    /* Process id */
 | 
						|
    int zoneid;                 /* Only set on Solaris 10 & later */
 | 
						|
} LocalClientCredRec;
 | 
						|
 | 
						|
int GetLocalClientCreds(ClientPtr, LocalClientCredRec **);
 | 
						|
void FreeLocalClientCreds(LocalClientCredRec *);
 | 
						|
 | 
						|
void EnableLocalAccess(void);
 | 
						|
void DisableLocalAccess(void);
 | 
						|
 | 
						|
void LocalAccessScopeUser(void);
 | 
						|
 | 
						|
void InitAuthorization(const char *filename);
 | 
						|
 | 
						|
int AuthorizationFromID(XID id,
 | 
						|
                        unsigned short *name_lenp,
 | 
						|
                        const char **namep,
 | 
						|
                        unsigned short *data_lenp, char **datap);
 | 
						|
 | 
						|
XID CheckAuthorization(unsigned int namelength,
 | 
						|
                       const char *name,
 | 
						|
                       unsigned int datalength,
 | 
						|
                       const char *data,
 | 
						|
                       ClientPtr client,
 | 
						|
                       const char **reason);
 | 
						|
 | 
						|
void ResetAuthorization(void);
 | 
						|
 | 
						|
int RemoveAuthorization(unsigned short name_length,
 | 
						|
                        const char *name,
 | 
						|
                        unsigned short data_length, const char *data);
 | 
						|
 | 
						|
int AddAuthorization(unsigned int name_length,
 | 
						|
                     const char *name,
 | 
						|
                     unsigned int data_length,
 | 
						|
                     char *data);
 | 
						|
 | 
						|
XID GenerateAuthorization(unsigned int name_length,
 | 
						|
                          const char *name,
 | 
						|
                          unsigned int data_length,
 | 
						|
                          const char *data,
 | 
						|
                          unsigned int *data_length_return,
 | 
						|
                          char **data_return);
 | 
						|
 | 
						|
void RegisterAuthorizations(void);
 | 
						|
 | 
						|
void CheckUserAuthorization(void);
 | 
						|
 | 
						|
typedef struct sockaddr *sockaddrPtr;
 | 
						|
 | 
						|
int AddHost(ClientPtr client, int family, unsigned length, const void *pAddr);
 | 
						|
Bool ForEachHostInFamily(int family,
 | 
						|
                         Bool (*func)(unsigned char *addr, short len, void *closure),
 | 
						|
                         void *closure);
 | 
						|
int RemoveHost(ClientPtr client, int family, unsigned length, void *pAddr);
 | 
						|
int GetHosts(void **data, int *pnHosts, int *pLen, BOOL *pEnabled);
 | 
						|
int InvalidHost(sockaddrPtr saddr, int len, ClientPtr client);
 | 
						|
void AddLocalHosts(void);
 | 
						|
void ResetHosts(const char *display);
 | 
						|
 | 
						|
/* register local hosts entries for outself, based on listening fd */
 | 
						|
void DefineSelf(int fd);
 | 
						|
 | 
						|
/* check whether given addr belongs to ourself */
 | 
						|
void AugmentSelf(void *from, int len);
 | 
						|
 | 
						|
int ChangeAccessControl(ClientPtr client, int fEnabled);
 | 
						|
 | 
						|
void AccessUsingXdmcp(void);
 | 
						|
 | 
						|
extern Bool defeatAccessControl;
 | 
						|
 | 
						|
#endif /* _XSERVER_OS_AUTH_H */
 |