From 2c12b516a98778baf6a0aa06c70e94bded1b48ed Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 29 Sep 2015 20:16:56 +0200 Subject: [PATCH] lib: Add "pid/unique" format for server_id_from_string Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- lib/util/server_id.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/util/server_id.c b/lib/util/server_id.c index d1de8f13572..83a262d1374 100644 --- a/lib/util/server_id.c +++ b/lib/util/server_id.c @@ -103,6 +103,14 @@ struct server_id server_id_from_string(uint32_t local_vnn, * smbclient. */ + result = templ; + ret = sscanf(pid_string, "%"SCNu32":%"SCNu64".%"SCNu32"/%"SCNu64, + &result.vnn, &result.pid, &result.task_id, + &result.unique_id); + if (ret == 4) { + return result; + } + result = templ; ret = sscanf(pid_string, "%"SCNu32":%"SCNu64".%"SCNu32, &result.vnn, &result.pid, &result.task_id); @@ -110,6 +118,13 @@ struct server_id server_id_from_string(uint32_t local_vnn, return result; } + result = templ; + ret = sscanf(pid_string, "%"SCNu32":%"SCNu64"/%"SCNu64, + &result.vnn, &result.pid, &result.unique_id); + if (ret == 3) { + return result; + } + result = templ; ret = sscanf(pid_string, "%"SCNu32":%"SCNu64, &result.vnn, &result.pid); @@ -117,6 +132,14 @@ struct server_id server_id_from_string(uint32_t local_vnn, return result; } + result = templ; + ret = sscanf(pid_string, "%"SCNu64".%"SCNu32"/%"SCNu64, + &result.pid, &result.task_id, &result.unique_id); + if (ret == 3) { + result.vnn = local_vnn; + return result; + } + result = templ; ret = sscanf(pid_string, "%"SCNu64".%"SCNu32, &result.pid, &result.task_id); @@ -125,6 +148,14 @@ struct server_id server_id_from_string(uint32_t local_vnn, return result; } + result = templ; + ret = sscanf(pid_string, "%"SCNu64"/%"SCNu64, + &result.pid, &result.unique_id); + if (ret == 2) { + result.vnn = local_vnn; + return result; + } + result = templ; ret = sscanf(pid_string, "%"SCNu64, &result.pid); if (ret == 1) {