version 1.1.2.9, 2001/11/20 06:11:35
|
version 1.1.2.10, 2001/11/20 22:21:45
|
|
|
// | // |
// Modified By: Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com) | // Modified By: Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com) |
// | // |
|
// Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com) |
|
// |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#include <iostream> | #include <iostream> |
|
|
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
CIMOperationResponseDecoder::CIMOperationResponseDecoder( | CIMOperationResponseDecoder::CIMOperationResponseDecoder( |
MessageQueue* outputQueue) : _outputQueue(outputQueue) |
MessageQueue* outputQueue, |
|
MessageQueue* encoderQueue, |
|
ClientAuthenticator* authenticator) |
|
: |
|
_outputQueue(outputQueue), |
|
_encoderQueue(encoderQueue), |
|
_authenticator(authenticator) |
{ | { |
| |
} | } |
|
|
| |
} | } |
| |
|
void CIMOperationResponseDecoder::setEncoderQueue(MessageQueue* encoderQueue) |
|
{ |
|
_encoderQueue = encoderQueue; |
|
} |
|
|
void CIMOperationResponseDecoder::handleEnqueue() | void CIMOperationResponseDecoder::handleEnqueue() |
{ | { |
Message* message = dequeue(); | Message* message = dequeue(); |
|
|
| |
httpMessage->parse(startLine, headers, content, contentLength); | httpMessage->parse(startLine, headers, content, contentLength); |
| |
|
if (_authenticator->checkResponseHeaderForChallenge(headers)) |
|
{ |
|
// |
|
// Get the original request, put that in the encoder's queue for |
|
// re-sending with authentication challenge response. |
|
// |
|
|
|
Message* reqMessage = _authenticator->getRequestMessage(); |
|
_encoderQueue->enqueue(reqMessage); |
|
|
|
return; |
|
} |
|
else |
|
{ |
|
|
|
// |
|
// Received a valid/error response from the server. |
|
// We do not need the original request message anymore, hence delete |
|
// the request message by getting the handle from the ClientAuthenticator. |
|
// |
|
Message* reqMessage = _authenticator->getRequestMessage(); |
|
if (reqMessage) |
|
{ |
|
delete reqMessage; |
|
} |
|
} |
|
|
// | // |
// Search for "CIMOperation" header: | // Search for "CIMOperation" header: |
// | // |