Chuck Lever
2015-11-02 18:37:49 UTC
svcauth_gss_get_principal() comes from the legacy U-M svc GSS
API, but is not documented, and does not appear in TI-RPC
headers. fedfs-utils 0.10 adopted this API to provide RPCGSS
support for the FedFS ADMIN protocol.
As a consequence of using an undocumented API, fedfs-utils
0.10 is exposed to library changes to this API. Add some
compatibility measures.
The fedfsd in fedfs-utils 0.11 replaces this call with a valid
contract API that does not expose SVCAUTH. Just a rebuild-relink
should take care of it there.
Signed-off-by: Chuck Lever <***@oracle.com>
---
Proposed for fedfs-utils 0.10.5 to accommodate recent libtirpc
changes. Review period ends Thursday, November 5 at 23:59 ET.
src/fedfsd/gss.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/fedfsd/gss.c b/src/fedfsd/gss.c
index c63f42f..f762466 100644
--- a/src/fedfsd/gss.c
+++ b/src/fedfsd/gss.c
@@ -175,6 +175,10 @@ fedfsd_get_gss_cred(struct svc_req *rqstp)
{
SVCAUTH *auth;
+#if defined(SVC_XP_AUTH)
+ auth = &SVC_XP_AUTH(rqstp->rq_xprt);
+#else
auth = rqstp->rq_xprt->xp_auth;
+#endif
return svcauth_gss_get_principal(auth);
}
API, but is not documented, and does not appear in TI-RPC
headers. fedfs-utils 0.10 adopted this API to provide RPCGSS
support for the FedFS ADMIN protocol.
As a consequence of using an undocumented API, fedfs-utils
0.10 is exposed to library changes to this API. Add some
compatibility measures.
The fedfsd in fedfs-utils 0.11 replaces this call with a valid
contract API that does not expose SVCAUTH. Just a rebuild-relink
should take care of it there.
Signed-off-by: Chuck Lever <***@oracle.com>
---
Proposed for fedfs-utils 0.10.5 to accommodate recent libtirpc
changes. Review period ends Thursday, November 5 at 23:59 ET.
src/fedfsd/gss.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/fedfsd/gss.c b/src/fedfsd/gss.c
index c63f42f..f762466 100644
--- a/src/fedfsd/gss.c
+++ b/src/fedfsd/gss.c
@@ -175,6 +175,10 @@ fedfsd_get_gss_cred(struct svc_req *rqstp)
{
SVCAUTH *auth;
+#if defined(SVC_XP_AUTH)
+ auth = &SVC_XP_AUTH(rqstp->rq_xprt);
+#else
auth = rqstp->rq_xprt->xp_auth;
+#endif
return svcauth_gss_get_principal(auth);
}