s3-rpc_client: add spoolss_driver_version_to_qword()
authorGünther Deschner <gd@samba.org>
Fri, 23 Sep 2016 15:11:27 +0000 (17:11 +0200)
committerUri Simchoni <uri@samba.org>
Mon, 26 Sep 2016 18:24:18 +0000 (20:24 +0200)
Guenther

Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Uri Simchoni <uri@samba.org>
source3/rpc_client/init_spoolss.c
source3/rpc_client/init_spoolss.h

index b4e3daac8fc1f7c3f7047aa78c8d738828f0fde6..14370d8c69c7e14e72abca3cee962cf1c3379a80 100644 (file)
@@ -91,6 +91,26 @@ bool spoolss_timestr_to_NTTIME(const char *str,
        return true;
 }
 
+/*******************************************************************
+ ********************************************************************/
+
+bool spoolss_driver_version_to_qword(const char *str,
+                                    uint64_t *data)
+{
+       unsigned int v1, v2, v3, v4;
+
+       if (sscanf(str, "%u.%u.%u.%u", &v1, &v2, &v3, &v4) != 4) {
+               return false;
+       }
+
+       *data = ((uint64_t)(v1 & 0xFFFF) << 48) +
+               ((uint64_t)(v2 & 0xFFFF) << 32) +
+               ((uint64_t)(v3 & 0xFFFF) << 16) +
+               (uint64_t)(v4 & 0xFFFF);
+
+       return true;
+}
+
 /*******************************************************************
  ********************************************************************/
 
index 10c899df29e41fb05143fe38ac5b9c18ddb71308..28dbb1b7b8b56b259a5b7787bf8b286a1f3cc81e 100644 (file)
@@ -27,6 +27,8 @@ bool init_systemtime(struct spoolss_Time *r,
 time_t spoolss_Time_to_time_t(const struct spoolss_Time *r);
 bool spoolss_timestr_to_NTTIME(const char *str,
                               NTTIME *data);
+bool spoolss_driver_version_to_qword(const char *str,
+                                    uint64_t *data);
 WERROR pull_spoolss_PrinterData(TALLOC_CTX *mem_ctx,
                                const DATA_BLOB *blob,
                                union spoolss_PrinterData *data,