summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-01-08 23:50:14 +0000
committerJeremy Allison <jra@samba.org>2002-01-08 23:50:14 +0000
commit9fb780d951babeaf5f5b82903c717ff5ccf831cd (patch)
tree09a28c2ff91d18bbf605676af8e09776284562e6
parent91662683e3e690fb69f333fadf0f317c53995ba7 (diff)
downloadsamba-9fb780d951babeaf5f5b82903c717ff5ccf831cd.tar.gz
samba-9fb780d951babeaf5f5b82903c717ff5ccf831cd.tar.xz
samba-9fb780d951babeaf5f5b82903c717ff5ccf831cd.zip
My previous fix had a bug....
This is SO NASTY as some drivers need this to change, others need it static. This value will change every second, and I must hope that this is enough..... DON'T CHANGE THIS CODE WITHOUT A TEST MATRIX THE SIZE OF UTAH ! Jeremy.
-rw-r--r--source/printing/nt_printing.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/source/printing/nt_printing.c b/source/printing/nt_printing.c
index 81866ca9e1a..b49767eac7f 100644
--- a/source/printing/nt_printing.c
+++ b/source/printing/nt_printing.c
@@ -2628,13 +2628,18 @@ void get_printer_subst_params(int snum, fstring *printername, fstring *sharename
/****************************************************************************
Update the changeid time.
+ This is SO NASTY as some drivers need this to change, others need it
+ static. This value will change every second, and I must hope that this
+ is enough..... DON'T CHANGE THIS CODE WITHOUT A TEST MATRIX THE SIZE OF
+ UTAH ! JRA.
****************************************************************************/
-static uint32 rev_changeid(uint32 changeid)
+static uint32 rev_changeid(void)
{
- if (changeid == 0)
- changeid = time(NULL);
- return changeid++;
+ static time_t start_time;
+ if (start_time == 0)
+ start_time = time(NULL);
+ return (((time(NULL) - start_time)+1)*1000);
}
/*
@@ -2667,7 +2672,7 @@ WERROR mod_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level)
of client's spoolss service in order for the
client's cache to show updates */
- printer.info_2->changeid = rev_changeid(printer.info_2->changeid);
+ printer.info_2->changeid = rev_changeid();
/*
* Because one day someone will ask:
@@ -2719,7 +2724,7 @@ WERROR add_a_printer(NT_PRINTER_INFO_LEVEL printer, uint32 level)
* --jerry
*/
- printer.info_2->changeid = rev_changeid(printer.info_2->changeid);
+ printer.info_2->changeid = rev_changeid();
printer.info_2->c_setprinter++;
result=update_a_printer_2(printer.info_2);