Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83 (MC830919); site mcvax.UUCP Path: utzoo!linus!philabs!mcvax!teus From: teus@mcvax.UUCP (Teus Hagen) Newsgroups: net.news.b Subject: news 2.10 Arpadate timezone bug Message-ID: <5402@mcvax.UUCP> Date: Wed, 28-Sep-83 19:19:35 EDT Article-I.D.: mcvax.5402 Posted: Wed Sep 28 19:19:35 1983 Date-Received: Fri, 30-Sep-83 21:57:19 EDT Organization: Math.Centre, Amsterdam Lines: 77 The arpadate routine in funcs.c (if you have sendmail change arpadate.c as well) does not check the string it gets from timezone. Probably in later UNIX systems (as f.i. 4.2 BSD) the timezone routine might give some strange strings! To be ARPA compatable we put the timezone one step back on daylight saving time. Changes to the arpadate routine: char * arpadate(...) { ... if ( (strncmp(p,"GMT",3)==0 || strncmp(p,"gmt",3)==0) && p[3] != '\0') { /* hours from GMT */ p += 3; *q++ = *p++; if (p[1] == ':') *q++ = '0'; else *q++ = *p++; *q++ = *p++; p++; /* skip ``:'' */ *q++ = *p++; *q++ = *p++; *q = '\0'; } else if( !fconvert(p,q) ) { *q++ = ' '; *q++ = *p++; *q++ = *p++; *q++ = *p++; *q = '\0'; } return (b); } /* convert foreign identifications to some ARPA interpretable form */ /* with dst we put the time zone one hour ahead */ struct foreign { char *f_from; char *f_to; } foreign[] = { {"eet", " -0200"}, /* eastern europe */ {"met", " -0100"}, /* middle europe */ {"wet", " gmt"}, /* western europe, and what for australia? */ {"eet dst", " -0300"}, /* daylight saving times */ {"met dst", " -0200"}, {"wet dst", " -0100"}, {NULL, NULL} }; fconvert( a, b ) register char *a; char *b; { register struct foreign *euptr; register char *ptr; extern makelower(); /* for news: for ( ptr = a; *ptr; ptr++ ) if ( isupper(*ptr) ) *ptr = tolower( *ptr ); */ makelower( a ); for ( euptr = &foreign[0]; euptr->f_from != NULL; euptr++ ) if ( strcmp(euptr->f_from, a) == 0 ) { ptr = euptr->f_to; while ( *ptr ) *b++ = *ptr++; *b = '\0'; return 1; } return 0; } -- Teus Hagen Center for Math., Comp. Science (CMCS) formerly Math. Centre (MC) mcvax!teus