X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-monitor%2Ftime.c;h=a015cdfc9bd0328988adcdc515459c6b3b83b457;hb=89812424f4f844053cc2607e3e5e9382b0825bb8;hp=5327f5206fa559e8c895a955de49255a258cb177;hpb=674e71710ff06b131351b414668fa9b8cd5b53da;p=openldap diff --git a/servers/slapd/back-monitor/time.c b/servers/slapd/back-monitor/time.c index 5327f5206f..a015cdfc9b 100644 --- a/servers/slapd/back-monitor/time.c +++ b/servers/slapd/back-monitor/time.c @@ -2,7 +2,8 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2003 The OpenLDAP Foundation. + * Copyright 2001-2004 The OpenLDAP Foundation. + * Portions Copyright 2001-2003 Pierangelo Masarati. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -17,34 +18,6 @@ * This work was initially developed by Pierangelo Masarati for inclusion * in OpenLDAP Software. */ -/* This is an altered version */ -/* - * Copyright 2001, Pierangelo Masarati, All rights reserved. - * - * This work has beed deveolped for the OpenLDAP Foundation - * in the hope that it may be useful to the Open Source community, - * but WITHOUT ANY WARRANTY. - * - * Permission is granted to anyone to use this software for any purpose - * on any computer system, and to alter it and redistribute it, subject - * to the following restrictions: - * - * 1. The author and SysNet s.n.c. are not responsible for the consequences - * of use of this software, no matter how awful, even if they arise from - * flaws in it. - * - * 2. The origin of this software must not be misrepresented, either by - * explicit claim or by omission. Since few users ever read sources, - * credits should appear in the documentation. - * - * 3. Altered versions must be plainly marked as such, and must not be - * misrepresented as being the original software. Since few users - * ever read sources, credits should appear in the documentation. - * SysNet s.n.c. cannot be responsible for the consequences of the - * alterations. - * - * 4. This notice may not be removed or altered. - */ #include "portable.h" @@ -235,6 +208,9 @@ monitor_subsys_time_update( if ( strncmp( e->e_nname.bv_val, "cn=current", sizeof("cn=current") - 1 ) == 0 ) { struct tm *tm; +#ifdef HAVE_GMTIME_R + struct tm tm_buf; +#endif char tmbuf[ LDAP_LUTIL_GENTIME_BUFSIZE ]; Attribute *a; ber_len_t len; @@ -242,15 +218,27 @@ monitor_subsys_time_update( currtime = slap_get_time(); +#ifndef HAVE_GMTIME_R ldap_pvt_thread_mutex_lock( &gmtime_mutex ); +#endif #ifdef HACK_LOCAL_TIME +# ifdef HAVE_LOCALTIME_R + tm = localtime_r( &currtime, &tm_buf ); +# else tm = localtime( &currtime ); +# endif /* HAVE_LOCALTIME_R */ lutil_localtime( tmbuf, sizeof( tmbuf ), tm, -timezone ); #else /* !HACK_LOCAL_TIME */ +# ifdef HAVE_GMTIME_R + tm = gmtime_r( &currtime, &tm_buf ); +# else tm = gmtime( &currtime ); +# endif /* HAVE_GMTIME_R */ lutil_gentime( tmbuf, sizeof( tmbuf ), tm ); #endif /* !HACK_LOCAL_TIME */ +#ifndef HAVE_GMTIME_R ldap_pvt_thread_mutex_unlock( &gmtime_mutex ); +#endif len = strlen( tmbuf );