Samba 3.0 alpha 20 problem with timegm->mktime() on HP-UX

Clive.Elsum at csiro.au Clive.Elsum at csiro.au
Thu Nov 28 00:18:01 GMT 2002


I have already included a fix for this which you could try. See previous
e-mail to Andrew and samba-technical attached. Hopefully this will be
adopted as a fix at some stage.

Andrew,

Another suggestion which appears to work without a kludge is a very minor
mod to the code originally contributed by Roger Beeman <beeman at cisco.com>,
with the help of Mark Baushke <mdb at cisco.com> and the rest of the Gurus at
CISCO. Further improved by Roger with assistance from Edward J. Sabol based
on input by Jamie Zawinski. 
Setting this as a timegm replacement within lib/replace.c overcomes the need
to reset TIMEZONE.


 time_t timegm(struct tm *t)
{
  time_t tl, tb;
  struct tm *tg;

  tl = mktime (t);
  if (tl == -1)
    {
      t->tm_hour--;
      tl = mktime (t);
      if (tl == -1)
        return -1; /* can't deal with output from strptime */
      tl += 3600;
    }
  tg = gmtime (&tl);
  tg->tm_isdst = 0;
  tb = mktime (tg);
  if (tb == -1)
    {
      tg->tm_hour--;
      tb = mktime (tg);
      if (tb == -1)
        return -1; /* can't deal with output from gmtime */
      tb += 3600;
    }
  return (tl - (tb - tl));
}

---------------------------------------------------------------------
Clive Elsum BAppSc, RHCE
Systems Engineer - Information Technology Group
CSIRO Atmospheric Research
PMB 1, Aspendale, Victoria, Australia  3195
Phone : (+61 3) 9239 4509
Fax:    (+61 3) 9239 4444
E-mail Clive.Elsum at csiro.au
---------------------------------------------------------------------



-----Original Message-----
From: P Ranjit Kumar [mailto:ranjit at cup.hp.com] 
Sent: Thursday, 28 November 2002 11:07 AM
To: samba-technical at lists.samba.org
Subject: Samba 3.0 alpha 20 problem with timegm->mktime() on HP-UX

Hi

I had a problem with net ads join on HP-UX. I used mktime() instead of the
timegm() that was used in Samba 3.0 alpha 20.

net ads join gives error saying that the times are out of sync (Windows 2000
DC and Samba HP Unix Box)

But they are in perfectly in sync. mktime() interprets the time as local
time (PST8PDT). You need to set the TZ environment variable to GMT to solve
the problem and get it working.

If I come up with a programatic solution to this issue, I will leave it on
the mailing list.

- Ranjit
@ HP CIFS Team.



More information about the samba-technical mailing list