The branch, master has been updated via 86b1b82d9ef29f0431d27d62ce2ec289078a6802 (commit) via 413cb33fd59efbeb3ebfcdc0ddce3500412fe66d (commit) via a9b7695c2462654918204986c72cdb0c413b24c9 (commit) from abc2843481a6cade7306b0beb8e615bf648d0087 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 86b1b82d9ef29f0431d27d62ce2ec289078a6802 Author: Günther Deschner <g...@samba.org> Date: Fri Jan 9 16:17:35 2009 +0100 s3: re-run make samba3-idl. Guenther commit 413cb33fd59efbeb3ebfcdc0ddce3500412fe66d Author: Günther Deschner <g...@samba.org> Date: Fri Jan 9 16:17:03 2009 +0100 svcctl: include hand marshalling helper in idl. Guenther commit a9b7695c2462654918204986c72cdb0c413b24c9 Author: Günther Deschner <g...@samba.org> Date: Fri Jan 9 14:36:13 2009 +0100 svcctl: add ndr_push/pull_ENUM_SERVICE_STATUSW_array helper. Thanks metze for helping here. Guenther ----------------------------------------------------------------------- Summary of changes: librpc/gen_ndr/ndr_svcctl.h | 1 + librpc/idl/svcctl.idl | 1 + librpc/ndr/ndr_svcctl.c | 52 +++++++++++++++++++++++++++++++++++++++++++ librpc/ndr/ndr_svcctl.h | 24 +++++++++++++++++++ 4 files changed, 78 insertions(+), 0 deletions(-) create mode 100644 librpc/ndr/ndr_svcctl.c create mode 100644 librpc/ndr/ndr_svcctl.h Changeset truncated at 500 lines: diff --git a/librpc/gen_ndr/ndr_svcctl.h b/librpc/gen_ndr/ndr_svcctl.h index be7ada3..902565d 100644 --- a/librpc/gen_ndr/ndr_svcctl.h +++ b/librpc/gen_ndr/ndr_svcctl.h @@ -6,6 +6,7 @@ #ifndef _HEADER_NDR_svcctl #define _HEADER_NDR_svcctl +#include "../librpc/ndr/ndr_svcctl.h" #define NDR_SVCCTL_UUID "367abb81-9844-35f1-ad32-98f038001003" #define NDR_SVCCTL_VERSION 2.0 #define NDR_SVCCTL_NAME "svcctl" diff --git a/librpc/idl/svcctl.idl b/librpc/idl/svcctl.idl index a48eb35..3f99029 100644 --- a/librpc/idl/svcctl.idl +++ b/librpc/idl/svcctl.idl @@ -9,6 +9,7 @@ import "misc.idl", "security.idl"; version(2.0), pointer_default(unique), endpoint("ncacn_np:[\\pipe\\svcctl]", "ncalrpc:"), + helper("../librpc/ndr/ndr_svcctl.h"), helpstring("Service Control") ] interface svcctl { diff --git a/librpc/ndr/ndr_svcctl.c b/librpc/ndr/ndr_svcctl.c new file mode 100644 index 0000000..83e581b --- /dev/null +++ b/librpc/ndr/ndr_svcctl.c @@ -0,0 +1,52 @@ +/* + Unix SMB/CIFS implementation. + + routines for marshalling/unmarshalling special svcctl types + + Copyright (C) Guenther Deschner 2009 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "includes.h" +#include "librpc/gen_ndr/ndr_svcctl.h" + +_PUBLIC_ enum ndr_err_code ndr_push_ENUM_SERVICE_STATUSW_array(struct ndr_push *ndr, uint32_t count, struct ENUM_SERVICE_STATUSW *r) +{ + uint32_t cntr_array_1; + + for (cntr_array_1 = 0; cntr_array_1 < count; cntr_array_1++) { + NDR_CHECK(ndr_push_ENUM_SERVICE_STATUSW(ndr, NDR_SCALARS, &r[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < count; cntr_array_1++) { + NDR_CHECK(ndr_push_ENUM_SERVICE_STATUSW(ndr, NDR_BUFFERS, &r[cntr_array_1])); + } + + return NDR_ERR_SUCCESS; + +} + +_PUBLIC_ enum ndr_err_code ndr_pull_ENUM_SERVICE_STATUSW_array(struct ndr_pull *ndr, uint32_t count, struct ENUM_SERVICE_STATUSW *r) +{ + uint32_t cntr_array_1; + + for (cntr_array_1 = 0; cntr_array_1 < count; cntr_array_1++) { + NDR_CHECK(ndr_pull_ENUM_SERVICE_STATUSW(ndr, NDR_SCALARS, &r[cntr_array_1])); + } + for (cntr_array_1 = 0; cntr_array_1 < count; cntr_array_1++) { + NDR_CHECK(ndr_pull_ENUM_SERVICE_STATUSW(ndr, NDR_BUFFERS, &r[cntr_array_1])); + } + + return NDR_ERR_SUCCESS; +} diff --git a/librpc/ndr/ndr_svcctl.h b/librpc/ndr/ndr_svcctl.h new file mode 100644 index 0000000..e11ff69 --- /dev/null +++ b/librpc/ndr/ndr_svcctl.h @@ -0,0 +1,24 @@ +/* + Unix SMB/CIFS implementation. + + routines for marshalling/unmarshalling special svcctl types + + Copyright (C) Guenther Deschner 2009 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +_PUBLIC_ enum ndr_err_code ndr_push_ENUM_SERVICE_STATUSW_array(struct ndr_push *ndr, uint32_t count, struct ENUM_SERVICE_STATUSW *r); +_PUBLIC_ enum ndr_err_code ndr_pull_ENUM_SERVICE_STATUSW_array(struct ndr_pull *ndr, uint32_t count, struct ENUM_SERVICE_STATUSW *r); + -- Samba Shared Repository