spoolss: Fix caching of printername->sharename
authorVolker Lendecke <vl@samba.org>
Wed, 12 Oct 2016 09:06:51 +0000 (11:06 +0200)
committerGünther Deschner <gd@samba.org>
Thu, 13 Oct 2016 11:48:52 +0000 (13:48 +0200)
time_mono() gives seconds since boot, gencache expects seconds since epoch.
With time_mono(), the values are always expired immediately.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=12374

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Autobuild-User(master): Günther Deschner <gd@samba.org>
Autobuild-Date(master): Thu Oct 13 13:48:52 CEST 2016 on sn-devel-144

source3/rpc_server/spoolss/srv_spoolss_nt.c

index c8ff44960d045948329893aaeba46ff5149ca999..9f1d44ff2528b9f91eda2a54560074842cc24347 100644 (file)
@@ -705,13 +705,13 @@ static WERROR set_printer_hnd_name(TALLOC_CTX *mem_ctx,
 
        if (!found) {
                gencache_set(cache_key, printer_not_found,
-                            time_mono(NULL) + 300);
+                            time(NULL) + 300);
                TALLOC_FREE(cache_key);
                DEBUGADD(4,("Printer not found\n"));
                return WERR_INVALID_PRINTER_NAME;
        }
 
-       gencache_set(cache_key, sname, time_mono(NULL) + 300);
+       gencache_set(cache_key, sname, time(NULL) + 300);
        TALLOC_FREE(cache_key);
 
        DEBUGADD(4,("set_printer_hnd_name: Printer found: %s -> %s\n", aprinter, sname));