diff options
author | Volker Lendecke <vl@samba.org> | 2014-09-16 14:09:35 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2015-02-13 23:32:07 +0100 |
commit | d80193ca36f9ca516fbb1ee3a55c7eece3a6c90c (patch) | |
tree | 84d9a937d9c5ba10887a0e7b8387ec20f287e9e2 /source3/lib/messages_util.c | |
parent | b47db91bafeee07b1671354dfde96b6513822521 (diff) | |
download | samba-d80193ca36f9ca516fbb1ee3a55c7eece3a6c90c.tar.gz samba-d80193ca36f9ca516fbb1ee3a55c7eece3a6c90c.tar.xz samba-d80193ca36f9ca516fbb1ee3a55c7eece3a6c90c.zip |
messaging: Define a binary format for message headers
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3/lib/messages_util.c')
-rw-r--r-- | source3/lib/messages_util.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/source3/lib/messages_util.c b/source3/lib/messages_util.c new file mode 100644 index 0000000000..24c364c145 --- /dev/null +++ b/source3/lib/messages_util.c @@ -0,0 +1,41 @@ +/* + * Unix SMB/CIFS implementation. + * Samba internal messaging functions + * Copyright (C) 2013 by Volker Lendecke + * + * 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 "replace.h" +#include "lib/util/samba_util.h" +#include "librpc/gen_ndr/server_id.h" +#include "lib/util/byteorder.h" +#include "messages_util.h" + +void message_hdr_put(uint8_t buf[MESSAGE_HDR_LENGTH], uint32_t msg_type, + struct server_id src, struct server_id dst) +{ + server_id_put(buf, dst); + server_id_put(buf + 24, src); + SIVAL(buf, 48, msg_type); +} + +void message_hdr_get(uint32_t *msg_type, struct server_id *src, + struct server_id *dst, + const uint8_t buf[MESSAGE_HDR_LENGTH]) +{ + server_id_get(dst, buf); + server_id_get(src, buf + 24); + *msg_type = IVAL(buf, 48); +} |