static VOID _VdcadminClientTestSRPBind( PCSTR pszLDAPURI, PCSTR pszDefaultBindUPN, PCSTR pszDefaultPasswd ) { DWORD dwError = 0; LDAP * pLD = NULL; dwError = VmDirSASLSRPBind( &pLD, pszLDAPURI, pszDefaultBindUPN, pszDefaultPasswd ); BAIL_ON_VMDIR_ERROR(dwError); printf("%s SRP bind succeeded.\n\n", pszLDAPURI); cleanup: if (pLD) { dwError = ldap_unbind_ext_s( pLD, NULL, NULL); } return; error: printf("++++++++++++++++++++ %s SRP bind failed. (%d)(%s)\n\n", pszLDAPURI, dwError, ldap_err2string(dwError)); goto cleanup; }
/* * Bind to partner via "SRP" mechanism. */ DWORD VmDirSafeLDAPBind( LDAP** ppLd, PCSTR pszHost, PCSTR pszUPN, PCSTR pszPassword ) { DWORD dwError = 0; LDAP* pLd = NULL; char ldapURI[VMDIR_MAX_LDAP_URI_LEN + 1] = {0}; if (ppLd == NULL || pszHost == NULL || pszUPN == NULL || pszPassword == NULL) { dwError = VMDIR_ERROR_INVALID_PARAMETER; BAIL_ON_VMDIR_ERROR(dwError); } if ( VmDirIsIPV6AddrFormat( pszHost ) ) { dwError = VmDirStringPrintFA( ldapURI, sizeof(ldapURI)-1, "%s://[%s]:%d", VMDIR_LDAP_PROTOCOL, pszHost, DEFAULT_LDAP_PORT_NUM); } else { dwError = VmDirStringPrintFA( ldapURI, sizeof(ldapURI)-1, "%s://%s:%d", VMDIR_LDAP_PROTOCOL, pszHost, DEFAULT_LDAP_PORT_NUM); } BAIL_ON_VMDIR_ERROR(dwError); dwError = VmDirSASLSRPBind( &pLd, &(ldapURI[0]), pszUPN, pszPassword); BAIL_ON_VMDIR_ERROR(dwError); *ppLd = pLd; cleanup: return dwError; error: VMDIR_LOG_ERROR( VMDIR_LOG_MASK_ALL, "VmDirSafeLDAPBind to (%s) failed. SRP(%d)", ldapURI, dwError ); if ( pLd ) { ldap_unbind_ext_s( pLd, NULL, NULL); } goto cleanup; }