summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_svcctl.c
diff options
context:
space:
mode:
authorMatthew Chapman <matty@samba.org>1999-03-18 09:36:43 +0000
committerMatthew Chapman <matty@samba.org>1999-03-18 09:36:43 +0000
commitf7eaf17216c91c66719b2393c7a8716fc55e4e5f (patch)
treeacf6cd8bf859203a497b46fb70af5b3bcb75d454 /source3/rpc_server/srv_svcctl.c
parenteb82f27bd194f578ffa0557bdfb289e89a132e6b (diff)
downloadsamba-f7eaf17216c91c66719b2393c7a8716fc55e4e5f.tar.gz
samba-f7eaf17216c91c66719b2393c7a8716fc55e4e5f.tar.bz2
samba-f7eaf17216c91c66719b2393c7a8716fc55e4e5f.zip
Added SVC_START_SERVICE rpc. An NT PDC will attempt to start the NETLOGON
service on its BDC's prior to initiating SAM replication. For now just return success. (This used to be commit 113d03a38a34e5c4115dab59349078093bcd4888)
Diffstat (limited to 'source3/rpc_server/srv_svcctl.c')
-rw-r--r--source3/rpc_server/srv_svcctl.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_svcctl.c b/source3/rpc_server/srv_svcctl.c
index d52816df80..6a420c1493 100644
--- a/source3/rpc_server/srv_svcctl.c
+++ b/source3/rpc_server/srv_svcctl.c
@@ -126,6 +126,42 @@ static void api_svc_open_service( uint16 vuid, prs_struct *data,
}
/*******************************************************************
+ svc_reply_start_service
+ ********************************************************************/
+static void svc_reply_start_service(SVC_Q_START_SERVICE *q_s,
+ prs_struct *rdata)
+{
+ SVC_R_START_SERVICE r_s;
+
+ DEBUG(5,("svc_start_service: %d\n", __LINE__));
+
+ r_s.status = 0x0;
+
+ if (find_lsa_policy_by_hnd(&q_s->pol) == -1)
+ {
+ r_s.status = 0xC000000 | NT_STATUS_INVALID_HANDLE;
+ }
+
+ /* start the service here */
+
+ /* store the response in the SMB stream */
+ svc_io_r_start_service("", &r_s, rdata, 0);
+
+ DEBUG(5,("svc_start_service: %d\n", __LINE__));
+}
+
+/*******************************************************************
+ api_svc_start_service
+ ********************************************************************/
+static void api_svc_start_service( uint16 vuid, prs_struct *data,
+ prs_struct *rdata )
+{
+ SVC_Q_START_SERVICE q_u;
+ svc_io_q_start_service("", &q_u, data, 0);
+ svc_reply_start_service(&q_u, rdata);
+}
+
+/*******************************************************************
svc_reply_open_sc_man
********************************************************************/
static void svc_reply_open_sc_man(SVC_Q_OPEN_SC_MAN *q_u,
@@ -338,6 +374,7 @@ static struct api_struct api_svc_cmds[] =
{ "SVC_OPEN_SERVICE" , SVC_OPEN_SERVICE , api_svc_open_service },
{ "SVC_ENUM_SVCS_STATUS", SVC_ENUM_SVCS_STATUS, api_svc_enum_svcs_status },
{ "SVC_QUERY_DISP_NAME" , SVC_QUERY_DISP_NAME , api_svc_query_disp_name },
+ { "SVC_START_SERVICE" , SVC_START_SERVICE , api_svc_start_service },
{ NULL , 0 , NULL }
};