[SCM] Samba Shared Repository - branch master updated -
07e1e30b96dc17c60604b55a3f2a50afc9c8d791
Günther Deschner
gd at samba.org
Thu Jan 8 11:16:33 GMT 2009
The branch, master has been updated
via 07e1e30b96dc17c60604b55a3f2a50afc9c8d791 (commit)
via 3079e14f94c58be379474e20b488131cc2632497 (commit)
via 5581637d2269f99075071ec5aade59b492bb9740 (commit)
via 385316a09a6dbb790e5f7cb012614acd42bbbb00 (commit)
via b42cb4944a6c4c1509e175553c25b52f765bb3bb (commit)
via 661eeb34b5079e053c821f6d637a5061e6ce6c5e (commit)
via 4df1a491c5471b751835583471a0bb0f17d42616 (commit)
via 6eb507e30d39e4adea96fcc67645595a36f0fce7 (commit)
via 2a4f1ae1fb706c8589c4ef14c642498db119139d (commit)
via 979c82ab43c9c09fd4835361217fdea043d3fddf (commit)
via ea7fa77bb2f2f17c3df2ed0069ab1d4746029df5 (commit)
via 60c10a153a4e6c6cb2adf6c649b57a12f51dea26 (commit)
via 55da3807d744c3e53e1cae6021357afd6fa0329d (commit)
via 176bbcf90cd890111177aeebce3f0563ac2da584 (commit)
via 550c64bef9cfc3f2aca6edcaeaf5e351aa4d8ee0 (commit)
from 61a23c5eea2203721a70a4ad41bfdc6cd1d6a2a7 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 07e1e30b96dc17c60604b55a3f2a50afc9c8d791
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 7 15:05:28 2009 +0100
s3-svcctl: remove old hand marshalling of svcctl_QueryServiceConfig2W.
Guenther
commit 3079e14f94c58be379474e20b488131cc2632497
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 7 15:05:01 2009 +0100
s3-svcctl: use pidl for _svcctl_QueryServiceConfig2W.
Guenther
commit 5581637d2269f99075071ec5aade59b492bb9740
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 7 12:38:23 2009 +0100
s3-svcctl: fix return code for _svcctl_QueryServiceStatusEx.
Guenther
commit 385316a09a6dbb790e5f7cb012614acd42bbbb00
Author: Günther Deschner <gd at samba.org>
Date: Tue Jan 6 19:00:05 2009 +0100
s3-svcctl: remove old hand marshalling of svcctl_QueryServiceStatusEx.
Guenther
commit b42cb4944a6c4c1509e175553c25b52f765bb3bb
Author: Günther Deschner <gd at samba.org>
Date: Tue Jan 6 18:59:44 2009 +0100
s3-svcctl: use pidl for _svcctl_QueryServiceStatusEx.
Guenther
commit 661eeb34b5079e053c821f6d637a5061e6ce6c5e
Author: Günther Deschner <gd at samba.org>
Date: Fri Nov 14 13:49:36 2008 +0100
s4-smbtorture: use names for info level in test_QueryServiceStatusEx.
Guenther
commit 4df1a491c5471b751835583471a0bb0f17d42616
Author: Günther Deschner <gd at samba.org>
Date: Fri Nov 14 13:48:59 2008 +0100
s4-smbtorture: add my copyright to svcctl test.
Guenther
commit 6eb507e30d39e4adea96fcc67645595a36f0fce7
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 7 15:06:04 2009 +0100
s3-svcctl: use pidl's ndr opcodes for NDR_SVCCTL_QUERYSERVICECONFIGW.
Guenther
commit 2a4f1ae1fb706c8589c4ef14c642498db119139d
Author: Günther Deschner <gd at samba.org>
Date: Tue Jan 6 18:19:29 2009 +0100
s3: re-run make samba3-idl.
Guenther
commit 979c82ab43c9c09fd4835361217fdea043d3fddf
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 7 17:50:09 2009 +0100
svcctl: add svcctl_ServiceState.
Guenther
commit ea7fa77bb2f2f17c3df2ed0069ab1d4746029df5
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 7 15:03:45 2009 +0100
svcctl: add SERVICE_FAILURE_ACTIONS and SERVICE_DESCRIPTION to IDL.
Guenther
commit 60c10a153a4e6c6cb2adf6c649b57a12f51dea26
Author: Günther Deschner <gd at samba.org>
Date: Tue Jan 6 18:58:18 2009 +0100
svcctl: add SERVICE_STATUS_PROCESS to idl.
Guenther
commit 55da3807d744c3e53e1cae6021357afd6fa0329d
Author: Günther Deschner <gd at samba.org>
Date: Tue Jan 6 18:15:01 2009 +0100
svcctl: add svcctl_ErrorControl and svcctl_Type (based on samba3) to IDL.
Guenther
commit 176bbcf90cd890111177aeebce3f0563ac2da584
Author: Günther Deschner <gd at samba.org>
Date: Fri Nov 14 12:03:18 2008 +0100
svcctl: add svcctl_ConfigLevel from samba 3.
Guenther
commit 550c64bef9cfc3f2aca6edcaeaf5e351aa4d8ee0
Author: Günther Deschner <gd at samba.org>
Date: Fri Nov 14 11:58:12 2008 +0100
svcctl: move SVC_STATUS_ to idl.
Guenther
-----------------------------------------------------------------------
Summary of changes:
librpc/gen_ndr/cli_svcctl.c | 32 +-
librpc/gen_ndr/cli_svcctl.h | 24 +-
librpc/gen_ndr/ndr_svcctl.c | 589 +++++++++++++++++++++++++++++++++---
librpc/gen_ndr/ndr_svcctl.h | 18 ++
librpc/gen_ndr/svcctl.h | 143 ++++++++-
librpc/idl/svcctl.idl | 92 +++++-
source3/include/proto.h | 12 -
source3/include/rpc_svcctl.h | 75 -----
source3/rpc_parse/parse_svcctl.c | 264 ----------------
source3/rpc_server/srv_svcctl.c | 39 +---
source3/rpc_server/srv_svcctl_nt.c | 96 ++++---
source4/torture/rpc/svcctl.c | 5 +-
12 files changed, 864 insertions(+), 525 deletions(-)
Changeset truncated at 500 lines:
diff --git a/librpc/gen_ndr/cli_svcctl.c b/librpc/gen_ndr/cli_svcctl.c
index 3288e4a..28318b3 100644
--- a/librpc/gen_ndr/cli_svcctl.c
+++ b/librpc/gen_ndr/cli_svcctl.c
@@ -509,8 +509,8 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfigW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
- uint32_t start /* [in] */,
- uint32_t error /* [in] */,
+ enum svcctl_StartType start_type /* [in] */,
+ enum svcctl_ErrorControl error_control /* [in] */,
const char *binary_path /* [in] [unique,charset(UTF16)] */,
const char *load_order_group /* [in] [unique,charset(UTF16)] */,
uint32_t *tag_id /* [out] [ref] */,
@@ -526,8 +526,8 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfigW(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
r.in.type = type;
- r.in.start = start;
- r.in.error = error;
+ r.in.start_type = start_type;
+ r.in.error_control = error_control;
r.in.binary_path = binary_path;
r.in.load_order_group = load_order_group;
r.in.dependencies = dependencies;
@@ -575,8 +575,8 @@ NTSTATUS rpccli_svcctl_CreateServiceW(struct rpc_pipe_client *cli,
const char *DisplayName /* [in] [unique,charset(UTF16)] */,
uint32_t desired_access /* [in] */,
uint32_t type /* [in] */,
- uint32_t start_type /* [in] */,
- uint32_t error_control /* [in] */,
+ enum svcctl_StartType start_type /* [in] */,
+ enum svcctl_ErrorControl error_control /* [in] */,
const char *binary_path /* [in] [charset(UTF16)] */,
const char *LoadOrderGroupKey /* [in] [unique,charset(UTF16)] */,
uint32_t *TagId /* [in,out] [unique] */,
@@ -701,7 +701,7 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
- uint32_t state /* [in] */,
+ enum svcctl_ServiceState state /* [in] */,
uint8_t *service /* [out] [ref,size_is(buf_size)] */,
uint32_t buf_size /* [in] [range(0,262144)] */,
uint32_t *bytes_needed /* [out] [ref,range(0,262144)] */,
@@ -1157,8 +1157,8 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfigA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
- uint32_t start /* [in] */,
- uint32_t error /* [in] */,
+ enum svcctl_StartType start_type /* [in] */,
+ enum svcctl_ErrorControl error_control /* [in] */,
const char *binary_path /* [in] [unique,charset(UTF16)] */,
const char *load_order_group /* [in] [unique,charset(UTF16)] */,
uint32_t *tag_id /* [out] [ref] */,
@@ -1174,8 +1174,8 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfigA(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
r.in.type = type;
- r.in.start = start;
- r.in.error = error;
+ r.in.start_type = start_type;
+ r.in.error_control = error_control;
r.in.binary_path = binary_path;
r.in.load_order_group = load_order_group;
r.in.dependencies = dependencies;
@@ -1223,8 +1223,8 @@ NTSTATUS rpccli_svcctl_CreateServiceA(struct rpc_pipe_client *cli,
const char *DisplayName /* [in] [unique,charset(UTF16)] */,
uint32_t desired_access /* [in] */,
uint32_t type /* [in] */,
- uint32_t start_type /* [in] */,
- uint32_t error_control /* [in] */,
+ enum svcctl_StartType start_type /* [in] */,
+ enum svcctl_ErrorControl error_control /* [in] */,
const char *binary_path /* [in] [unique,charset(UTF16)] */,
const char *LoadOrderGroupKey /* [in] [unique,charset(UTF16)] */,
uint32_t *TagId /* [out] [unique] */,
@@ -1924,7 +1924,7 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfig2W(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t info_level /* [in] */,
+ enum svcctl_ConfigLevel info_level /* [in] */,
uint8_t *buffer /* [out] */,
uint32_t buf_size /* [in] */,
uint32_t *bytes_needed /* [out] [ref] */,
@@ -1975,7 +1975,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t info_level /* [in] */,
+ enum svcctl_ConfigLevel info_level /* [in] */,
uint8_t *buffer /* [out] [ref,size_is(buf_size)] */,
uint32_t buf_size /* [in] [range(0,8192)] */,
uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
@@ -2026,7 +2026,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_QueryServiceStatusEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t info_level /* [in] */,
+ enum svcctl_StatusLevel info_level /* [in] */,
uint8_t *buffer /* [out] [ref,size_is(buf_size)] */,
uint32_t buf_size /* [in] [range(0,8192)] */,
uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
diff --git a/librpc/gen_ndr/cli_svcctl.h b/librpc/gen_ndr/cli_svcctl.h
index fbd15b3..575256f 100644
--- a/librpc/gen_ndr/cli_svcctl.h
+++ b/librpc/gen_ndr/cli_svcctl.h
@@ -61,8 +61,8 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfigW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
- uint32_t start /* [in] */,
- uint32_t error /* [in] */,
+ enum svcctl_StartType start_type /* [in] */,
+ enum svcctl_ErrorControl error_control /* [in] */,
const char *binary_path /* [in] [unique,charset(UTF16)] */,
const char *load_order_group /* [in] [unique,charset(UTF16)] */,
uint32_t *tag_id /* [out] [ref] */,
@@ -78,8 +78,8 @@ NTSTATUS rpccli_svcctl_CreateServiceW(struct rpc_pipe_client *cli,
const char *DisplayName /* [in] [unique,charset(UTF16)] */,
uint32_t desired_access /* [in] */,
uint32_t type /* [in] */,
- uint32_t start_type /* [in] */,
- uint32_t error_control /* [in] */,
+ enum svcctl_StartType start_type /* [in] */,
+ enum svcctl_ErrorControl error_control /* [in] */,
const char *binary_path /* [in] [charset(UTF16)] */,
const char *LoadOrderGroupKey /* [in] [unique,charset(UTF16)] */,
uint32_t *TagId /* [in,out] [unique] */,
@@ -103,7 +103,7 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
- uint32_t state /* [in] */,
+ enum svcctl_ServiceState state /* [in] */,
uint8_t *service /* [out] [ref,size_is(buf_size)] */,
uint32_t buf_size /* [in] [range(0,262144)] */,
uint32_t *bytes_needed /* [out] [ref,range(0,262144)] */,
@@ -169,8 +169,8 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfigA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
- uint32_t start /* [in] */,
- uint32_t error /* [in] */,
+ enum svcctl_StartType start_type /* [in] */,
+ enum svcctl_ErrorControl error_control /* [in] */,
const char *binary_path /* [in] [unique,charset(UTF16)] */,
const char *load_order_group /* [in] [unique,charset(UTF16)] */,
uint32_t *tag_id /* [out] [ref] */,
@@ -186,8 +186,8 @@ NTSTATUS rpccli_svcctl_CreateServiceA(struct rpc_pipe_client *cli,
const char *DisplayName /* [in] [unique,charset(UTF16)] */,
uint32_t desired_access /* [in] */,
uint32_t type /* [in] */,
- uint32_t start_type /* [in] */,
- uint32_t error_control /* [in] */,
+ enum svcctl_StartType start_type /* [in] */,
+ enum svcctl_ErrorControl error_control /* [in] */,
const char *binary_path /* [in] [unique,charset(UTF16)] */,
const char *LoadOrderGroupKey /* [in] [unique,charset(UTF16)] */,
uint32_t *TagId /* [out] [unique] */,
@@ -283,7 +283,7 @@ NTSTATUS rpccli_svcctl_ChangeServiceConfig2W(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t info_level /* [in] */,
+ enum svcctl_ConfigLevel info_level /* [in] */,
uint8_t *buffer /* [out] */,
uint32_t buf_size /* [in] */,
uint32_t *bytes_needed /* [out] [ref] */,
@@ -291,7 +291,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t info_level /* [in] */,
+ enum svcctl_ConfigLevel info_level /* [in] */,
uint8_t *buffer /* [out] [ref,size_is(buf_size)] */,
uint32_t buf_size /* [in] [range(0,8192)] */,
uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
@@ -299,7 +299,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_QueryServiceStatusEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t info_level /* [in] */,
+ enum svcctl_StatusLevel info_level /* [in] */,
uint8_t *buffer /* [out] [ref,size_is(buf_size)] */,
uint32_t buf_size /* [in] [range(0,8192)] */,
uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
diff --git a/librpc/gen_ndr/ndr_svcctl.c b/librpc/gen_ndr/ndr_svcctl.c
index 590d493..54c49ad 100644
--- a/librpc/gen_ndr/ndr_svcctl.c
+++ b/librpc/gen_ndr/ndr_svcctl.c
@@ -119,6 +119,42 @@ _PUBLIC_ void ndr_print_SERVICE_STATUS(struct ndr_print *ndr, const char *name,
ndr->depth--;
}
+_PUBLIC_ enum ndr_err_code ndr_push_SERVICE_STATUS_PROCESS(struct ndr_push *ndr, int ndr_flags, const struct SERVICE_STATUS_PROCESS *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_SERVICE_STATUS(ndr, NDR_SCALARS, &r->status));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->process_id));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->service_flags));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_SERVICE_STATUS_PROCESS(struct ndr_pull *ndr, int ndr_flags, struct SERVICE_STATUS_PROCESS *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_SERVICE_STATUS(ndr, NDR_SCALARS, &r->status));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->process_id));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->service_flags));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_SERVICE_STATUS_PROCESS(struct ndr_print *ndr, const char *name, const struct SERVICE_STATUS_PROCESS *r)
+{
+ ndr_print_struct(ndr, name, "SERVICE_STATUS_PROCESS");
+ ndr->depth++;
+ ndr_print_SERVICE_STATUS(ndr, "status", &r->status);
+ ndr_print_uint32(ndr, "process_id", r->process_id);
+ ndr_print_uint32(ndr, "service_flags", r->service_flags);
+ ndr->depth--;
+}
+
static enum ndr_err_code ndr_push_ENUM_SERVICE_STATUS(struct ndr_push *ndr, int ndr_flags, const struct ENUM_SERVICE_STATUS *r)
{
if (ndr_flags & NDR_SCALARS) {
@@ -325,6 +361,87 @@ _PUBLIC_ void ndr_print_SERVICE_CONTROL(struct ndr_print *ndr, const char *name,
ndr_print_enum(ndr, name, "ENUM", val, r);
}
+static enum ndr_err_code ndr_push_svcctl_ErrorControl(struct ndr_push *ndr, int ndr_flags, enum svcctl_ErrorControl r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_svcctl_ErrorControl(struct ndr_pull *ndr, int ndr_flags, enum svcctl_ErrorControl *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_svcctl_ErrorControl(struct ndr_print *ndr, const char *name, enum svcctl_ErrorControl r)
+{
+ const char *val = NULL;
+
+ switch (r) {
+ case SVCCTL_SVC_ERROR_IGNORE: val = "SVCCTL_SVC_ERROR_IGNORE"; break;
+ case SVCCTL_SVC_ERROR_NORMAL: val = "SVCCTL_SVC_ERROR_NORMAL"; break;
+ case SVCCTL_SVC_ERROR_CRITICAL: val = "SVCCTL_SVC_ERROR_CRITICAL"; break;
+ case SVCCTL_SVC_ERROR_SEVERE: val = "SVCCTL_SVC_ERROR_SEVERE"; break;
+ }
+ ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_svcctl_StartType(struct ndr_push *ndr, int ndr_flags, enum svcctl_StartType r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_svcctl_StartType(struct ndr_pull *ndr, int ndr_flags, enum svcctl_StartType *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_svcctl_StartType(struct ndr_print *ndr, const char *name, enum svcctl_StartType r)
+{
+ const char *val = NULL;
+
+ switch (r) {
+ case SVCCTL_BOOT_START: val = "SVCCTL_BOOT_START"; break;
+ case SVCCTL_SYSTEM_START: val = "SVCCTL_SYSTEM_START"; break;
+ case SVCCTL_AUTO_START: val = "SVCCTL_AUTO_START"; break;
+ case SVCCTL_DEMAND_START: val = "SVCCTL_DEMAND_START"; break;
+ case SVCCTL_DISABLED: val = "SVCCTL_DISABLED"; break;
+ }
+ ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_svcctl_ServiceState(struct ndr_push *ndr, int ndr_flags, enum svcctl_ServiceState r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_svcctl_ServiceState(struct ndr_pull *ndr, int ndr_flags, enum svcctl_ServiceState *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_svcctl_ServiceState(struct ndr_print *ndr, const char *name, enum svcctl_ServiceState r)
+{
+ const char *val = NULL;
+
+ switch (r) {
+ case SVCCTL_STATE_ACTIVE: val = "SVCCTL_STATE_ACTIVE"; break;
+ case SVCCTL_STATE_INACTIVE: val = "SVCCTL_STATE_INACTIVE"; break;
+ case SVCCTL_STATE_ALL: val = "SVCCTL_STATE_ALL"; break;
+ }
+ ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
static enum ndr_err_code ndr_push_svcctl_MgrAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
{
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
@@ -387,8 +504,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_QUERY_SERVICE_CONFIG(struct ndr_push *ndr, i
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->service_type));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_type));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->error_control));
+ NDR_CHECK(ndr_push_svcctl_StartType(ndr, NDR_SCALARS, r->start_type));
+ NDR_CHECK(ndr_push_svcctl_ErrorControl(ndr, NDR_SCALARS, r->error_control));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->executablepath));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->loadordergroup));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tag_id));
@@ -446,8 +563,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_QUERY_SERVICE_CONFIG(struct ndr_pull *ndr, i
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_align(ndr, 4));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->service_type));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_type));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->error_control));
+ NDR_CHECK(ndr_pull_svcctl_StartType(ndr, NDR_SCALARS, &r->start_type));
+ NDR_CHECK(ndr_pull_svcctl_ErrorControl(ndr, NDR_SCALARS, &r->error_control));
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_executablepath));
if (_ptr_executablepath) {
NDR_PULL_ALLOC(ndr, r->executablepath);
@@ -550,8 +667,8 @@ _PUBLIC_ void ndr_print_QUERY_SERVICE_CONFIG(struct ndr_print *ndr, const char *
ndr_print_struct(ndr, name, "QUERY_SERVICE_CONFIG");
ndr->depth++;
ndr_print_uint32(ndr, "service_type", r->service_type);
- ndr_print_uint32(ndr, "start_type", r->start_type);
- ndr_print_uint32(ndr, "error_control", r->error_control);
+ ndr_print_svcctl_StartType(ndr, "start_type", r->start_type);
+ ndr_print_svcctl_ErrorControl(ndr, "error_control", r->error_control);
ndr_print_ptr(ndr, "executablepath", r->executablepath);
ndr->depth++;
if (r->executablepath) {
@@ -591,6 +708,394 @@ _PUBLIC_ size_t ndr_size_QUERY_SERVICE_CONFIG(const struct QUERY_SERVICE_CONFIG
return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_QUERY_SERVICE_CONFIG, ic);
}
+static enum ndr_err_code ndr_push_svcctl_ConfigLevel(struct ndr_push *ndr, int ndr_flags, enum svcctl_ConfigLevel r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_svcctl_ConfigLevel(struct ndr_pull *ndr, int ndr_flags, enum svcctl_ConfigLevel *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_svcctl_ConfigLevel(struct ndr_print *ndr, const char *name, enum svcctl_ConfigLevel r)
+{
+ const char *val = NULL;
+
+ switch (r) {
+ case SERVICE_CONFIG_DESCRIPTION: val = "SERVICE_CONFIG_DESCRIPTION"; break;
+ case SERVICE_CONFIG_FAILURE_ACTIONS: val = "SERVICE_CONFIG_FAILURE_ACTIONS"; break;
+ }
+ ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_SERVICE_DESCRIPTION(struct ndr_push *ndr, int ndr_flags, const struct SERVICE_DESCRIPTION *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ {
+ uint32_t _flags_save_string = ndr->flags;
+ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+ NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
+ ndr->flags = _flags_save_string;
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ {
+ uint32_t _flags_save_string = ndr->flags;
+ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+ if (r->description) {
+ NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
+ NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
+ }
+ ndr->flags = _flags_save_string;
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_SERVICE_DESCRIPTION(struct ndr_pull *ndr, int ndr_flags, struct SERVICE_DESCRIPTION *r)
+{
+ uint32_t _ptr_description;
+ TALLOC_CTX *_mem_save_description_0;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ {
+ uint32_t _flags_save_string = ndr->flags;
+ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
+ if (_ptr_description) {
+ NDR_PULL_ALLOC(ndr, r->description);
+ NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
+ } else {
+ r->description = NULL;
+ }
+ ndr->flags = _flags_save_string;
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ {
+ uint32_t _flags_save_string = ndr->flags;
+ ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+ if (r->description) {
+ uint32_t _relative_save_offset;
+ _relative_save_offset = ndr->offset;
+ NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
+ _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
+ NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
+ ndr->offset = _relative_save_offset;
+ }
+ ndr->flags = _flags_save_string;
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_SERVICE_DESCRIPTION(struct ndr_print *ndr, const char *name, const struct SERVICE_DESCRIPTION *r)
+{
+ ndr_print_struct(ndr, name, "SERVICE_DESCRIPTION");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "description", r->description);
+ ndr->depth++;
+ if (r->description) {
+ ndr_print_string(ndr, "description", r->description);
+ }
+ ndr->depth--;
+ ndr->depth--;
+}
+
+_PUBLIC_ size_t ndr_size_SERVICE_DESCRIPTION(const struct SERVICE_DESCRIPTION *r, struct smb_iconv_convenience *ic, int flags)
+{
+ return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_SERVICE_DESCRIPTION, ic);
+}
+
+static enum ndr_err_code ndr_push_SC_ACTION_TYPE(struct ndr_push *ndr, int ndr_flags, enum SC_ACTION_TYPE r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_SC_ACTION_TYPE(struct ndr_pull *ndr, int ndr_flags, enum SC_ACTION_TYPE *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_SC_ACTION_TYPE(struct ndr_print *ndr, const char *name, enum SC_ACTION_TYPE r)
+{
+ const char *val = NULL;
+
+ switch (r) {
+ case SC_ACTION_NONE: val = "SC_ACTION_NONE"; break;
+ case SC_ACTION_RESTART: val = "SC_ACTION_RESTART"; break;
+ case SC_ACTION_REBOOT: val = "SC_ACTION_REBOOT"; break;
+ case SC_ACTION_RUN_COMMAND: val = "SC_ACTION_RUN_COMMAND"; break;
+ }
+ ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_SC_ACTION(struct ndr_push *ndr, int ndr_flags, const struct SC_ACTION *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
--
Samba Shared Repository
More information about the samba-cvs
mailing list