summaryrefslogtreecommitdiff
path: root/utils/gssd/gssd.h
diff options
context:
space:
mode:
authorScott Mayhew <smayhew@redhat.com>2021-05-29 13:43:52 -0400
committerSteve Dickson <steved@redhat.com>2021-06-10 11:12:45 -0400
commit30a72d9c056c8f96640a6b9cda4f458311d4424e (patch)
tree6c2b442e81f4e7272b5b39819f84879639a64258 /utils/gssd/gssd.h
parentbe7365239abf8556773b063730621967b9971708 (diff)
downloadnfs-utils-30a72d9c056c8f96640a6b9cda4f458311d4424e.tar.gz
gssd: deal with failed thread creation
If we fail to create a thread to handle an upcall, we still need to do a downcall to tell the kernel about the failure, otherwise the process that is trying to establish gss credentials will hang. This patch shifts the thread creation down a level in the call chain so now the main thread does a little more work up front (reading & parsing the data from the pipefs file) so it has the info it needs to be able to do the error downcall. Signed-off-by: Scott Mayhew <smayhew@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/gssd/gssd.h')
-rw-r--r--utils/gssd/gssd.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h
index 1e8c58d..6d53647 100644
--- a/utils/gssd/gssd.h
+++ b/utils/gssd/gssd.h
@@ -84,14 +84,17 @@ struct clnt_info {
struct clnt_upcall_info {
struct clnt_info *clp;
- char lbuf[RPC_CHAN_BUF_SIZE];
- int lbuflen;
uid_t uid;
+ int fd;
+ char *srchost;
+ char *target;
+ char *service;
};
-void handle_krb5_upcall(struct clnt_upcall_info *clp);
-void handle_gssd_upcall(struct clnt_upcall_info *clp);
+void handle_krb5_upcall(struct clnt_info *clp);
+void handle_gssd_upcall(struct clnt_info *clp);
void free_upcall_info(struct clnt_upcall_info *info);
+void gssd_free_client(struct clnt_info *clp);
#endif /* _RPC_GSSD_H_ */