// Messages received are passed back via this function. // void OnLDAPMessage (in nsILDAPMessage aMessage) // NS_IMETHODIMP nsLDAPSyncQuery::OnLDAPMessage(nsILDAPMessage *aMessage) { PRInt32 messageType; // just in case. // if (!aMessage) { return NS_OK; } // figure out what sort of message was returned // nsresult rv = aMessage->GetType(&messageType); if (NS_FAILED(rv)) { NS_ERROR("nsLDAPSyncQuery::OnLDAPMessage(): unexpected " "error in aMessage->GetType()"); FinishLDAPQuery(); return NS_ERROR_UNEXPECTED; } switch (messageType) { case nsILDAPMessage::RES_BIND: // a bind has completed // return OnLDAPBind(aMessage); case nsILDAPMessage::RES_SEARCH_ENTRY: // a search entry has been returned // return OnLDAPSearchEntry(aMessage); case nsILDAPMessage::RES_SEARCH_RESULT: // the search is finished; we're all done // return OnLDAPSearchResult(aMessage); default: // Given the LDAP operations nsLDAPSyncQuery uses, we should // never get here. If we do get here in a release build, it's // probably a bug, but maybe it's the LDAP server doing something // weird. Might as well try and continue anyway. The session should // eventually get reaped by the timeout code, if necessary. // NS_ERROR("nsLDAPSyncQuery::OnLDAPMessage(): unexpected " "LDAP message received"); return NS_OK; } }
/** * Messages received are passed back via this function. * * @arg aMessage The message that was returned, 0 if none was. * * void OnLDAPMessage (in nsILDAPMessage aMessage) */ NS_IMETHODIMP nsLDAPChannel::OnLDAPMessage(nsILDAPMessage *aMessage) { PRInt32 messageType; // figure out what sort of message was returned // nsresult rv = aMessage->GetType(&messageType); if (NS_FAILED(rv)) { NS_ERROR("nsLDAPChannel::OnLDAPMessage(): unexpected error in " "nsLDAPChannel::GetType()"); return NS_ERROR_UNEXPECTED; } switch (messageType) { case LDAP_RES_BIND: // a bind has completed // return OnLDAPBind(aMessage); break; case LDAP_RES_SEARCH_ENTRY: // a search entry has been returned // return OnLDAPSearchEntry(aMessage); break; case LDAP_RES_SEARCH_RESULT: // the search is finished; we're all done // return OnLDAPSearchResult(aMessage); break; default: NS_WARNING("nsLDAPChannel::OnLDAPMessage(): unexpected LDAP message " "received"); // get the console service so we can log a message // nsCOMPtr<nsIConsoleService> consoleSvc = do_GetService("@mozilla.org/consoleservice;1", &rv); if (NS_FAILED(rv)) { NS_ERROR("nsLDAPChannel::OnLDAPMessage() couldn't get console " "service"); break; } // log the message // rv = consoleSvc->LogStringMessage( NS_LITERAL_STRING("LDAP: WARNING: nsLDAPChannel::OnLDAPMessage(): Unexpected LDAP message received").get()); NS_ASSERTION(NS_SUCCEEDED(rv), "nsLDAPChannel::OnLDAPMessage(): " "consoleSvc->LogStringMessage() failed"); break; } return NS_OK; }