From 9af73f62ce87cb5d1e050a58a581dee3d790d848 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 1 Jan 2017 20:00:55 +0000 Subject: [PATCH] lib: Add lib/util/server_id.h Signed-off-by: Volker Lendecke Reviewed-by: Ralph Boehme --- lib/util/debug_s3.c | 1 + lib/util/samba_util.h | 30 ------------ lib/util/server_id.c | 1 + lib/util/server_id.h | 56 +++++++++++++++++++++++ lib/util/server_id_db.c | 1 + source3/lib/dbwrap/dbwrap_watch.c | 1 + source3/lib/g_lock.c | 1 + source3/lib/messages.c | 1 + source3/lib/messages_ctdbd.c | 1 + source3/lib/messages_util.c | 1 + source3/lib/server_id_db_util.c | 1 + source3/lib/serverid.c | 1 + source3/lib/util.c | 1 + source3/locking/brlock.c | 1 + source3/locking/locking.c | 1 + source3/locking/posix.c | 1 + source3/locking/share_mode_lock.c | 1 + source3/rpc_server/srvsvc/srv_srvsvc_nt.c | 1 + source3/smbd/close.c | 1 + source3/smbd/durable.c | 1 + source3/smbd/notify_msg.c | 1 + source3/smbd/notifyd/notifyd.c | 1 + source3/smbd/open.c | 1 + source3/smbd/oplock.c | 1 + source3/smbd/scavenger.c | 2 +- source3/smbd/server.c | 1 + source3/smbd/sesssetup.c | 1 + source3/smbd/smbXsrv_client.c | 1 + source3/smbd/smbXsrv_open.c | 1 + source3/smbd/smbXsrv_session.c | 1 + source3/smbd/smbXsrv_tcon.c | 1 + source3/torture/msg_sink.c | 1 + source3/torture/msg_source.c | 1 + source3/utils/net_g_lock.c | 1 + source3/utils/net_notify.c | 1 + source3/utils/net_serverid.c | 1 + source3/utils/net_status.c | 1 + source3/utils/smbcontrol.c | 1 + source3/utils/status.c | 1 + source4/dsdb/samdb/ldb_modules/ridalloc.c | 1 + source4/lib/messaging/messaging.c | 1 + source4/smb_server/smb/receive.c | 1 + source4/smbd/service_stream.c | 1 + 43 files changed, 97 insertions(+), 31 deletions(-) create mode 100644 lib/util/server_id.h diff --git a/lib/util/debug_s3.c b/lib/util/debug_s3.c index b05d4225501..99ba2e7188d 100644 --- a/lib/util/debug_s3.c +++ b/lib/util/debug_s3.c @@ -19,6 +19,7 @@ */ #include "includes.h" +#include "lib/util/server_id.h" #include "librpc/gen_ndr/messaging.h" #include "messages.h" #include "lib/util/memory.h" diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h index c19e246bcd4..5dcaf947b38 100644 --- a/lib/util/samba_util.h +++ b/lib/util/samba_util.h @@ -688,36 +688,6 @@ char *data_path(TALLOC_CTX *mem_ctx, const char *name); **/ const char *shlib_ext(void); -struct server_id; - -struct server_id_buf { char buf[48]; }; /* probably a bit too large ... */ -char *server_id_str_buf(struct server_id id, struct server_id_buf *dst); -size_t server_id_str_buf_unique(struct server_id id, char *buf, size_t buflen); - -bool server_id_same_process(const struct server_id *p1, - const struct server_id *p2); -bool server_id_equal(const struct server_id *p1, const struct server_id *p2); -struct server_id server_id_from_string(uint32_t local_vnn, - const char *pid_string); - -/** - * Set the serverid to the special value that represents a disconnected - * client for (e.g.) durable handles. - */ -void server_id_set_disconnected(struct server_id *id); - -/** - * check whether a serverid is the special placeholder for - * a disconnected client - */ -bool server_id_is_disconnected(const struct server_id *id); - -#define SERVER_ID_BUF_LENGTH 24 -void server_id_put(uint8_t buf[SERVER_ID_BUF_LENGTH], - const struct server_id id); -void server_id_get(struct server_id *id, - const uint8_t buf[SERVER_ID_BUF_LENGTH]); - /* * Samba code should use samba_tevent_context_init() instead of * tevent_context_init() in order to get the debug output. diff --git a/lib/util/server_id.c b/lib/util/server_id.c index 77c5ee1c097..f8c9a53062c 100644 --- a/lib/util/server_id.c +++ b/lib/util/server_id.c @@ -18,6 +18,7 @@ */ #include "includes.h" +#include "lib/util/server_id.h" #include "librpc/gen_ndr/server_id.h" bool server_id_same_process(const struct server_id *p1, diff --git a/lib/util/server_id.h b/lib/util/server_id.h new file mode 100644 index 00000000000..6dda86ced73 --- /dev/null +++ b/lib/util/server_id.h @@ -0,0 +1,56 @@ +/* + Unix SMB/CIFS implementation. + Samba utility functions + Copyright (C) Andrew Bartlett 2011 + + 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 . +*/ + +#ifndef __LIB_UTIL_SERVER_ID_H__ +#define __LIB_UTIL_SERVER_ID_H__ + +#include "replace.h" + +struct server_id; + +struct server_id_buf { char buf[48]; }; /* probably a bit too large ... */ + +bool server_id_same_process(const struct server_id *p1, + const struct server_id *p2); +bool server_id_equal(const struct server_id *p1, const struct server_id *p2); +char *server_id_str_buf(struct server_id id, struct server_id_buf *dst); +size_t server_id_str_buf_unique(struct server_id id, char *buf, size_t buflen); + +struct server_id server_id_from_string(uint32_t local_vnn, + const char *pid_string); + +/** + * Set the serverid to the special value that represents a disconnected + * client for (e.g.) durable handles. + */ +void server_id_set_disconnected(struct server_id *id); + +/** + * check whether a serverid is the special placeholder for + * a disconnected client + */ +bool server_id_is_disconnected(const struct server_id *id); + +#define SERVER_ID_BUF_LENGTH 24 +void server_id_put(uint8_t buf[SERVER_ID_BUF_LENGTH], + const struct server_id id); +void server_id_get(struct server_id *id, + const uint8_t buf[SERVER_ID_BUF_LENGTH]); + +#endif diff --git a/lib/util/server_id_db.c b/lib/util/server_id_db.c index 1e65ce25426..e0b84768ffc 100644 --- a/lib/util/server_id_db.c +++ b/lib/util/server_id_db.c @@ -19,6 +19,7 @@ #include "replace.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "lib/util/server_id_db.h" #include "lib/tdb_wrap/tdb_wrap.h" #include "lib/util/strv.h" diff --git a/source3/lib/dbwrap/dbwrap_watch.c b/source3/lib/dbwrap/dbwrap_watch.c index a44f6f131f2..842ab861455 100644 --- a/source3/lib/dbwrap/dbwrap_watch.c +++ b/source3/lib/dbwrap/dbwrap_watch.c @@ -19,6 +19,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "dbwrap/dbwrap.h" #include "dbwrap_watch.h" #include "dbwrap_open.h" diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c index f9549789bee..18157968f51 100644 --- a/source3/lib/g_lock.c +++ b/source3/lib/g_lock.c @@ -19,6 +19,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" #include "dbwrap/dbwrap_watch.h" diff --git a/source3/lib/messages.c b/source3/lib/messages.c index 533e8694612..d7ad49d7c30 100644 --- a/source3/lib/messages.c +++ b/source3/lib/messages.c @@ -46,6 +46,7 @@ */ #include "includes.h" +#include "lib/util/server_id.h" #include "dbwrap/dbwrap.h" #include "serverid.h" #include "messages.h" diff --git a/source3/lib/messages_ctdbd.c b/source3/lib/messages_ctdbd.c index bee268500db..a32a80d2240 100644 --- a/source3/lib/messages_ctdbd.c +++ b/source3/lib/messages_ctdbd.c @@ -18,6 +18,7 @@ */ #include "includes.h" +#include "lib/util/server_id.h" #include "messages.h" #include "util_tdb.h" #include "lib/util/iov_buf.h" diff --git a/source3/lib/messages_util.c b/source3/lib/messages_util.c index 7c11ecf2f84..d712dfe401d 100644 --- a/source3/lib/messages_util.c +++ b/source3/lib/messages_util.c @@ -18,6 +18,7 @@ */ #include "replace.h" +#include "lib/util/server_id.h" #include "lib/util/samba_util.h" #include "librpc/gen_ndr/server_id.h" #include "lib/util/byteorder.h" diff --git a/source3/lib/server_id_db_util.c b/source3/lib/server_id_db_util.c index 6c6d8ed239a..e73af242139 100644 --- a/source3/lib/server_id_db_util.c +++ b/source3/lib/server_id_db_util.c @@ -19,6 +19,7 @@ #include "replace.h" #include "server_id_db_util.h" +#include "lib/util/server_id.h" #include "serverid.h" #include "lib/util/samba_util.h" diff --git a/source3/lib/serverid.c b/source3/lib/serverid.c index f2c64001d74..7cc8b57cbc0 100644 --- a/source3/lib/serverid.c +++ b/source3/lib/serverid.c @@ -19,6 +19,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "serverid.h" #include "util_tdb.h" #include "dbwrap/dbwrap.h" diff --git a/source3/lib/util.c b/source3/lib/util.c index 85cb9b39687..565d71cbf6c 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -24,6 +24,7 @@ #include "includes.h" #include "system/passwd.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "util_tdb.h" #include "ctdbd_conn.h" #include "../lib/util/util_pw.h" diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c index 70096d627f0..33efe37810b 100644 --- a/source3/locking/brlock.c +++ b/source3/locking/brlock.c @@ -26,6 +26,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "locking/proto.h" #include "smbd/globals.h" #include "dbwrap/dbwrap.h" diff --git a/source3/locking/locking.c b/source3/locking/locking.c index 5a9746094ba..e540ab4dcd8 100644 --- a/source3/locking/locking.c +++ b/source3/locking/locking.c @@ -37,6 +37,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "locking/proto.h" #include "smbd/globals.h" #include "dbwrap/dbwrap.h" diff --git a/source3/locking/posix.c b/source3/locking/posix.c index 432637a3dfe..ff794282114 100644 --- a/source3/locking/posix.c +++ b/source3/locking/posix.c @@ -23,6 +23,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "locking/proto.h" #include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_rbt.h" diff --git a/source3/locking/share_mode_lock.c b/source3/locking/share_mode_lock.c index f738323ef7c..0f4028c1030 100644 --- a/source3/locking/share_mode_lock.c +++ b/source3/locking/share_mode_lock.c @@ -37,6 +37,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "locking/proto.h" #include "smbd/globals.h" #include "dbwrap/dbwrap.h" diff --git a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c index 17172d27fe4..513ef17c903 100644 --- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c +++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c @@ -25,6 +25,7 @@ #include "includes.h" #include "system/passwd.h" +#include "lib/util/server_id.h" #include "ntdomain.h" #include "../librpc/gen_ndr/srv_srvsvc.h" #include "../libcli/security/security.h" diff --git a/source3/smbd/close.c b/source3/smbd/close.c index bc468c7e55d..095feecf204 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -21,6 +21,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "printing.h" #include "smbd/smbd.h" #include "smbd/globals.h" diff --git a/source3/smbd/durable.c b/source3/smbd/durable.c index f39a365242c..602a96e1fe5 100644 --- a/source3/smbd/durable.c +++ b/source3/smbd/durable.c @@ -22,6 +22,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "smbd/smbd.h" #include "smbd/globals.h" #include "libcli/security/security.h" diff --git a/source3/smbd/notify_msg.c b/source3/smbd/notify_msg.c index 20b286492e8..3787df74bfd 100644 --- a/source3/smbd/notify_msg.c +++ b/source3/smbd/notify_msg.c @@ -22,6 +22,7 @@ #include "librpc/gen_ndr/messaging.h" #include "lib/dbwrap/dbwrap.h" #include "lib/dbwrap/dbwrap_rbt.h" +#include "lib/util/server_id.h" #include "messages.h" #include "proto.h" #include "globals.h" diff --git a/source3/smbd/notifyd/notifyd.c b/source3/smbd/notifyd/notifyd.c index 70f52cd7c83..33a875a3732 100644 --- a/source3/smbd/notifyd/notifyd.c +++ b/source3/smbd/notifyd/notifyd.c @@ -19,6 +19,7 @@ #include "replace.h" #include +#include "lib/util/server_id.h" #include "lib/util/data_blob.h" #include "librpc/gen_ndr/notify.h" #include "librpc/gen_ndr/messaging.h" diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 42db659d402..404a259b57f 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -21,6 +21,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "printing.h" #include "smbd/smbd.h" #include "smbd/globals.h" diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c index ff87d9ea449..8e29f0db4b0 100644 --- a/source3/smbd/oplock.c +++ b/source3/smbd/oplock.c @@ -21,6 +21,7 @@ #define DBGC_CLASS DBGC_LOCKING #include "includes.h" +#include "lib/util/server_id.h" #include "smbd/smbd.h" #include "smbd/globals.h" #include "messages.h" diff --git a/source3/smbd/scavenger.c b/source3/smbd/scavenger.c index 9f58f62fc06..9b479a621e3 100644 --- a/source3/smbd/scavenger.c +++ b/source3/smbd/scavenger.c @@ -19,12 +19,12 @@ */ #include "includes.h" - #include "messages.h" #include "serverid.h" #include "smbd/globals.h" #include "smbd/scavenger.h" #include "locking/proto.h" +#include "lib/util/server_id.h" #include "lib/util/util_process.h" #include "lib/util/sys_rw_data.h" diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 3cbd08971fe..494e188308b 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -23,6 +23,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "popt_common.h" #include "smbd/smbd.h" #include "smbd/globals.h" diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c index c058eac3363..8ec60937155 100644 --- a/source3/smbd/sesssetup.c +++ b/source3/smbd/sesssetup.c @@ -24,6 +24,7 @@ #include "includes.h" #include "../lib/tsocket/tsocket.h" +#include "lib/util/server_id.h" #include "smbd/smbd.h" #include "smbd/globals.h" #include "auth.h" diff --git a/source3/smbd/smbXsrv_client.c b/source3/smbd/smbXsrv_client.c index ca04ae75ec7..30cf25276be 100644 --- a/source3/smbd/smbXsrv_client.c +++ b/source3/smbd/smbXsrv_client.c @@ -20,6 +20,7 @@ #include "includes.h" #include "system/filesys.h" #include +#include "lib/util/server_id.h" #include "smbd/smbd.h" #include "smbd/globals.h" #include "dbwrap/dbwrap.h" diff --git a/source3/smbd/smbXsrv_open.c b/source3/smbd/smbXsrv_open.c index fc7d4345067..17a73077572 100644 --- a/source3/smbd/smbXsrv_open.c +++ b/source3/smbd/smbXsrv_open.c @@ -20,6 +20,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "smbd/smbd.h" #include "smbd/globals.h" #include "dbwrap/dbwrap.h" diff --git a/source3/smbd/smbXsrv_session.c b/source3/smbd/smbXsrv_session.c index 381ce407c70..f84d2a94ce1 100644 --- a/source3/smbd/smbXsrv_session.c +++ b/source3/smbd/smbXsrv_session.c @@ -21,6 +21,7 @@ #include "includes.h" #include "system/filesys.h" #include +#include "lib/util/server_id.h" #include "smbd/smbd.h" #include "smbd/globals.h" #include "dbwrap/dbwrap.h" diff --git a/source3/smbd/smbXsrv_tcon.c b/source3/smbd/smbXsrv_tcon.c index ddd03f61090..82c880adc0b 100644 --- a/source3/smbd/smbXsrv_tcon.c +++ b/source3/smbd/smbXsrv_tcon.c @@ -20,6 +20,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "smbd/smbd.h" #include "smbd/globals.h" #include "dbwrap/dbwrap.h" diff --git a/source3/torture/msg_sink.c b/source3/torture/msg_sink.c index 158fe3c82fb..3c3dda3c779 100644 --- a/source3/torture/msg_sink.c +++ b/source3/torture/msg_sink.c @@ -19,6 +19,7 @@ #include "replace.h" #include "includes.h" +#include "lib/util/server_id.h" #include "messages.h" #include "lib/util/tevent_unix.h" #include diff --git a/source3/torture/msg_source.c b/source3/torture/msg_source.c index c15f24da9e1..e718018be98 100644 --- a/source3/torture/msg_source.c +++ b/source3/torture/msg_source.c @@ -19,6 +19,7 @@ #include "replace.h" #include "includes.h" +#include "lib/util/server_id.h" #include "messages.h" #include "lib/util/tevent_unix.h" #include diff --git a/source3/utils/net_g_lock.c b/source3/utils/net_g_lock.c index 5ac832a49a7..d786f5a4ecb 100644 --- a/source3/utils/net_g_lock.c +++ b/source3/utils/net_g_lock.c @@ -19,6 +19,7 @@ #include "includes.h" #include "net.h" +#include "lib/util/server_id.h" #include "g_lock.h" #include "messages.h" diff --git a/source3/utils/net_notify.c b/source3/utils/net_notify.c index 7138bcb2add..eddfb0ee5a8 100644 --- a/source3/utils/net_notify.c +++ b/source3/utils/net_notify.c @@ -18,6 +18,7 @@ #include "includes.h" #include "utils/net.h" +#include "lib/util/server_id.h" #include "lib/util/tevent_unix.h" #include "lib/util/server_id_db.h" #include "messages.h" diff --git a/source3/utils/net_serverid.c b/source3/utils/net_serverid.c index f228c91f536..942f7a49024 100644 --- a/source3/utils/net_serverid.c +++ b/source3/utils/net_serverid.c @@ -19,6 +19,7 @@ #include "includes.h" #include "utils/net.h" +#include "lib/util/server_id.h" #include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_rbt.h" #include "serverid.h" diff --git a/source3/utils/net_status.c b/source3/utils/net_status.c index 9dbb1a45847..0d658a0c36e 100644 --- a/source3/utils/net_status.c +++ b/source3/utils/net_status.c @@ -17,6 +17,7 @@ along with this program. If not, see . */ #include "includes.h" +#include "lib/util/server_id.h" #include "utils/net.h" #include "session.h" #include "messages.h" diff --git a/source3/utils/smbcontrol.c b/source3/utils/smbcontrol.c index 8c0f636957a..4c4bfcb4e5b 100644 --- a/source3/utils/smbcontrol.c +++ b/source3/utils/smbcontrol.c @@ -25,6 +25,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "popt_common.h" #include "librpc/gen_ndr/spoolss.h" #include "nt_printing.h" diff --git a/source3/utils/status.c b/source3/utils/status.c index f185663ec17..abc0d26df53 100644 --- a/source3/utils/status.c +++ b/source3/utils/status.c @@ -31,6 +31,7 @@ */ #include "includes.h" +#include "lib/util/server_id.h" #include "smbd/globals.h" #include "system/filesys.h" #include "popt_common.h" diff --git a/source4/dsdb/samdb/ldb_modules/ridalloc.c b/source4/dsdb/samdb/ldb_modules/ridalloc.c index d3463e6e7a0..730272a50ce 100644 --- a/source4/dsdb/samdb/ldb_modules/ridalloc.c +++ b/source4/dsdb/samdb/ldb_modules/ridalloc.c @@ -29,6 +29,7 @@ #include "includes.h" #include "ldb_module.h" +#include "lib/util/server_id.h" #include "dsdb/samdb/samdb.h" #include "dsdb/samdb/ldb_modules/util.h" #include "lib/messaging/irpc.h" diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c index 22d3ad87602..84df9345d80 100644 --- a/source4/lib/messaging/messaging.c +++ b/source4/lib/messaging/messaging.c @@ -21,6 +21,7 @@ #include "includes.h" #include "lib/events/events.h" +#include "lib/util/server_id.h" #include "system/filesys.h" #include "messaging/messaging.h" #include "../lib/util/dlinklist.h" diff --git a/source4/smb_server/smb/receive.c b/source4/smb_server/smb/receive.c index 94bd5ce7ad4..8a05ecee56f 100644 --- a/source4/smb_server/smb/receive.c +++ b/source4/smb_server/smb/receive.c @@ -21,6 +21,7 @@ #include "includes.h" #include "system/time.h" +#include "lib/util/server_id.h" #include "smbd/service_stream.h" #include "smb_server/smb_server.h" #include "system/filesys.h" diff --git a/source4/smbd/service_stream.c b/source4/smbd/service_stream.c index f0a379acf6a..22c885bbe2b 100644 --- a/source4/smbd/service_stream.c +++ b/source4/smbd/service_stream.c @@ -23,6 +23,7 @@ #include "includes.h" #include #include "process_model.h" +#include "lib/util/server_id.h" #include "lib/messaging/irpc.h" #include "cluster/cluster.h" #include "param/param.h" -- 2.34.1