dapIF Fails to Handle Non-CRLF Terminated Content-Length Based SOAP/HTTP Responses
Last updated on JANUARY 12, 2018
Applies to:Oracle Communications Network Charging and Control - Version 5.0.0 and later
Oracle Solaris on SPARC (64-bit)
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
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
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 407  ASPConnection Returning error code (5) to ASPManager for message id: 137
2014/07/22 02:06:03 ASPConnection.cc 413  ASPConnection ASPConnection::error: Clearing timeout
2014/07/22 02:06:03 ASPConnection.cc 419  ASPConnection closing FD 12
2014/07/22 02:06:03 ASPConnection.cc 425  ASPConnection State now: dead
2014/07/22 02:06:03 DapInterfaceManager.cc 854  dapInterface Request callback Received ASP response: ASPResponse values:
2014/07/22 02:06:03 DapInterfaceManager.cc 854  dapInterface Message Id -> 137
2014/07/22 02:06:03 DapInterfaceManager.cc 854  dapInterface Result Code -> 1
2014/07/22 02:06:03 DapInterfaceManager.cc 854  dapInterface Error Code -> 5
2014/07/22 02:06:03 DapInterfaceManager.cc 854  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)
2. No CR-LF Terminating Characters
Changes to the ASP to return non-CR-LF terminated SOAP/HTTP responses.
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