-
-int
-ldap_url_search( LDAP *ld, LDAP_CONST char *url, int attrsonly )
-{
- int err;
- LDAPURLDesc *ludp;
- BerElement *ber;
- LDAPreqinfo bind;
-
- assert( ld != NULL );
- assert( LDAP_VALID( ld ) );
-
- if ( ldap_url_parse( url, &ludp ) != 0 ) {
- ld->ld_errno = LDAP_PARAM_ERROR;
- return( -1 );
- }
-
- if( ludp->lud_crit_exts ) {
- /* we don't support any extension (yet) */
- ld->ld_errno = LDAP_NOT_SUPPORTED;
- return( -1 );
- }
-
- ber = ldap_build_search_req( ld, ludp->lud_dn, ludp->lud_scope,
- ludp->lud_filter, ludp->lud_attrs, attrsonly, NULL, NULL,
- -1, -1 );
-
- if ( ber == NULL ) {
- err = -1;
- } else {
- bind.ri_request = LDAP_REQ_SEARCH;
- bind.ri_msgid = ld->ld_msgid;
- bind.ri_url = (char *)url;
- err = ldap_send_server_request(
- ld, ber, ld->ld_msgid, NULL,
- ludp, NULL, &bind );
- }
-
- ldap_free_urldesc( ludp );
- return( err );
-}
-
-
-int
-ldap_url_search_st( LDAP *ld, LDAP_CONST char *url, int attrsonly,
- struct timeval *timeout, LDAPMessage **res )
-{
- int msgid;
-
- if (( msgid = ldap_url_search( ld, url, attrsonly )) == -1 ) {
- return( ld->ld_errno );
- }
-
- if ( ldap_result( ld, msgid, 1, timeout, res ) == -1 ) {
- return( ld->ld_errno );
- }
-
- if ( ld->ld_errno == LDAP_TIMEOUT ) {
- (void) ldap_abandon( ld, msgid );
- ld->ld_errno = LDAP_TIMEOUT;
- return( ld->ld_errno );
- }
-
- return( ldap_result2error( ld, *res, 0 ));
-}
-
-
-int
-ldap_url_search_s(
- LDAP *ld, LDAP_CONST char *url, int attrsonly, LDAPMessage **res )