Hi,
 
 I have not had any feedback on the replacement module for timegm within 
/lib/replace.c. This fix allows a correct Solaris build, without it Clock Skew
 errors occur unless the machine is dropped back to GMT. Is there any chance of 
this being implemented?
 
 Thanks in advance
 
 Clive
 
Original message attached

Delivered-To: [EMAIL PROTECTED]
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED], [EMAIL PROTECTED]
Subject: FIX to RE: Cannot get net ads  join to work under Solaris 8 
MIME-Version: 1.0
X-BeenThere: [EMAIL PROTECTED]
X-Mailman-Version: 2.0.13
List-Help: <mailto:[EMAIL PROTECTED]?subject=help>
List-Post: <mailto:[EMAIL PROTECTED]>
List-Subscribe: <http://lists.samba.org/mailman/listinfo/samba-technical>, 
<mailto:[EMAIL PROTECTED]?subject=subscribe>
List-Id: Discussions on Samba internals.  For general questions please subscribe 
to the list [EMAIL PROTECTED] <samba-technical.lists.samba.org>
List-Unsubscribe: <http://lists.samba.org/mailman/listinfo/samba-technical>, 
<mailto:[EMAIL PROTECTED]?subject=unsubscribe>
 List-Archive: <http://lists.samba.org/pipermail/samba-technical/>
X-Original-Date: Sun, 17 Nov 2002 19:33:23 +1100
Date: Sun, 17 Nov 2002 19:33:23 +1100

Andrew,

Another suggestion which appears to work without a kludge is a very minor
mod to the code originally contributed by Roger Beeman <[EMAIL PROTECTED]>,
with the help of Mark Baushke <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED]
---------------------------------------------------------------------



Reply via email to