X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fgssd%2Fgssd.h;h=b1b57938c3490802ea659a5e54ca72218a806222;hp=6f14c34ad41b2dd80f98150eb6a0947c7f33d4a0;hb=706bfd7c94d48659a1411fdef2a3a61d4719f1aa;hpb=a04f8b5a3ea94b7a9d96d339b6ccde5f2e67a2d1 diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h index 6f14c34..b1b5793 100644 --- a/utils/gssd/gssd.h +++ b/utils/gssd/gssd.h @@ -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 @@ -59,11 +60,12 @@ enum {AUTHTYPE_KRB5, AUTHTYPE_SPKM3, AUTHTYPE_LIPKEY}; extern char pipefs_dir[PATH_MAX]; -extern char pipefs_nfsdir[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; @@ -80,14 +82,24 @@ struct clnt_info { int krb5_poll_index; int spkm3_fd; int spkm3_poll_index; - int port; + 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);