From dc2ffe07a8b25c117c7778fb706274198c11c2cc Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 3 Nov 2003 07:26:30 +0000 Subject: started adding RPC-ECHO torture cases (This used to be commit 8cff335dab438aa2dbcca91a717e14ef5a8288dd) --- source4/libcli/ndr/libndr.h | 4 ++++ source4/libcli/ndr/ndr_echo.c | 46 +++++++++++++++++++++++++++++++++++++++++++ source4/libcli/ndr/ndr_echo.h | 45 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 source4/libcli/ndr/ndr_echo.c create mode 100644 source4/libcli/ndr/ndr_echo.h (limited to 'source4/libcli/ndr') diff --git a/source4/libcli/ndr/libndr.h b/source4/libcli/ndr/libndr.h index 4369ebeb30..d9d18299ab 100644 --- a/source4/libcli/ndr/libndr.h +++ b/source4/libcli/ndr/libndr.h @@ -83,3 +83,7 @@ struct ndr_push { if (!(s)) return NT_STATUS_NO_MEMORY; \ } \ } while (0) + +/* now pull in the individual parsers */ +#include "libcli/ndr/ndr_sec.h" +#include "libcli/ndr/ndr_echo.h" diff --git a/source4/libcli/ndr/ndr_echo.c b/source4/libcli/ndr/ndr_echo.c new file mode 100644 index 0000000000..da4f28f30c --- /dev/null +++ b/source4/libcli/ndr/ndr_echo.c @@ -0,0 +1,46 @@ +/* + Unix SMB/CIFS implementation. + + routines for marshalling/unmarshalling rpcecho pipe + + Copyright (C) Andrew Tridgell 2003 + + 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 2 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, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + + +#include "includes.h" + + +/* + parse a addone +*/ +NTSTATUS ndr_pull_rpcecho_addone(struct ndr_pull *ndr, + struct rpcecho_addone *r) +{ + NDR_CHECK(ndr_pull_u32(ndr, &r->out.data)); + return NT_STATUS_OK; +} + + +/* + push a addone +*/ +NTSTATUS ndr_push_rpcecho_addone(struct ndr_push *ndr, + struct rpcecho_addone *r) +{ + NDR_CHECK(ndr_push_u32(ndr, r->in.data)); + return NT_STATUS_OK; +} diff --git a/source4/libcli/ndr/ndr_echo.h b/source4/libcli/ndr/ndr_echo.h new file mode 100644 index 0000000000..6144d3885b --- /dev/null +++ b/source4/libcli/ndr/ndr_echo.h @@ -0,0 +1,45 @@ +/* + Unix SMB/CIFS implementation. + + definitions for marshalling/unmarshalling the rpcecho pipe + + Copyright (C) Andrew Tridgell 2003 + + 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 2 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, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* + see http://samba.org/ftp/unpacked/junkcode/rpcecho-win32/ for the + definition of this pipe +*/ + +/* AddOne interface */ +struct rpcecho_addone { + struct { + int data; + } in; + struct { + int data; + } out; +}; + +/* define the command codes */ +enum { + RPCECHO_CALL_ADDONE=0, + RPCECHO_CALL_ECHODATA, + RPCECHO_CALL_SINKDATA, + RPCECHO_CALL_SOURCEDATA +}; + -- cgit