The libsmbclient sets improper times on files when cli_setattrE function is
used. This is because it does call a function put_dos_date3 to convert the times
to dos format, but the function does not really do anything other than adding a
few hours to convert the localtime to GMT time.
Also, cli_setatr does a conversion to the dos format when it should not be doing
so. The function however works (with the discrepancy of a few hours) because the
conversion never really happens in time.c.
I am attaching the patches as diff -u oldfile newfile.
The first patch is for time.c amd the next for clifile.c.
Created attachment 1186 [details]
Patch for time.c
Patches for the make_unix_date3 and put_dos_date3 functions.
Created attachment 1187 [details]
Patch for clifile.c
Patch for the cli_setatr function.
wrong timestamp formatting and parsing functions were being called.
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.