X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fabandon.c;h=80dadc325b23fe3f219ef0b649875b3e42ceb147;hb=a2eec74fc1d535fa9092f4d7b82a669b39eef539;hp=8220e47a99672fe6accb95c81a7cfc3e57717545;hpb=f61152ccbd54573573f27dba8f94e88dd2f41f61;p=openldap diff --git a/libraries/libldap/abandon.c b/libraries/libldap/abandon.c index 8220e47a99..80dadc325b 100644 --- a/libraries/libldap/abandon.c +++ b/libraries/libldap/abandon.c @@ -147,10 +147,26 @@ do_abandon( ld->ld_errno = LDAP_NO_MEMORY; } else { - /* create a message to send */ - err = ber_printf( ber, "{iti", /* '}' */ +#ifdef LDAP_CONNECTIONLESS + if ( LDAP_IS_UDP(ld) ) { + err = ber_write( ber, ld->ld_options.ldo_peer, + sizeof(struct sockaddr), 0); + } + if ( LDAP_IS_UDP(ld) && ld->ld_options.ldo_version == + LDAP_VERSION2) { + char *dn = ld->ld_options.ldo_cldapdn; + if (!dn) dn = ""; + err = ber_printf( ber, "{isti", /* '}' */ + ++ld->ld_msgid, dn, + LDAP_REQ_ABANDON, msgid ); + } else +#endif + { + /* create a message to send */ + err = ber_printf( ber, "{iti", /* '}' */ ++ld->ld_msgid, - LDAP_REQ_ABANDON, msgid ); + LDAP_REQ_ABANDON, msgid ); + } if( err == -1 ) { /* encoding error */