Commit 9ed30535 authored by Howard Chu's avatar Howard Chu Committed by Quanah Gibson-Mount
Browse files

ITS#9279 Handle Netscape controls in client tools

parent 1e222584
...@@ -147,6 +147,10 @@ static int print_deref( LDAP *ld, LDAPControl *ctrl ); ...@@ -147,6 +147,10 @@ static int print_deref( LDAP *ld, LDAPControl *ctrl );
#ifdef LDAP_CONTROL_X_WHATFAILED #ifdef LDAP_CONTROL_X_WHATFAILED
static int print_whatfailed( LDAP *ld, LDAPControl *ctrl ); static int print_whatfailed( LDAP *ld, LDAPControl *ctrl );
#endif #endif
#ifdef LDAP_CONTROL_X_PASSWORD_EXPIRED
static int print_netscape_pwexpired( LDAP *ld, LDAPControl *ctrl );
static int print_netscape_pwexpiring( LDAP *ld, LDAPControl *ctrl );
#endif
static struct tool_ctrls_t { static struct tool_ctrls_t {
const char *oid; const char *oid;
...@@ -166,6 +170,10 @@ static struct tool_ctrls_t { ...@@ -166,6 +170,10 @@ static struct tool_ctrls_t {
#endif #endif
#ifdef LDAP_CONTROL_X_WHATFAILED #ifdef LDAP_CONTROL_X_WHATFAILED
{ LDAP_CONTROL_X_WHATFAILED, TOOL_ALL, print_whatfailed }, { LDAP_CONTROL_X_WHATFAILED, TOOL_ALL, print_whatfailed },
#endif
#ifdef LDAP_CONTROL_X_PASSWORD_EXPIRED
{ LDAP_CONTROL_X_PASSWORD_EXPIRED, TOOL_ALL, print_netscape_pwexpired },
{ LDAP_CONTROL_X_PASSWORD_EXPIRING, TOOL_ALL, print_netscape_pwexpiring },
#endif #endif
{ NULL, 0, NULL } { NULL, 0, NULL }
}; };
...@@ -1561,6 +1569,23 @@ tool_bind( LDAP *ld ) ...@@ -1561,6 +1569,23 @@ tool_bind( LDAP *ld )
} }
#endif #endif
#ifdef LDAP_CONTROL_X_PASSWORD_EXPIRED
if ( ctrls ) {
LDAPControl *ctrl;
ctrl = ldap_control_find( LDAP_CONTROL_X_PASSWORD_EXPIRED,
ctrls, NULL );
if ( !ctrl )
ctrl = ldap_control_find( LDAP_CONTROL_X_PASSWORD_EXPIRING,
ctrls, NULL );
if ( ctrl ) {
LDAPControl *ctmp[2];
ctmp[0] = ctrl;
ctmp[1] = NULL;
tool_print_ctrls( ld, ctmp );
}
}
#endif
if ( ctrls ) { if ( ctrls ) {
ldap_controls_free( ctrls ); ldap_controls_free( ctrls );
} }
...@@ -2257,6 +2282,28 @@ print_ppolicy( LDAP *ld, LDAPControl *ctrl ) ...@@ -2257,6 +2282,28 @@ print_ppolicy( LDAP *ld, LDAPControl *ctrl )
} }
#endif #endif
#ifdef LDAP_CONTROL_X_PASSWORD_EXPIRED
static int
print_netscape_pwexpired( LDAP *ld, LDAPControl *ctrl )
{
printf(_("# PasswordExpired control\n") );
return 0;
}
static int
print_netscape_pwexpiring( LDAP *ld, LDAPControl *ctrl )
{
long expiring = 0;
int rc;
rc = ldap_parse_password_expiring_control( ld, ctrl, &expiring );
if ( rc == LDAP_SUCCESS ) {
printf(_("# PasswordExpiring control seconds=%ld\n"), expiring );
}
return rc;
}
#endif
void tool_print_ctrls( void tool_print_ctrls(
LDAP *ld, LDAP *ld,
LDAPControl **ctrls ) LDAPControl **ctrls )
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment