On 18 Aug 2007 at 11:00, Ryan Novosielski wrote:

> Dan Langille wrote:
> > On 18 Aug 2007 at 2:00, Per olof Ljungmark wrote:
> > 
> >> Since upgrading to 2.2.0 bsmtp sets the wrong Date: header in the mail:
> >> Date: Sat, 18 Aug 2007 01:48:56 +0000 (CEST)
> >>
> >> For the recipient the above message appears to have been receieved at 
> >> 03:48, two hours ahead.
> >>
> >> The correct timezone is UTC +2, the above header should have read
> >> Date: Sat, 18 Aug 2007 01:48:56 +0200 (CEST)
> >>                                    ^
> >> Again, this might be FreeBSD specific just as my last report.
> > 
> > This just in (at 23:22 local time):
> > 
> > Date: Fri, 17 Aug 2007 23:19:12 +0000 (EDT)
> > 
> > Compare that to an email generated via: echo 'test' | mail dan
> > 
> > Fri, 17 Aug 2007 23:21:39 -0400 (EDT)
> > 
> > It's getting the timezone wrong.  In my case, it should be -0400.  I 
> > won't have time to look at this until Saturday afternoon.
> 
> I'd like to chime in that it is NOT just FreeBSD, but at least also
> Solaris. I've had this problem with Solaris and Horde/IMP before as
> well, so I never reported it on the Bacula list figuring it was really
> not their problem. My Bacula director is Solaris 9. I don't know how 10
> would change this.

Good.  Good to know.  Thank you.

Perhaps it was this commit:

http://bacula.svn.sourceforge.net/viewvc/bacula/trunk/bacula/src/tools
/bsmtp.c?view=diff&r1=4789&r2=479

If you look at older versions of bsmtp, and I think that's where the 
problem is, you see this (look around line 353):

http://bacula.svn.sourceforge.net/viewvc/bacula/trunk/bacula/src/tools
/bsmtp.c?view=diff&r1=2835&r2=283

The code used to do:

  strftime(buf, sizeof(buf), "%a, %d %b %Y %H:%M:%S %z", &tm)

Where the %z (time zone offset, e.g. -04) is the time zone.  For some 
reason, this is now done as a different step (see the first URL) and 
uses %Z (time zone name, eg. EST)

This patch fixes the problem for me, but I suspect there were some 
special issues attempted by the original code that my fix does not 
address.

--- src/tools/bsmtp.c~  Sat Aug 18 16:33:26 2007
+++ src/tools/bsmtp.c   Sat Aug 18 16:33:26 2007
@@ -194,11 +194,7 @@
    gettimeofday(&tv, &tz);
    my_timezone = tz.tz_minuteswest; /* timezone offset in mins */
 #endif
-   strftime(buf, buf_len, "%a, %d %b %Y %H:%M:%S", &tm);
-   sprintf(tzbuf, " %+2.2ld%2.2u", -my_timezone / 60, 
abs(my_timezone) % 60);
-   strcat(buf, tzbuf);              /* add +0100 */
-   strftime(tzbuf, sizeof(tzbuf), " (%Z)", &tm);
-   strcat(buf, tzbuf);              /* add (CEST) */
+   strftime(buf, buf_len, "%a, %d %b %Y %H:%M:%S %z %Z", &tm);
 }
 
 


-- 
Dan Langille - http://www.langille.org/
Available for hire: http://www.freebsddiary.org/dan_langille.php



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to