+/* $OpenLDAP$ */
/*
* Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
#include "portable.h"
#include <stdio.h>
-#include <stdlib.h>
+
+#include <ac/socket.h>
+#include <ac/stdlib.h>
#include <ac/ctype.h>
#include <ac/string.h>
#include <sys/file.h>
#endif
-#include "lber.h"
-#include "ldap.h"
+#include <ldap.h>
+#include <disptmpl.h>
#include "ldap_log.h"
-#include "disptmpl.h"
#include "ldap-int.h"
-#include "ldapconfig.h"
+#include "ldap_defaults.h"
+
+#define writeptype ldap_writeptype
/* local functions */
static int do_entry2text LDAP_P((
#define OCATTRNAME "objectClass"
-#define NONFATAL_LDAP_ERR( err ) ( err == LDAP_SUCCESS || \
- err == LDAP_TIMELIMIT_EXCEEDED || err == LDAP_SIZELIMIT_EXCEEDED )
+#define NONFATAL_LDAP_ERR( err ) ( (err) == LDAP_SUCCESS || \
+ (err) == LDAP_TIMELIMIT_EXCEEDED || (err) == LDAP_SIZELIMIT_EXCEEDED )
#define DEF_LDAP_URL_PREFIX "ldap:///"
}
if ( buf == NULL ) {
- if (( buf = malloc( LDAP_DTMPL_BUFSIZ )) == NULL ) {
+ if (( buf = LDAP_MALLOC( LDAP_DTMPL_BUFSIZ )) == NULL ) {
ld->ld_errno = LDAP_NO_MEMORY;
- free( dn );
+ LDAP_FREE( dn );
return( ld->ld_errno );
}
freebuf = 1;
}
} else {
for ( rowp = ldap_first_tmplrow( tmpl );
- NONFATAL_LDAP_ERR( err ) && rowp != NULLTMPLITEM;
+ NONFATAL_LDAP_ERR( err ) && rowp != NULL;
rowp = ldap_next_tmplrow( tmpl, rowp )) {
- for ( colp = ldap_first_tmplcol( tmpl, rowp ); colp != NULLTMPLITEM;
+ for ( colp = ldap_first_tmplcol( tmpl, rowp ); colp != NULL;
colp = ldap_next_tmplcol( tmpl, rowp, colp )) {
vals = NULL;
if ( colp->ti_attrname == NULL || ( vals = ldap_get_values( ld,
(*writeproc)( writeparm, buf, strlen( buf ));
}
- free( dn );
+ LDAP_FREE( dn );
if ( freebuf ) {
- free( buf );
+ LDAP_FREE( buf );
}
return( err );
struct ldap_disptmpl *tmpl;
struct timeval timeout;
- if ( dn == NULL && entry == NULLMSG ) {
+ if ( dn == NULL && entry == NULL ) {
ld->ld_errno = LDAP_PARAM_ERROR;
return( ld->ld_errno );
}
timeout.tv_sec = SEARCH_TIMEOUT_SECS;
timeout.tv_usec = 0;
- if (( buf = malloc( LDAP_DTMPL_BUFSIZ )) == NULL ) {
+ if (( buf = LDAP_MALLOC( LDAP_DTMPL_BUFSIZ )) == NULL ) {
ld->ld_errno = LDAP_NO_MEMORY;
return( ld->ld_errno );
}
if ( dn == NULL ) {
if (( dn = ldap_get_dn( ld, entry )) == NULL ) {
- free( buf );
+ LDAP_FREE( buf );
if ( freetmpls ) {
ldap_free_templates( tmpllist );
}
if ( tmpllist != NULL ) {
- ldmp = NULLMSG;
+ ldmp = NULL;
if ( entry == NULL ) {
char *ocattrs[2];
fetchattrs, 0, &timeout, &ldmp );
if ( freedn ) {
- free( dn );
+ LDAP_FREE( dn );
}
if ( fetchattrs != NULL ) {
ldap_value_free( fetchattrs );
if ( freetmpls ) {
ldap_free_templates( tmpllist );
}
- free( buf );
+ LDAP_FREE( buf );
return( ld->ld_errno );
}
err = do_entry2text( ld, buf, base, entry, tmpl, defattrs, defvals,
writeproc, writeparm, eol, rdncount, opts, urlprefix );
- free( buf );
+ LDAP_FREE( buf );
if ( freetmpls ) {
ldap_free_templates( tmpllist );
}
}
if ( buf == NULL ) {
- if (( buf = malloc( LDAP_DTMPL_BUFSIZ )) == NULL ) {
+ if (( buf = LDAP_MALLOC( LDAP_DTMPL_BUFSIZ )) == NULL ) {
ld->ld_errno = LDAP_NO_MEMORY;
return( ld->ld_errno );
}
}
if ( freebuf ) {
- free( buf );
+ LDAP_FREE( buf );
}
return( LDAP_SUCCESS );
maxlen = 0;
- for ( rowp = ldap_first_tmplrow( tmpl ); rowp != NULLTMPLITEM;
+ for ( rowp = ldap_first_tmplrow( tmpl ); rowp != NULL;
rowp = ldap_next_tmplrow( tmpl, rowp )) {
- for ( colp = ldap_first_tmplcol( tmpl, rowp ); colp != NULLTMPLITEM;
+ for ( colp = ldap_first_tmplcol( tmpl, rowp ); colp != NULL;
colp = ldap_next_tmplcol( tmpl, rowp, colp )) {
if (( len = strlen( colp->ti_label )) > maxlen ) {
maxlen = len;
-#define HREF_CHAR_ACCEPTABLE( c ) (( c >= '-' && c <= '9' ) || \
- ( c >= '@' && c <= 'Z' ) || \
- ( c == '_' ) || \
- ( c >= 'a' && c <= 'z' ))
+#define HREF_CHAR_ACCEPTABLE( c ) (( (c) >= '-' && (c) <= '9' ) || \
+ ( (c) >= '@' && (c) <= 'Z' ) || \
+ ( (c) == '_' ) || \
+ ( (c) >= 'a' && (c) <= 'z' ))
static void
strcat_escaped( char *s1, char *s2 )
}
-#define GET2BYTENUM( p ) (( *p - '0' ) * 10 + ( *(p+1) - '0' ))
+#define GET2BYTENUM( p ) (( *(p) - '0' ) * 10 + ( *((p)+1) - '0' ))
static char *
time2text( char *ldtimestr, int dateonly )
/* POSIX says tm_year should be year - 1900 */
t.tm_year = 100 * GET2BYTENUM( p ) - 1900;
p += 2;
+ t.tm_year += GET2BYTENUM( p ); p += 2;
+
+ } else {
+ /* came without a century */
+ t.tm_year = GET2BYTENUM( p ); p += 2;
+
+ /* Y2K hack - 2 digit years < 70 are 21st century */
+ if( t.tm_year < 70 ) {
+ t.tm_year += 100;
+ }
}
- t.tm_year = GET2BYTENUM( p ); p += 2;
t.tm_mon = GET2BYTENUM( p ) - 1; p += 2;
t.tm_mday = GET2BYTENUM( p ); p += 2;
This routine was supplied by Mike Accetta at CMU many years ago.
*/
-static int dmsize[] = {
+static const int dmsize[] = {
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
/*
* Y2K YEAR
*/
- /* per POSIX tm_year should be offset by 1900 */
+ /* per STDC & POSIX tm_year should be offset by 1900 */
#define YEAR_POSIX(y) ((y) + 1900)
/*
*/
#define YEAR_CAREFUL(y) ((y) < 1900 ? (y) + 1900 : (y))
- /*
- ** if year is < 1990 and < 70 must be offset by 2000 as Unix epoch
- ** started in 1970. if year is < 1990 but >= 70, offset by 1900.
- ** if year is >= 1900, it must be the real year.
- */
-#define YEAR_PEDANTIC(y) ((y) < 1900 \
- ? ((y) < 70 ? (y) + 2000 ? (y) + 1900) \
- : (y))
-
#define YEAR(y) YEAR_CAREFUL(y)
/* \f */
return( LDAP_PARAM_ERROR );
} else if ( strcasecmp( attr, "-dnt" ) == 0 ) {
value = dn;
+ } else if ( strcasecmp( attr, "-dn" ) == 0 ) {
+ value = dn;
} else if (( vals = ldap_get_values( ld, entry, attr )) != NULL ) {
value = vals[ 0 ];
} else {
if ( lderr == LDAP_SUCCESS || NONFATAL_LDAP_ERR( lderr )) {
if (( count = ldap_count_entries( ld, ldmp )) > 0 ) {
- if (( members = (char **)malloc( (count + 1) * sizeof(char *)))
+ if (( members = (char **)LDAP_MALLOC( (count + 1) * sizeof(char *)))
== NULL ) {
err = LDAP_NO_MEMORY;
} else {