X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fgssd%2Fgssd.h;h=b1b57938c3490802ea659a5e54ca72218a806222;hp=3622b48c9557e42ac3272ea15c81e685e29865d3;hb=6cc96cada639a823961d5d8a136cbcdc8b8952b8;hpb=1a5b79866092e5061f3a6d2cd1a644f47e65ba3a diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h index 3622b48..b1b5793 100644 --- a/utils/gssd/gssd.h +++ b/utils/gssd/gssd.h @@ -36,7 +36,7 @@ #include #define MAX_FILE_NAMELEN 32 -#define FD_ALLOC_BLOCK 32 +#define FD_ALLOC_BLOCK 256 #ifndef GSSD_PIPEFS_DIR #define GSSD_PIPEFS_DIR "/var/lib/nfs/rpc_pipefs" #endif @@ -50,6 +50,7 @@ #define GSSD_DEFAULT_KEYTAB_FILE "/etc/krb5.keytab" #define GSSD_SERVICE_NAME "nfs" #define GSSD_SERVICE_NAME_LEN 3 +#define GSSD_MAX_CCACHE_SEARCH 16 /* * The gss mechanisms that we can handle @@ -58,11 +59,13 @@ enum {AUTHTYPE_KRB5, AUTHTYPE_SPKM3, AUTHTYPE_LIPKEY}; -extern char pipefsdir[PATH_MAX]; +extern char pipefs_dir[PATH_MAX]; extern char keytabfile[PATH_MAX]; -extern char ccachedir[PATH_MAX]; +extern char *ccachesearch[]; extern int use_memcache; extern int root_uses_machine_creds; +extern unsigned int context_timeout; +extern char *preferred_realm; TAILQ_HEAD(clnt_list_head, clnt_info) clnt_list; @@ -79,13 +82,24 @@ struct clnt_info { int krb5_poll_index; int spkm3_fd; int spkm3_poll_index; + int gssd_fd; + int gssd_poll_index; + struct sockaddr_storage addr; +}; + +TAILQ_HEAD(topdirs_list_head, topdirs_info) topdirs_list; + +struct topdirs_info { + TAILQ_ENTRY(topdirs_info) list; + char *dirname; + int fd; }; void init_client_list(void); int update_client_list(void); void handle_krb5_upcall(struct clnt_info *clp); void handle_spkm3_upcall(struct clnt_info *clp); -int gssd_acquire_cred(char *server_name); +void handle_gssd_upcall(struct clnt_info *clp); void gssd_run(void);