Imported Upstream version 0.2.5
[platform/upstream/libtirpc.git] / tirpc / rpc / svc_auth.h
index 659e90c..723c989 100644 (file)
 /*
  * Interface to server-side authentication flavors.
  */
-typedef struct {
+typedef struct SVCAUTH {
        struct svc_auth_ops {
-               int   (*svc_ah_wrap)(void);
-               int   (*svc_ah_unwrap)(void);
-               int   (*svc_ah_destroy)(void);
+               int     (*svc_ah_wrap)(struct SVCAUTH *, XDR *, xdrproc_t,
+                                      caddr_t);
+               int     (*svc_ah_unwrap)(struct SVCAUTH *, XDR *, xdrproc_t,
+                                        caddr_t);
+               int     (*svc_ah_destroy)(struct SVCAUTH *);
                } *svc_ah_ops;
        caddr_t svc_ah_private;
 } SVCAUTH;
 
-#define SVCAUTH_DESTROY(cred)          ((*(cred)->svc_ah_ops->svc_ah_destroy)())
-#define svcauth_destroy(cred)          ((*(cred)->svc_ah_ops->svc_ah_destroy)())
+#define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \
+       ((*((auth)->svc_ah_ops->svc_ah_wrap))(auth, xdrs, xfunc, xwhere))
+#define SVCAUTH_UNWRAP(auth, xdrs, xfunc, xwhere) \
+       ((*((auth)->svc_ah_ops->svc_ah_unwrap))(auth, xdrs, xfunc, xwhere))
+#define SVCAUTH_DESTROY(auth) \
+       ((*((auth)->svc_ah_ops->svc_ah_destroy))(auth))
 
 /*
  * Server side authenticator
  */
 __BEGIN_DECLS
+extern enum auth_stat _gss_authenticate(struct svc_req *, struct rpc_msg *,
+               bool_t *);
 extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *);
 extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *,
                          struct rpc_msg *));