diff --git a/HTTPmsg_CNL113312.tpd b/HTTPmsg_CNL113312.tpd index e505421669a970da29d1a04282915e05d96ee366..c990d1345418245601077af627ba4683d39f4aa2 100644 --- a/HTTPmsg_CNL113312.tpd +++ b/HTTPmsg_CNL113312.tpd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright (c) 2016 Ericsson + Copyright (c) 2017 Ericsson All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 @@ -10,7 +10,7 @@ File: HTTPmsg_CNL113312.tpd Description: tpd project file - Rev: R8G + Rev: R9B Prodnr: CNL 113 312 --> @@ -20,13 +20,9 @@ <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/> </ReferencedProjects> <Folders> - <FolderResource projectRelativePath="doc" relativeURI="doc"/> <FolderResource projectRelativePath="src" relativeURI="src"/> </Folders> <Files> - <FileResource projectRelativePath="doc/HTTPmsg_CNL113312_FS.pdf" relativeURI="doc/HTTPmsg_CNL113312_FS.pdf"/> - <FileResource projectRelativePath="doc/HTTPmsg_CNL113312_PRI.pdf" relativeURI="doc/HTTPmsg_CNL113312_PRI.pdf"/> - <FileResource projectRelativePath="doc/HTTPmsg_CNL113312_UG.pdf" relativeURI="doc/HTTPmsg_CNL113312_UG.pdf"/> <FileResource projectRelativePath="src/HTTPmsg_MessageLen.ttcn" relativeURI="src/HTTPmsg_MessageLen.ttcn"/> <FileResource projectRelativePath="src/HTTPmsg_MessageLen_Function.cc" relativeURI="src/HTTPmsg_MessageLen_Function.cc"/> <FileResource projectRelativePath="src/HTTPmsg_PT.cc" relativeURI="src/HTTPmsg_PT.cc"/> @@ -49,14 +45,6 @@ <workingDirectory>bin</workingDirectory> </LocalBuildSettings> </ProjectProperties> - <FolderProperties> - <FolderResource> - <FolderPath>doc</FolderPath> - <FolderProperties> - <ExcludeFromBuild>true</ExcludeFromBuild> - </FolderProperties> - </FolderResource> - </FolderProperties> </Configuration> </Configurations> </TITAN_Project_File_Information> diff --git a/doc/FS_15517-CNL113312_EN_E_PDFV1R2.pdf b/doc/FS_15517-CNL113312_EN_E_PDFV1R2.pdf deleted file mode 100644 index dcc542c739156b7d93b9298648e08e4fcce2e308..0000000000000000000000000000000000000000 Binary files a/doc/FS_15517-CNL113312_EN_E_PDFV1R2.pdf and /dev/null differ diff --git a/doc/HTTPmsg_CNL113312 Test Port for TTCN-3 Toolset with TITAN, Function Specification.doc b/doc/HTTPmsg_CNL113312 Test Port for TTCN-3 Toolset with TITAN, Function Specification.doc new file mode 100644 index 0000000000000000000000000000000000000000..32d408d1edaf7a7a44b0165ac3763a8644069177 Binary files /dev/null and b/doc/HTTPmsg_CNL113312 Test Port for TTCN-3 Toolset with TITAN, Function Specification.doc differ diff --git a/doc/HTTPmsg_CNL113312 Test Port for TTCN-3 Toolset with TITAN, User Guide.doc b/doc/HTTPmsg_CNL113312 Test Port for TTCN-3 Toolset with TITAN, User Guide.doc new file mode 100644 index 0000000000000000000000000000000000000000..a264f8df78d609d597c0349adbb41ca7fe9ea9b7 Binary files /dev/null and b/doc/HTTPmsg_CNL113312 Test Port for TTCN-3 Toolset with TITAN, User Guide.doc differ diff --git a/doc/HTTPmsg_CNL113312_PRI.doc b/doc/HTTPmsg_CNL113312_PRI.doc deleted file mode 100644 index 4822f45e06aa7a66818a08b6d4765d5fa35dc603..0000000000000000000000000000000000000000 Binary files a/doc/HTTPmsg_CNL113312_PRI.doc and /dev/null differ diff --git a/doc/HTTPmsg_CNL113312_PRI_2.doc b/doc/HTTPmsg_CNL113312_PRI_2.doc new file mode 100644 index 0000000000000000000000000000000000000000..8bc1bb47f40a9306d6be5e17993e48883db46f22 Binary files /dev/null and b/doc/HTTPmsg_CNL113312_PRI_2.doc differ diff --git a/doc/UG_19817-CNL113312_EN_G_PDFV1R2.pdf b/doc/UG_19817-CNL113312_EN_G_PDFV1R2.pdf deleted file mode 100644 index b82b0e7696caed67114adbeb7373a7446fa081cc..0000000000000000000000000000000000000000 Binary files a/doc/UG_19817-CNL113312_EN_G_PDFV1R2.pdf and /dev/null differ diff --git a/src/HTTPmsg_MessageLen.ttcn b/src/HTTPmsg_MessageLen.ttcn index 37fdfff015eb11b918552efcc41f2b4ddcbd8319..5690226d8e74e382eec1e8be31b530660a15f66c 100644 --- a/src/HTTPmsg_MessageLen.ttcn +++ b/src/HTTPmsg_MessageLen.ttcn @@ -16,7 +16,7 @@ // // File: HTTPmsg_MessageLen.ttcn // Description: HTTP Message length calculator -// Rev: R8G +// Rev: R9B // Prodnr: CNL 113 469 module HTTPmsg_MessageLen{ diff --git a/src/HTTPmsg_MessageLen_Function.cc b/src/HTTPmsg_MessageLen_Function.cc index fe0eae2da81ae22f138083beaeac45b3f48af8e4..39bc93be6accf4804b961270c51adae38f4335c2 100644 --- a/src/HTTPmsg_MessageLen_Function.cc +++ b/src/HTTPmsg_MessageLen_Function.cc @@ -15,7 +15,7 @@ // // File: HTTPmsg_MessageLen_Function.cc // Description: HTTP Message length calculator -// Rev: R8G +// Rev: R9B // Prodnr: CNL 113 469 #include "HTTPmsg_PT.hh" diff --git a/src/HTTPmsg_PT.cc b/src/HTTPmsg_PT.cc index 3d273c65a0eca429e231ba09098ac439dede7eda..67ab2ba46ba00e9c9f32a0aba92fb042844d54c7 100644 --- a/src/HTTPmsg_PT.cc +++ b/src/HTTPmsg_PT.cc @@ -15,7 +15,7 @@ // // File: HTTPmsg_PT.cc // Description: HTTP test port implementation -// Rev: R8G +// Rev: R9B // Prodnr: CNL 113 469 @@ -49,6 +49,8 @@ HTTPmsg__PT::HTTPmsg__PT(const char *par_port_name) set_ssl_use_ssl(true); #endif + use_send_failed = false; + last_msg = NULL; } HTTPmsg__PT::~HTTPmsg__PT() @@ -64,6 +66,10 @@ void HTTPmsg__PT::set_parameter(const char *parameter_name, if (strcasecmp(parameter_value,"yes")==0) use_notification_ASPs = true; else if (strcasecmp(parameter_value,"no")==0) use_notification_ASPs = false; else log_error("Parameter value '%s' not recognized for parameter '%s'", parameter_value, use_notification_ASPs_name()); + } else if(strcasecmp(parameter_name, "report_failed_message") == 0){ + if (strcasecmp(parameter_value,"yes")==0) use_send_failed = true; + else if (strcasecmp(parameter_value,"no")==0) use_send_failed = false; + else log_error("Parameter value '%s' not recognized for parameter '%s'", parameter_value, "report_failed_message"); } else if((strcasecmp(parameter_name, use_connection_ASPs_name()) == 0) || !parameter_set(parameter_name ,parameter_value)) { log_warning("HTTPmsg__PT::set_parameter(): Unsupported Test Port parameter: %s", parameter_name); @@ -206,7 +212,8 @@ void HTTPmsg__PT::outgoing_send(const HTTPmsg__Types::HTTPMessage& send_par) TTCN_Buffer snd_buf; int client_id = -1; - + last_msg = &send_par; + switch(send_par.get_selection()) { case HTTPmsg__Types::HTTPMessage::ALT_request: @@ -249,10 +256,23 @@ void HTTPmsg__PT::outgoing_send(const HTTPmsg__Types::HTTPMessage& send_par) send_outgoing(snd_buf.get_data(), snd_buf.get_len(), client_id); else send_outgoing(snd_buf.get_data(), snd_buf.get_len()); - + + last_msg = NULL; log_debug("leaving HTTPmsg__PT::outgoing_send(HTTPMessage)"); } +void HTTPmsg__PT::report_unsent(int client_id, int /*msg_length*/, int /*sent_length*/, const unsigned char* /*msg*/, const char* /*error_text*/) +{ + if(use_send_failed && last_msg){ + HTTPmsg__Types::Send__failed asp; + asp.msg()=*last_msg; + asp.already__half__closed()= (get_peer(client_id,true)->tcp_state) == CLOSE_WAIT ; + + incoming_message(asp); + } +} + + void HTTPmsg__PT::client_connection_opened(int client_id) { log_debug("entering HTTPmsg__PT::client_connection_opened(%d)", client_id); diff --git a/src/HTTPmsg_PT.hh b/src/HTTPmsg_PT.hh index 86b79d6701795b5076cdc72cba2ab4c2bf10de78..416376bd3a117ee32312fb875e3f5a4fede352c9 100644 --- a/src/HTTPmsg_PT.hh +++ b/src/HTTPmsg_PT.hh @@ -15,7 +15,7 @@ // // File: HTTPmsg_PT.hh // Description: HTTP test port header file -// Rev: R8G +// Rev: R9B // Prodnr: CNL 113 469 @@ -109,6 +109,7 @@ protected: virtual void peer_disconnected(int client_id); virtual void peer_half_closed(int client_id); virtual void remove_client(int client_id); + virtual void report_unsent(int client_id, int msg_length, int sent_length, const unsigned char* msg, const char* error_text); // HTTP specific functions @@ -131,6 +132,9 @@ private: bool server_use_ssl; bool use_notification_ASPs; + + bool use_send_failed; + const HTTPmsg__Types::HTTPMessage* last_msg; }; //=================================== //== Functions outside the class: === diff --git a/src/HTTPmsg_PortType.ttcn b/src/HTTPmsg_PortType.ttcn index 3177270c0fc38d3d7eaacece5dcff9a53a97e1c6..926375ad602283b202d96dcd57b216f2b432900d 100644 --- a/src/HTTPmsg_PortType.ttcn +++ b/src/HTTPmsg_PortType.ttcn @@ -15,7 +15,7 @@ // // File: HTTPmsg_Types.ttcn // Description: HTTP port type definition -// Rev: R8G +// Rev: R9B // Prodnr: CNL 113 469 @@ -34,6 +34,8 @@ module HTTPmsg_PortType out Listen; in Listen_result; inout Shutdown; + + in Send_failed; // Message to send and receive inout HTTPMessage; diff --git a/src/HTTPmsg_Types.ttcn b/src/HTTPmsg_Types.ttcn index 63ffa44d1f4caa63c1f483a7376fa978c4b49db2..8cc351b316ceb1ca605e819291ad05927fb08b6d 100644 --- a/src/HTTPmsg_Types.ttcn +++ b/src/HTTPmsg_Types.ttcn @@ -15,7 +15,7 @@ // // File: HTTPmsg_Types.ttcn // Description: HTTP Message and TCP connection handling ASP types -// Rev: R8G +// Rev: R9B // Prodnr: CNL 113 469 @@ -150,4 +150,14 @@ type record Listen_result { type record Shutdown {}; +// Used to report messages, which can't be sent because fo the broken connection +// Set the "report_failed_message" test port parameter to "yes" to enable the sending of this message !!!! +type record Send_failed { + HTTPMessage msg, // The unsent message + boolean already_half_closed // the connection already half closed + // true: the test port already enqued the half_close message + // false: the half_close is not enqued yet +} + + }