module LibItsHttp_Functions { // LibCommon import from LibCommon_Time all; import from LibCommon_VerdictControl all; import from LibCommon_Sync all; // LibHttp import from LibItsHttp_TypesAndValues all; import from LibItsHttp_Pics all; import from LibItsHttp_TestSystem all; group http_preambles { /** * @desc Setups default configuration * @param p_certificate_id The certificate identifier the TA shall use in case of secured IUT */ function f_cfUp( in charstring p_certificate_id ) runs on HttpComponent /* TITAN TODO: system HttpTestAdapter */ { map(self:httpPort, system:httpPort); f_connect4SelfOrClientSync(); } // End of function f_cfUp } // End of group http_preambles group http_postambles { /** * @desc Deletes default configuration */ function f_cfDown() runs on HttpComponent /* TITAN TODO: system HttpTestAdapter */ { unmap(self:httpPort, system:httpPort); f_disconnect4SelfOrClientSync(); } // End of function f_cfDown } // End of group http_postambles group http_headers { function f_init_default_headers_list( in charstring p_header_content_type := PICS_HEADER_CONTENT_TYPE, in charstring p_header_content_text := "", out HeaderLines p_headers ) { var integer v_i := 0; p_headers[v_i] := { c_header_host, { PICS_HEADER_HOST } }; v_i := v_i + 1; p_headers[v_i] := { c_header_content_type, { p_header_content_type } }; v_i := v_i + 1; if (p_header_content_text != "") { p_headers[v_i] := { c_header_content_text, { p_header_content_text } }; v_i := v_i + 1; } p_headers[v_i] := { c_header_content_length, { "0" } }; v_i := v_i + 1; p_headers[v_i] := { c_header_connection, { "keep-alive" } }; v_i := v_i + 1; p_headers[v_i] := { c_header_pragma, { "no-cache" } }; v_i := v_i + 1; p_headers[v_i] := { c_header_cache_control, { "no-cache" } }; } // End of function f_init_default_headers_list function f_set_headears_list( in charstring_list p_headers_to_set, in charstring_list p_headers_value, inout HeaderLines p_headers ) { // Sanity checks if (lengthof(p_headers_to_set) == 0) { return; } else if (lengthof(p_headers) == 0) { return; } for (var integer v_idx := 0; v_idx < lengthof(p_headers_to_set); v_idx := v_idx + 1) { var integer v_jdx; for (v_jdx := 0; v_jdx < lengthof(p_headers); v_jdx := v_jdx + 1) { if (p_headers[v_jdx].header_name == p_headers_to_set[v_idx]) { p_headers[v_jdx].header_value := p_headers_value; // NOTE Codec won't encode it break; } if (v_jdx == lengthof(p_headers)) { p_headers[v_jdx].header_value := p_headers_value; } } // End of 'for' statement } // End of 'for' statement } // End of function f_set_headears_list function f_remove_headears_list( in charstring_list p_headers_to_remove, inout HeaderLines p_headers ) { // Sanity checks if (lengthof(p_headers_to_remove) == 0) { return; } else if (lengthof(p_headers) == 0) { return; } for (var integer v_idx := 0; v_idx < lengthof(p_headers_to_remove); v_idx := v_idx + 1) { for (var integer v_jdx := 0; v_jdx < lengthof(p_headers); v_jdx := v_jdx + 1) { if (p_headers[v_jdx].header_name == p_headers_to_remove[v_idx]) { p_headers[v_jdx].header_value := omit; // NOTE Codec won't encode it break; } } // End of 'for' statement } // End of 'for' statement } // End of function f_remove_headears_list } // End of group http_headers } // End of module LibItsHttp_Functions