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 | |
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>
-rw-r--r-- | source3/lib/messages_util.c | 41 | ||||
-rw-r--r-- | source3/lib/messages_util.h | 33 | ||||
-rwxr-xr-x | source3/wscript_build | 5 |
3 files changed, 79 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); +} diff --git a/source3/lib/messages_util.h b/source3/lib/messages_util.h new file mode 100644 index 0000000000..5b22f5e986 --- /dev/null +++ b/source3/lib/messages_util.h @@ -0,0 +1,33 @@ +/* + * 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/>. + */ + +#ifndef _MESSAGES_UTIL_H_ +#define _MESSAGES_UTIL_H_ + +struct message_hdr; + +#define MESSAGE_HDR_LENGTH 52 + +void message_hdr_put(uint8_t buf[MESSAGE_HDR_LENGTH], uint32_t msg_type, + struct server_id src, struct server_id dst); +void message_hdr_get(uint32_t *msg_type, struct server_id *src, + struct server_id *dst, + const uint8_t buf[MESSAGE_HDR_LENGTH]); + +#endif diff --git a/source3/wscript_build b/source3/wscript_build index cb17ab4977..ce8ee13cfe 100755 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -313,6 +313,11 @@ bld.SAMBA3_LIBRARY('messages_dgm', deps='talloc UNIX_MSG POLL_FUNCS_TEVENT samba-debug', private_library=True) +bld.SAMBA3_LIBRARY('messages_util', + source='''lib/messages_util.c''', + deps='samba-util', + private_library=True) + bld.SAMBA3_SUBSYSTEM('samba3core', source='''lib/messages.c lib/util_cluster.c |