111 lines
3.8 KiB
C
111 lines
3.8 KiB
C
#ifndef _XSERVER_OS_AUTH_H
|
|
#define _XSERVER_OS_AUTH_H
|
|
|
|
#include <X11/X.h>
|
|
|
|
#include "dix.h"
|
|
|
|
#define AuthInitArgs void
|
|
typedef void (*AuthInitFunc) (AuthInitArgs);
|
|
|
|
#define AuthAddCArgs unsigned short data_length, const char *data, XID id
|
|
typedef int (*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, XID id, 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);
|
|
|
|
#endif /* _XSERVER_OS_AUTH_H */
|