Merge up from branch.
[shibboleth/cpp-sp.git] / shib-target / shibrpc-svc.c
index 74c22b4..47dfb8c 100644 (file)
 #endif
 
 void
-shibrpc_prog_1(struct svc_req *rqstp, register SVCXPRT *transp)
+shibrpc_prog_3(struct svc_req *rqstp, register SVCXPRT *transp)
 {
        union {
-               int shibrpc_ping_1_arg;
-               shibrpc_session_is_valid_args_1 shibrpc_session_is_valid_1_arg;
-               shibrpc_new_session_args_1 shibrpc_new_session_1_arg;
-               shibrpc_get_assertions_args_1 shibrpc_get_assertions_1_arg;
+               shibrpc_args_3 shibrpc_call_3_arg;
        } argument;
        union {
-               int shibrpc_ping_1_res;
-               shibrpc_session_is_valid_ret_1 shibrpc_session_is_valid_1_res;
-               shibrpc_new_session_ret_1 shibrpc_new_session_1_res;
-               shibrpc_get_assertions_ret_1 shibrpc_get_assertions_1_res;
+               shibrpc_ret_3 shibrpc_call_3_res;
        } result;
        bool_t retval;
        xdrproc_t _xdr_argument, _xdr_result;
        bool_t (*local)(char *, void *, struct svc_req *);
 
        switch (rqstp->rq_proc) {
-       case shibrpc_ping:
-               _xdr_argument = (xdrproc_t) xdr_int;
-               _xdr_result = (xdrproc_t) xdr_int;
-               local = (bool_t (*) (char *, void *,  struct svc_req *))shibrpc_ping_1_svc;
-               break;
-
-       case shibrpc_session_is_valid:
-               _xdr_argument = (xdrproc_t) xdr_shibrpc_session_is_valid_args_1;
-               _xdr_result = (xdrproc_t) xdr_shibrpc_session_is_valid_ret_1;
-               local = (bool_t (*) (char *, void *,  struct svc_req *))shibrpc_session_is_valid_1_svc;
-               break;
-
-       case shibrpc_new_session:
-               _xdr_argument = (xdrproc_t) xdr_shibrpc_new_session_args_1;
-               _xdr_result = (xdrproc_t) xdr_shibrpc_new_session_ret_1;
-               local = (bool_t (*) (char *, void *,  struct svc_req *))shibrpc_new_session_1_svc;
-               break;
+       case NULLPROC:
+               (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL);
+               return;
 
-       case shibrpc_get_assertions:
-               _xdr_argument = (xdrproc_t) xdr_shibrpc_get_assertions_args_1;
-               _xdr_result = (xdrproc_t) xdr_shibrpc_get_assertions_ret_1;
-               local = (bool_t (*) (char *, void *,  struct svc_req *))shibrpc_get_assertions_1_svc;
+       case shibrpc_call:
+               _xdr_argument = (xdrproc_t) xdr_shibrpc_args_3;
+               _xdr_result = (xdrproc_t) xdr_shibrpc_ret_3;
+               local = (bool_t (*) (char *, void *,  struct svc_req *))shibrpc_call_3_svc;
                break;
 
        default:
@@ -70,19 +50,19 @@ shibrpc_prog_1(struct svc_req *rqstp, register SVCXPRT *transp)
                return;
        }
        memset ((char *)&argument, 0, sizeof (argument));
-       if (!svc_getargs (transp, _xdr_argument, (caddr_t) &argument)) {
+       if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) {
                svcerr_decode (transp);
                return;
        }
        retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp);
-       if (retval > 0 && !svc_sendreply(transp, _xdr_result, (char *)&result)) {
+       if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) {
                svcerr_systemerr (transp);
        }
-       if (!svc_freeargs (transp, _xdr_argument, (caddr_t) &argument)) {
+       if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) {
                fprintf (stderr, "%s", "unable to free arguments");
                exit (1);
        }
-       if (!shibrpc_prog_1_freeresult (transp, _xdr_result, (caddr_t) &result))
+       if (!shibrpc_prog_3_freeresult (transp, _xdr_result, (caddr_t) &result))
                fprintf (stderr, "%s", "unable to free results");
 
        return;