Use pidl for _svcctl_QueryServiceStatus().
authorGünther Deschner <gd@samba.org>
Tue, 19 Feb 2008 01:41:05 +0000 (02:41 +0100)
committerGünther Deschner <gd@samba.org>
Tue, 19 Feb 2008 02:13:10 +0000 (03:13 +0100)
Guenther
(This used to be commit 5453d97ef4967755ef0c903dd665325d50845028)

source3/rpc_server/srv_svcctl.c
source3/rpc_server/srv_svcctl_nt.c

index dd3a42235d6f3a617942e10495e0fe8c7bba0ac6..3b9960c647f05edab15408d889ab0091f0a8629f 100644 (file)
@@ -77,23 +77,7 @@ static bool api_svcctl_get_display_name(pipes_struct *p)
 
 static bool api_svcctl_query_status(pipes_struct *p)
 {
-       SVCCTL_Q_QUERY_STATUS q_u;
-       SVCCTL_R_QUERY_STATUS r_u;
-       prs_struct *data = &p->in_data.data;
-       prs_struct *rdata = &p->out_data.rdata;
-
-       ZERO_STRUCT(q_u);
-       ZERO_STRUCT(r_u);
-
-       if(!svcctl_io_q_query_status("", &q_u, data, 0))
-               return False;
-
-       r_u.status = _svcctl_query_status(p, &q_u, &r_u);
-
-       if(!svcctl_io_r_query_status("", &r_u, rdata, 0))
-               return False;
-
-       return True;
+       return proxy_svcctl_call(p, NDR_SVCCTL_QUERYSERVICESTATUS);
 }
 
 /*******************************************************************
index e8969c70acaedb227543414bba7147829fc0f551..9baf2d5110045581d8dcb939c1622d2799e45eae 100644 (file)
@@ -361,11 +361,13 @@ WERROR _svcctl_GetServiceDisplayNameW(pipes_struct *p,
 }
 
 /********************************************************************
+ _svcctl_QueryServiceStatus
 ********************************************************************/
 
-WERROR _svcctl_query_status(pipes_struct *p, SVCCTL_Q_QUERY_STATUS *q_u, SVCCTL_R_QUERY_STATUS *r_u)
+WERROR _svcctl_QueryServiceStatus(pipes_struct *p,
+                                 struct svcctl_QueryServiceStatus *r)
 {
-       SERVICE_INFO *info = find_service_info_by_hnd( p, &q_u->handle );
+       SERVICE_INFO *info = find_service_info_by_hnd( p, r->in.handle );
 
        /* perform access checks */
 
@@ -377,7 +379,7 @@ WERROR _svcctl_query_status(pipes_struct *p, SVCCTL_Q_QUERY_STATUS *q_u, SVCCTL_
 
        /* try the service specific status call */
 
-       return info->ops->service_status( info->name, &r_u->svc_status );
+       return info->ops->service_status( info->name, r->out.service_status );
 }
 
 /********************************************************************
@@ -916,12 +918,6 @@ WERROR _svcctl_SetServiceObjectSecurity(pipes_struct *p, struct svcctl_SetServic
        return WERR_NOT_SUPPORTED;
 }
 
-WERROR _svcctl_QueryServiceStatus(pipes_struct *p, struct svcctl_QueryServiceStatus *r)
-{
-       p->rng_fault_state = True;
-       return WERR_NOT_SUPPORTED;
-}
-
 WERROR _svcctl_SetServiceStatus(pipes_struct *p, struct svcctl_SetServiceStatus *r)
 {
        p->rng_fault_state = True;