dapIF Fails to Handle Non-CRLF Terminated Content-Length Based SOAP/HTTP Responses (Doc ID 1917961.1)

Last updated on SEPTEMBER 15, 2014

Applies to:

Oracle Communications Network Charging and Control - Version 5.0.0 and later
Oracle Solaris on SPARC (64-bit)

Symptoms

In Network Charging and Control (NCC), Data Access Pack (DAP) is used to interface third party Application Service Providers (ASPs) over HTTP/SOAP for reasons such as retrieving subscriber information or to initiate remote processing to be performed.

If the response from the ASP is non-chunked (ie. Content-Length based) and not terminated with a Carriage Return/Line Feed (CR-LF) character, then dapIF assumes the response has not been completely received and fails the transaction when the ASP closes the connection.

No errors can be seen in the dapIF log, however if debug is enabled, this behaviour can be seen:

1. A response comes back from the ASP which is Content-Length based.  In this case, 1331 bytes/octets are expected in the HTTP/SOAP body

2014/07/22 02:06:03          ASPConnection.cc   925 [15378]        ASPConnection Content-Length: 1331

 

2. dapIF reads in the HTTP/SOAP and compares the size of the line (based on the position of the CR-LF) against the Content-Length value.  Observe the first value (CR-LF position) is the maximum value of an unsigned integer

 2014/07/22 02:06:03          ASPConnection.cc   900 [15378]        ASPConnection partLinePos: 4294967295, 1331

 

3. The ASP then closes the connection as the entire response has been sent which dapIF deems as an error on the ASP:

2014/07/22 02:06:03 ASPConnection.cc 948 [15378] ASPConnection ASPConnection::Poll: Zero byte read. Connection Closed.
2014/07/22 02:06:03 ASPConnection.cc 407 [15378] ASPConnection Returning error code (5) to ASPManager for message id: 137
2014/07/22 02:06:03 ASPConnection.cc 413 [15378] ASPConnection ASPConnection::error: Clearing timeout
2014/07/22 02:06:03 ASPConnection.cc 419 [15378] ASPConnection closing FD 12
2014/07/22 02:06:03 ASPConnection.cc 425 [15378] ASPConnection State now: dead
...
2014/07/22 02:06:03 DapInterfaceManager.cc 854 [15378] dapInterface Request callback Received ASP response: ASPResponse values:
2014/07/22 02:06:03 DapInterfaceManager.cc 854 [15378] dapInterface Message Id -> 137
2014/07/22 02:06:03 DapInterfaceManager.cc 854 [15378] dapInterface Result Code -> 1
2014/07/22 02:06:03 DapInterfaceManager.cc 854 [15378] dapInterface Error Code -> 5
2014/07/22 02:06:03 DapInterfaceManager.cc 854 [15378] dapInterface Extra Details -> asp has closed the connection

 

4. The DAP2 node in the Control Plan will then take the Error exit.

 

This difference can also be visualised in Wireshark in the packet bytes after the closing brace ">" (3E) character:

1. CR-LF Terminating Characters (0D 0A)

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms