[Date Prev][Date Next] [Chronological] [Thread] [Top]

How to chase referrals



Hi,

What i have done this,

char *ldap_username="xx";
char *ldap_password="xx";

        if( ldap_set_option(ld, LDAP_OPT_REFERRALS, LDAP_OPT_ON) != 0) {
                log_error("LDAP set Optoin for referral");
        }
        if( ldap_set_rebind_proc(ld, get_rebind, NULL) != 0) {
                log_error("LDAP set Optoin for rebind");
        }

static int
get_rebind( LDAP *ld, char **whop, char **credp,int *methodp, int freeit, void* arg )
{
         if ( !freeit ) {
                *whop = ldap_username;
                *credp = ldap_password;
                *methodp = LDAP_AUTH_SIMPLE;
        }
        return( LDAP_SUCCESS );
}

This cause be Segfault. I traced with gdb when it reaches this function get_rebind it gives like "credb" address is ox63 and methodp is 0x2. I dont understand why the low address has come up for these variables.

Then i added the following,
static int
LDAP_CALL
LDAP_CALLBACK
get_rebind ...

but it gives me the compilation error. What i am missing here. Can you find something odd here.

thanks a lot for your help,
  -"kalyan"