am 5dde95b8: Merge "Fix the bug of authentication in an outgoing call." into gingerbread

Merge commit '5dde95b8fe0fea1a115a68f8acf826371da89da7' into gingerbread-plus-aosp

* commit '5dde95b8fe0fea1a115a68f8acf826371da89da7':
  Fix the bug of authentication in an outgoing call.
This commit is contained in:
Chung-yih Wang
2010-09-14 09:43:46 -07:00
committed by Android Git Automerger

View File

@@ -19,6 +19,7 @@ package com.android.server.sip;
import gov.nist.javax.sip.clientauthutils.AccountManager;
import gov.nist.javax.sip.clientauthutils.UserCredentials;
import gov.nist.javax.sip.header.SIPHeaderNames;
import gov.nist.javax.sip.header.ProxyAuthenticate;
import gov.nist.javax.sip.header.WWWAuthenticate;
import gov.nist.javax.sip.message.SIPMessage;
@@ -731,7 +732,8 @@ class SipSessionGroup implements SipListener {
Response response = event.getResponse();
String nonce = getNonceFromResponse(response);
if (((nonce != null) && nonce.equals(mLastNonce)) ||
(nonce == mLastNonce)) {
(nonce == null)) {
mLastNonce = nonce;
return false;
} else {
mClientTransaction = mSipHelper.handleChallenge(
@@ -764,9 +766,12 @@ class SipSessionGroup implements SipListener {
}
private String getNonceFromResponse(Response response) {
WWWAuthenticate authHeader = (WWWAuthenticate)(response.getHeader(
SIPHeaderNames.WWW_AUTHENTICATE));
return (authHeader == null) ? null : authHeader.getNonce();
WWWAuthenticate wwwAuth = (WWWAuthenticate)response.getHeader(
SIPHeaderNames.WWW_AUTHENTICATE);
if (wwwAuth != null) return wwwAuth.getNonce();
ProxyAuthenticate proxyAuth = (ProxyAuthenticate)response.getHeader(
SIPHeaderNames.PROXY_AUTHENTICATE);
return (proxyAuth == null) ? null : proxyAuth.getNonce();
}
private boolean readyForCall(EventObject evt) throws SipException {