X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fgssd%2Fgssd.h;h=b1b57938c3490802ea659a5e54ca72218a806222;hp=ec91e8980117391a7aa3b19b664212355cefa544;hb=706bfd7c94d48659a1411fdef2a3a61d4719f1aa;hpb=6e18539119224c930760ab801c24efe92b809a1e diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h index ec91e89..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,10 +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; @@ -78,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);