summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/util/samba_util.h1
-rw-r--r--lib/util/server_id.c21
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h
index 274dde811c..26a5c6872b 100644
--- a/lib/util/samba_util.h
+++ b/lib/util/samba_util.h
@@ -899,6 +899,7 @@ char *data_path(TALLOC_CTX *mem_ctx, const char *name);
const char *shlib_ext(void);
struct server_id;
+bool server_id_equal(const struct server_id *p1, const struct server_id *p2);
char *server_id_str(TALLOC_CTX *mem_ctx, const struct server_id *id);
#endif /* _SAMBA_UTIL_H_ */
diff --git a/lib/util/server_id.c b/lib/util/server_id.c
index 195deeac7c..7370ad9335 100644
--- a/lib/util/server_id.c
+++ b/lib/util/server_id.c
@@ -20,6 +20,27 @@
#include "includes.h"
#include "librpc/gen_ndr/server_id.h"
+bool server_id_equal(const struct server_id *p1, const struct server_id *p2)
+{
+ if (p1->pid != p2->pid) {
+ return false;
+ }
+
+ if (p1->task_id != p2->task_id) {
+ return false;
+ }
+
+ if (p1->vnn != p2->vnn) {
+ return false;
+ }
+
+ if (p1->unique_id != p2->unique_id) {
+ return false;
+ }
+
+ return true;
+}
+
char *server_id_str(TALLOC_CTX *mem_ctx, const struct server_id *id)
{
if (id->vnn == NONCLUSTER_VNN && id->task_id == 0) {