X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fgssd%2Fgssd.h;h=86472a1239355d18f2ad2acd6583907a7c6b294a;hp=d60a499945266a4eb4d53caff5978712537dde9c;hb=fb06ed9fc1fa11a95544fb2d89adb6c51ef5d946;hpb=a6037e23a8c9d649bf5946ac9d23114f9097b997 diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h index d60a499..86472a1 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 @@ -45,22 +45,28 @@ #define DNOTIFY_SIGNAL (SIGRTMIN + 3) #define GSSD_DEFAULT_CRED_DIR "/tmp" -#define GSSD_DEFAULT_CRED_PREFIX "krb5cc_" +#define GSSD_USER_CRED_DIR "/run/user/%U" +#define GSSD_DEFAULT_CRED_PREFIX "krb5cc" #define GSSD_DEFAULT_MACHINE_CRED_SUFFIX "machine" #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 */ -enum {AUTHTYPE_KRB5, AUTHTYPE_SPKM3, AUTHTYPE_LIPKEY}; +enum {AUTHTYPE_KRB5, 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; @@ -75,15 +81,25 @@ struct clnt_info { char *protocol; int krb5_fd; int krb5_poll_index; - int spkm3_fd; - int spkm3_poll_index; + int krb5_close_me; + int gssd_fd; + int gssd_poll_index; + int gssd_close_me; + 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);