X-Git-Url: http://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fauth%2Fcellconfig.p.h;h=3e715270ee6319bc32116212b9208e9bb43e553d;hp=0f9b09cba0c10996c7cf745f8557c4d5503f4344;hb=d008089a79ef268bbca91d660a840f32cb416865;hpb=85f1ef34c2533da2f47757bb8d8a3aecb9083283 diff --git a/src/auth/cellconfig.p.h b/src/auth/cellconfig.p.h index 0f9b09c..3e71527 100644 --- a/src/auth/cellconfig.p.h +++ b/src/auth/cellconfig.p.h @@ -46,15 +46,6 @@ Creation date: * Return codes. */ #define AFSCONF_SUCCESS 0 /* worked */ -#if 0 -#define AFSCONF_FAILURE 1 /* mysterious failure */ -#define AFSCONF_NOTFOUND 2 /* could not find entry */ -#define AFSCONF_UNKNOWN 3 /* do not know that information */ -#define AFSCONF_NOCELL 4 /* line appears before a cell has been defined */ -#define AFSCONF_SYNTAX 5 /* syntax error */ -#define AFSCONF_NODB 6 /* a database file is missing */ -#define AFSCONF_FULL 7 /* no more entries */ -#endif /* * Complete server info for one cell. @@ -69,6 +60,8 @@ struct afsconf_cell { int timeout; /* Data timeout, if non-zero */ }; +#define AFSCONF_CELL_FLAG_DNS_QUERIED 1 + struct afsconf_cellalias { char aliasName[MAXCELLCHARS]; char realName[MAXCELLCHARS]; @@ -93,11 +86,8 @@ struct afsconf_dir { struct afsconf_aliasentry *alias_entries; /* cell aliases */ }; -struct afsconf_servPair { - char *name; - int port; -}; - +extern afs_int32 afsconf_FindService(const char *aname); +extern const char *afsconf_FindIANAName(const char *aname); extern struct afsconf_dir *afsconf_Open(register const char *adir); extern int afsconf_CellApply(struct afsconf_dir *adir, int (*aproc) (struct afsconf_cell * cell, @@ -134,12 +124,68 @@ extern int afsconf_AddKey(struct afsconf_dir *adir, afs_int32 akvno, char akey[8], afs_int32 overwrite); extern int afsconf_DeleteKey(struct afsconf_dir *adir, afs_int32 akvno); +/* authcon.c */ struct rx_securityClass; -extern afs_int32 afsconf_ClientAuth(struct afsconf_dir *adir, +extern afs_int32 afsconf_ServerAuth(void *arock, + struct rx_securityClass **, + afs_int32 *); +extern afs_int32 afsconf_ClientAuth(void *arock, struct rx_securityClass **astr, afs_int32 * aindex); +extern afs_int32 afsconf_ClientAuthSecure(void *arock, + struct rx_securityClass **astr, + afs_int32 * aindex); - +/*! + * A set of bit flags to control the selection of a security object + */ +#define AFSCONF_SECOPTS_NOAUTH 0x1 +#define AFSCONF_SECOPTS_LOCALAUTH 0x2 +#define AFSCONF_SECOPTS_ALWAYSENCRYPT 0x4 +#define AFSCONF_SECOPTS_FALLBACK_NULL 0x8 +typedef afs_uint32 afsconf_secflags; + +extern afs_int32 afsconf_ClientAuthToken(struct afsconf_cell *info, + afsconf_secflags flags, + struct rx_securityClass **sc, + afs_int32 *scIndex, + time_t *expires); + + +extern afs_int32 afsconf_PickClientSecObj(struct afsconf_dir *dir, + afsconf_secflags flags, + struct afsconf_cell *info, + char *cellName, + struct rx_securityClass **sc, + afs_int32 *scIndex, + time_t *expires); + +/* Flags for this function */ +#define AFSCONF_SEC_OBJS_RXKAD_CRYPT 1 +extern void afsconf_BuildServerSecurityObjects(struct afsconf_dir *, + afs_uint32, + struct rx_securityClass ***, + afs_int32 *); + +/* writeconfig.c */ +int afsconf_SetExtendedCellInfo(struct afsconf_dir *adir, const char *apath, + struct afsconf_cell *acellInfo, char clones[]); +int afsconf_SetCellInfo(struct afsconf_dir *adir, const char *apath, + struct afsconf_cell *acellInfo); + + +/* userok.c */ + +struct rx_call; +extern int afsconf_CheckAuth(void *arock, struct rx_call *acall); +extern int afsconf_GetNoAuthFlag(struct afsconf_dir *adir); +extern void afsconf_SetNoAuthFlag(struct afsconf_dir *adir, int aflag); +extern int afsconf_DeleteUser(struct afsconf_dir *adir, register char *auser); +extern int afsconf_GetNthUser(struct afsconf_dir *adir, afs_int32 an, + char *abuffer, afs_int32 abufferLen); +extern int afsconf_AddUser(struct afsconf_dir *adir, char *aname); +extern int afsconf_SuperUser(struct afsconf_dir *adir, struct rx_call *acall, + char *namep); /* some well-known ports and their names; new additions to table in cellconfig.c, too */ #define AFSCONF_FILESERVICE "afs"