mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-18 18:18:06 -05:00
version checking and empty nvals fix
This commit is contained in:
parent
d6ed1dd3b3
commit
801bf7f561
3 changed files with 48 additions and 10 deletions
|
|
@ -18,7 +18,7 @@ XXLIBS = $(SECURITY_LIBS) $(LDIF_LIBS) $(LUTIL_LIBS)
|
|||
XSRCS = ldsversion.c ldmversion.c lddversion.c ldrversion.c \
|
||||
ldpversion.c ldwversion.c ldcversion.c
|
||||
|
||||
PROGRAMS = ldapsearch ldapmodify ldapdelete ldapmodrdn ldapadd \
|
||||
PROGRAMS = ldapsearch ldapmodify ldapdelete ldapmodrdn \
|
||||
ldappasswd ldapwhoami ldapcompare
|
||||
|
||||
|
||||
|
|
@ -43,11 +43,6 @@ ldapwhoami: ldwversion.o
|
|||
ldapcompare: ldcversion.o
|
||||
$(LTLINK) -o $@ ldapcompare.o common.o ldcversion.o $(LIBS)
|
||||
|
||||
ldapadd: ldapmodify
|
||||
@-$(RM) $@$(EXEEXT)
|
||||
$(LN_H) ldapmodify$(EXEEXT) ldapadd$(EXEEXT)
|
||||
|
||||
|
||||
ldsversion.c: ldapsearch.o common.o $(XLIBS)
|
||||
@-$(RM) $@
|
||||
$(MKVERSION) $(MKVOPTS) ldapsearch > $@
|
||||
|
|
|
|||
|
|
@ -455,9 +455,52 @@ tool_args( int argc, char **argv )
|
|||
}
|
||||
}
|
||||
|
||||
if (version) {
|
||||
fprintf( stderr, "%s: %s", prog, __Version );
|
||||
if (version > 1) exit( EXIT_SUCCESS );
|
||||
{
|
||||
/* prevent bad linking */
|
||||
LDAPAPIInfo api;
|
||||
api.ldapai_info_version = LDAP_API_INFO_VERSION;
|
||||
|
||||
if ( ldap_get_option(NULL, LDAP_OPT_API_INFO, &api)
|
||||
!= LDAP_OPT_SUCCESS )
|
||||
{
|
||||
fprintf( stderr, "%s: ldap_get_option(API_INFO) failed\n", prog );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if (api.ldapai_info_version != LDAP_API_INFO_VERSION) {
|
||||
fprintf( stderr, "LDAP APIInfo version mismatch: "
|
||||
"got %d, expected %d\n",
|
||||
api.ldapai_info_version, LDAP_API_INFO_VERSION );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if( api.ldapai_api_version != LDAP_API_VERSION ) {
|
||||
fprintf( stderr, "LDAP API version mismatch: "
|
||||
"got %d, expected %d\n",
|
||||
api.ldapai_api_version, LDAP_API_VERSION );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if( strcmp(api.ldapai_vendor_name, LDAP_VENDOR_NAME ) != 0 ) {
|
||||
fprintf( stderr, "LDAP vendor name mismatch: "
|
||||
"got %s, expected %s\n",
|
||||
api.ldapai_vendor_name, LDAP_VENDOR_NAME );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if( api.ldapai_vendor_version != LDAP_VENDOR_VERSION ) {
|
||||
fprintf( stderr, "LDAP vendor version mismatch: "
|
||||
"got %d, expected %d\n",
|
||||
api.ldapai_vendor_version, LDAP_VENDOR_VERSION );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if (version) {
|
||||
fprintf( stderr, "%s: %s\t(LDAP library: %s %d)\n",
|
||||
prog, __Version,
|
||||
LDAP_VENDOR_NAME, LDAP_VENDOR_VERSION );
|
||||
if (version > 1) exit( EXIT_SUCCESS );
|
||||
}
|
||||
}
|
||||
|
||||
if (protocol == -1)
|
||||
|
|
|
|||
|
|
@ -1313,7 +1313,7 @@ print_entry(
|
|||
{
|
||||
if (bv.bv_val == NULL) break;
|
||||
|
||||
if ( attrsonly ) {
|
||||
if ( attrsonly || !bvals ) {
|
||||
write_ldif( LDIF_PUT_NOVALUE, bv.bv_val, NULL, 0 );
|
||||
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in a new issue