MTC@egm-VirtualBox: entering f__IPL4__PROVIDER__connect: localhost:0 -> localhost:35000 / TCP MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: enter MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: create new socket: localhost:0 -> localhost:35000 MTC@egm-VirtualBox: IPL4: SetLocalSockAddr: locName: localhost loc_port 0 def_loc_host localhost, add_family AF_INET MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::setOptions: enter, number of options: 1 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::setOptions: sock: 7 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::setOptions: Socket option REUSEADDR on socket 7 is set to: 1 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::setOptions: TCP option TCP_KEEPCNT on socket 7 is set to: 20 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::setOptions: TCP option TCP_KEEPIDLE on socket 7 is set to: 180 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::setOptions: TCP option TCP_KEEPINTVL on socket 7 is set to: 60 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::setOptions: socket option SO_KEEPALIVE on socket 7 is set to: 1 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::setOptions: leave MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: sock: 7 MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: error: Operation now in progress MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER: ConnAdd enter: type: 2, ssl_tls_type: 0, sock: 7, parentIx: -1 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::ConnAdd: new sockListSize: 16 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::ConnAdd: connId: 1 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::ConnAdd: connId: set ssl options for connId : 1 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::set_ssl_supp_option: set SSL options MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::ConnAdd: getpeername failed: Transport endpoint is not connected MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::ConnAdd: leave: sockListCnt: 1 MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: EAGAIN: waiting in poll: fd 7 connId: 1 MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: EAGAIN: poll returned: 1 MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: EAGAIN: revents: 0x001D MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: EAGAIN: writable MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: Probing connection: getsockopt returned: 0, connection result code: 111 MTC@egm-VirtualBox: IPL4: f__IPL4__PROVIDER__connect: connect error: Connection refused MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::ConnDel: enter: connId: 1 MTC@egm-VirtualBox: IPL4: IPL4asp__PT_PROVIDER::ConnDel: fd: 7 MTC@egm-VirtualBox: { errorCode := ERROR_SOCKET (4), connId := omit, os_error_code := 111, os_error_text := "Connection refused" } MTC@egm-VirtualBox: Dynamic test case error: Using the value of an optional field containing omit. (Transport endpoint is not connected)
function f_cf01Up() runs on ARMOURComponent{ var Socket_API_Definitions.Result vl_result; map(mtc:IPL4, system:IPL4); vl_result := IPL4asp_PortType.f_IPL4_connect(IPL4, finalConnectionParams.remHost, finalConnectionParams.remPort, finalConnectionParams.locHost, finalConnectionParams.locPort, connectionId, //pl_connectionParams.connId, {tcp := {}}, ); log(vl_result) connectionId := vl_result.connId; }
ttcn3_start: Starting the test suite spawn /home/egm/titan/bin/mctr_cli ../resources/ARMOURConfig.cfg ************************************************************************* * TTCN-3 Test Executor - Main Controller 2 * * Version: CRL 113 200/6 R1A * * Copyright (c) 2000-2016 Ericsson Telecom AB * * All rights reserved. This program and the accompanying materials * * are made available under the terms of the Eclipse Public License v1.0 * * which accompanies this distribution, and is available at * * http://www.eclipse.org/legal/epl-v10.html * ************************************************************************* Using configuration file: ../resources/ARMOURConfig.cfg MC@egm-VirtualBox: Unix server socket created successfully. MC@egm-VirtualBox: Listening on TCP port 17283. MC2> egm-VirtualBox is the default spawn ./ExportedTTCNARMOUR egm-VirtualBox 17283 TTCN-3 Host Controller (parallel mode), version CRL 113 200/5 R5B01 ./ExportedTTCNARMOUR: Segmentation fault occurred ./ExportedTTCNARMOUR[0x6aa113] /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f77b4788390] /lib/x86_64-linux-gnu/libcrypto.so.1.0.0(BN_free+0x9)[0x7f77b4e0ad89] ./ExportedTTCNARMOUR[0x412902] /lib/x86_64-linux-gnu/libc.so.6(+0x39ff8)[0x7f77b3b46ff8] /lib/x86_64-linux-gnu/libc.so.6(+0x3a045)[0x7f77b3b47045] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf7)[0x7f77b3b2d837] ./ExportedTTCNARMOUR[0x40d089] ttcn3_start: error: Host Controller with id exp7 stopped unexpectedly exit MC@egm-VirtualBox: Shutting down session. MC@egm-VirtualBox: Shutdown complete. : spawn id exp7 not open while executing "expect -i $hc_id eof" (procedure "error_cleanup" line 6) invoked from within "error_cleanup "Host Controller with id $hc_id stopped unexpectedly" 10" invoked from within "expect { -i $hc_id -re "Dynamic test case error" { error_cleanup "program $ETS could not connect to the MC" 7 } -i $hc_id -re ".*\r" { exp_c..." (file "/home/egm/titan/bin/ttcn3_start" line 243)
MTC@egm-VirtualBox: { errorCode := ERROR_SOCKET (4), connId := omit, os_error_code := 111, os_error_text := "Connection refused" }
17:08:58.879219 - { errorCode := omit, connId := 1, os_error_code := omit, os_error_text := omit } 17:08:58.879345 - Dynamic test case error: Using an unbound optional field. (Operation now in progress)
function f_cf01Up() runs on ARMOURComponent{ var Socket_API_Definitions.Result vl_result; var ConnectionId connectionId :=-1; map(mtc:IPL4, system:IPL4); vl_result := IPL4asp_PortType.f_IPL4_connect(IPL4, finalConnectionParams.remHost, finalConnectionParams.remPort, finalConnectionParams.locHost, finalConnectionParams.locPort, connectionId, //pl_connectionParams.connId, {tcp := {}}, ); log(vl_result) connectionId := vl_result.connId; }
function f_cf01Up() runs on ARMOURComponent{ var Socket_API_Definitions.Result vl_result; map(mtc:IPL4, system:IPL4); vl_result := IPL4asp_PortType.f_IPL4_connect(IPL4, finalConnectionParams.remHost, finalConnectionParams.remPort, finalConnectionParams.locHost, finalConnectionParams.locPort, connectionId, {tcp := {}}, {{reuseAddress := {true}}} ); log(vl_result) connectionId := vl_result.connId; }
14:05:57.878379 - IPL4: f__IPL4__PROVIDER__connect: Probing connection: getsockopt returned: 0, connection result code: 0 14:05:57.878397 - IPL4: f__IPL4__PROVIDER__connect: leave 14:05:57.878421 - { errorCode := omit, connId := 1, os_error_code := omit, os_error_text := omit } 14:05:57.878517 - Dynamic test case error: Using an unbound optional field. (Operation now in progress)
v_sendMessageBytes := ef_HTTP_Encode(valueof(t_message));
{ msg := { start_line := { request_line := { method := GET (0), request_target := "/~/in-cse", version_major := 1, version_minor := 1 } }, headers := <uninitialized template>, body := <uninitialized template> } }
GENERATED_SOURCES = ARMOUR_Adapter_HTTP.cc General_Types.cc HTTP_MessageLen.cc HTTP_Types.cc IPL4asp_Functions.cc IPL4asp_PortType.cc IPL4asp_Types.cc Socket_API_Definitions.cc TCCAssertion_Functions.cc TCCDateTime_Functions.cc TCCEncoding_Functions.cc TCCEnv_Functions.cc TCCFileIO_Functions.cc TCCFileSystem_Functions.cc TCCIPsec_Definitions.cc TCCIPsec_Functions.cc TCCInterface_Functions.cc TCCMaths_Functions.cc TCCMaths_GenericTypes.cc TCCMessageHandling_Functions.cc TCCPermutatedParameters_Definitions.cc TCCPermutatedParameters_Functions.cc TCCSystem_Functions.cc TCCTemplate_Functions.cc TCCTitanMetadata_Functions.cc TestPurposeSuiteHTTP.cc : : USER_SOURCES = ../ARMOUR_Adapter_HTTP.cc ../Abstract_Socket.cc ../General_Types.cc ../HTTP_EncDec.cc ../HTTP_MessageLen.cc ../HTTP_MessageLen_Function.cc ../HTTP_Types.cc ../HTTP_parse_.tab.c ../IPL4asp_Functions.cc ../IPL4asp_PT.cc ../IPL4asp_PortType.cc ../IPL4asp_Types.cc ../IPL4asp_discovery.cc ../Socket_API_Definitions.cc ../TCCAssertion.cc ../TCCAssertion_Functions.cc ../TCCDateTime.cc ../TCCDateTime_Functions.cc ../TCCEncoding.cc ../TCCEncoding_Functions.cc ../TCCEnv.cc ../TCCEnv_Functions.cc ../TCCFileIO.cc ../TCCFileIO_Functions.cc ../TCCFileSystem.cc ../TCCFileSystem_Functions.cc ../TCCIPsec.cc ../TCCIPsec_Definitions.cc ../TCCIPsec_Functions.cc ../TCCInterface.cc ../TCCInterface_Functions.cc ../TCCMaths.cc ../TCCMaths_Functions.cc ../TCCMaths_GenericTypes.cc ../TCCMessageHandling.cc ../TCCMessageHandling_Functions.cc ../TCCPermutatedParameters_Definitions.cc ../TCCPermutatedParameters_Functions.cc ../TCCSystem.cc ../TCCSystem_Functions.cc ../TCCTemplate_Functions.cc ../TCCTitanMetadata.cc ../TCCTitanMetadata_Functions.cc ../TestPurposeSuiteHTTP.cc ../lex.HTTP_parse_.c
USER_SOURCES = Abstract_Socket.cc HTTP_EncDec.cc HTTP_MessageLen_Function.cc HTTP_parse_.tab.c IPL4asp_PT.cc IPL4asp_discovery.cc TCCAssertion.cc TCCDateTime.cc TCCEncoding.cc TCCEnv.cc TCCFileIO.cc TCCFileSystem.cc TCCIPsec.cc TCCInterface.cc TCCMaths.cc TCCMessageHandling.cc TCCSystem.cc TCCTitanMetadata.cc lex.HTTP_parse_.c USER_HEADERS = Abstract_Socket.hh HTTP_parse_.tab.h IPL4asp_PT.hh HTTP_parse.h IPL4asp_protocol_L234.hh TCCInterface_ip.h
makefilegen -f -e TITAN_Adapter ARMOUR_Adapter_HTTP.ttcn General_Types.ttcn HTTP_MessageLen.ttcn HTTP_Types.ttcn IPL4asp_Functions.ttcn IPL4asp_PortType.ttcn IPL4asp_Types.ttcn Socket_API_Definitions.ttcn TCCAssertion_Functions.ttcn TCCConversion_Functions.ttcn TCCDateTime_Functions.ttcn TCCEncoding_Functions.ttcn TCCEnv_Functions.ttcn TCCFileIO_Functions.ttcn TCCFileSystem_Functions.ttcn TCCIPsec_Definitions.ttcn TCCIPsec_Functions.ttcn TCCInterface_Functions.ttcn TCCMaths_Functions.ttcn TCCMaths_GenericTypes.ttcn TCCMessageHandling_Functions.ttcn TCCPermutatedParameters_Definitions.ttcn TCCPermutatedParameters_Functions.ttcn TCCSystem_Functions.ttcn TCCTemplate_Functions.ttcn TCCTitanMetadata_Functions.ttcn TestPurposeSuiteHTTP.ttcn UsefulTtcn3Types.ttcn XSD.ttcn general_typedefs.ttcn http_www_w3_org_XML_1998_namespace.ttcn Abstract_Socket.cc IPL4asp_discovery.cc IPL4asp_PT.cc HTTP_EncDec.cc HTTP_MessageLen_Function.cc HTTP_parse_.tab.c lex.HTTP_parse_.c TCCAssertion.cc TCCConversion.cc TCCDateTime.cc TCCEncoding.cc TCCEnv.cc TCCFileIO.cc TCCFileSystem.cc TCCInterface.cc TCCInterface_ip.h TCCIPsec.cc TCCMaths.cc TCCMessageHandling.cc TCCSystem.cc TCCTitanMetadata.cc Abstract_Socket.hh IPL4asp_PT.hh HTTP_parse_.tab.h HTTP_parse.h IPL4asp_protocol_L234.hh
cd bin ../install.script
make
ttcn3_start ./TITAN_Adapter ../config/ARMOURConfig.cfg
USER_SOURCES = ../ARMOUR_Adapter_HTTP.cc ../src/port/AbstractSocket/Abstract_Socket.cc ../General_Types.cc ../src/codec/http/HTTP_EncDec.cc ../HTTP_MessageLen.cc ../src/codec/http/HTTP_MessageLen_Function.cc ../HTTP_Types.cc ../src/codec/http/HTTP_parse_.tab.c ../IPL4asp_Functions.cc ../IPL4asp_PT.cc ../src/port/ipl4/IPL4asp_PT.cc ../IPL4asp_PortType.cc ../IPL4asp_Types.cc ../src/port/ipl4/IPL4asp_discovery.cc ../Socket_API_Definitions.cc ../src/codec/ttcUsefulFunctions/TCCAssertion.cc ../TCCAssertion_Functions.cc ../src/codec/ttcUsefulFunctions/TCCConversion.cc ../TCCConversion_Functions.cc ../src/codec/ttcUsefulFunctions/TCCDateTime.cc ../TCCDateTime_Functions.cc ../src/codec/ttcUsefulFunctions/TCCEncoding.cc ../TCCEncoding_Functions.cc ../src/codec/ttcUsefulFunctions/TCCEnv.cc ../TCCEnv_Functions.cc ../src/codec/ttcUsefulFunctions/TCCFileIO.cc ../TCCFileIO_Functions.cc ../src/codec/ttcUsefulFunctions/TCCFileSystem.cc ../TCCFileSystem_Functions.cc ../src/codec/ttcUsefulFunctions/TCCIPsec.cc ../TCCIPsec_Definitions.cc ../TCCIPsec_Functions.cc ../src/codec/ttcUsefulFunctions/TCCInterface.cc ../TCCInterface_Functions.cc ../src/codec/ttcUsefulFunctions/TCCMaths.cc ../TCCMaths_Functions.cc ../TCCMaths_GenericTypes.cc ../src/codec/ttcUsefulFunctions/TCCMessageHandling.cc ../TCCMessageHandling_Functions.cc ../TCCPermutatedParameters_Definitions.cc ../TCCPermutatedParameters_Functions.cc ../src/codec/ttcUsefulFunctions/TCCSystem.cc ../TCCSystem_Functions.cc ../TCCTemplate_Functions.cc ../src/codec/ttcUsefulFunctions/TCCTitanMetadata.cc ../TCCTitanMetadata_Functions.cc ../TestPurposeSuiteHTTP.cc ../UsefulTtcn3Types.cc ../XSD.cc ../general_typedefs.cc ../http_www_w3_org_XML_1998_namespace.cc ../src/codec/http/lex.HTTP_parse_.c
makefilegen -f -e TITAN_Adapter ../src/ARMOUR_Adapter_HTTP.ttcn ../src/codec/common/General_Types.ttcn ../src/codec/http/HTTP_MessageLen.ttcn ../src/codec/http/HTTP_Types.ttcn ../src/port/ipl4/IPL4asp_Functions.ttcn ../src/port/ipl4/IPL4asp_PortType.ttcn ../src/port/ipl4/IPL4asp_Types.ttcn ../src/port/SocketAPI/Socket_API_Definitions.ttcn ../src/codec/ttcUsefulFunctions/TCCAssertion_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCConversion_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCDateTime_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCEncoding_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCEnv_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCFileIO_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCFileSystem_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCIPsec_Definitions.ttcn ../src/codec/ttcUsefulFunctions/TCCIPsec_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCInterface_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCMaths_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCMaths_GenericTypes.ttcn ../src/codec/ttcUsefulFunctions/TCCMessageHandling_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCPermutatedParameters_Definitions.ttcn ../src/codec/ttcUsefulFunctions/TCCPermutatedParameters_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCSystem_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCTemplate_Functions.ttcn ../src/codec/ttcUsefulFunctions/TCCTitanMetadata_Functions.ttcn ../src/TestPurposeSuiteHTTP.ttcn ../src/codec/common/UsefulTtcn3Types.ttcn ../src/codec/common/XSD.ttcn ../src/codec/common/general_typedefs.ttcn ../src/codec/common/http_www_w3_org_XML_1998_namespace.ttcn ../src/port/AbstractSocket/Abstract_Socket.cc ../src/port/ipl4/IPL4asp_discovery.cc ../src/port/ipl4/IPL4asp_PT.cc ../src/codec/http/HTTP_EncDec.cc ../src/codec/http/HTTP_MessageLen_Function.cc ../src/codec/http/HTTP_parse_.tab.c ../src/codec/http/lex.HTTP_parse_.c ../src/codec/ttcUsefulFunctions/TCCAssertion.cc ../src/codec/ttcUsefulFunctions/TCCConversion.cc ../src/codec/ttcUsefulFunctions/TCCDateTime.cc ../src/codec/ttcUsefulFunctions/TCCEncoding.cc ../src/codec/ttcUsefulFunctions/TCCEnv.cc ../src/codec/ttcUsefulFunctions/TCCFileIO.cc ../src/codec/ttcUsefulFunctions/TCCFileSystem.cc ../src/codec/ttcUsefulFunctions/TCCInterface.cc ../src/codec/ttcUsefulFunctions/TCCInterface_ip.h ../src/codec/ttcUsefulFunctions/TCCIPsec.cc ../src/codec/ttcUsefulFunctions/TCCMaths.cc ../src/codec/ttcUsefulFunctions/TCCMessageHandling.cc ../src/codec/ttcUsefulFunctions/TCCSystem.cc ../src/codec/ttcUsefulFunctions/TCCTitanMetadata.cc ../src/port/AbstractSocket/Abstract_Socket.hh ../src/port/ipl4/IPL4asp_PT.hh ../src/codec/http/HTTP_parse_.tab.h ../src/codec/http/HTTP_parse.h ../src/port/ipl4/IPL4asp_protocol_L234.hh
egm@egm-VirtualBox:~/workspace/TITAN_Test_Adapter/bin4$ make g++ -c -DLINUX -I/home/egm/titan/include -Wall -o ../src/port/AbstractSocket/Abstract_Socket.o ../src/port/AbstractSocket/Abstract_Socket.cc g++ -c -DLINUX -I/home/egm/titan/include -Wall -o ../src/port/ipl4/IPL4asp_discovery.o ../src/port/ipl4/IPL4asp_discovery.cc ../src/port/ipl4/IPL4asp_discovery.cc:22:32: fatal error: IPL4asp_Functions.hh: No such file or directory compilation terminated. Makefile:141: recipe for target '../src/port/ipl4/IPL4asp_discovery.o' failed make: *** [../src/port/ipl4/IPL4asp_discovery.o] Error 1
# Flags for the C++ preprocessor (and makedepend as well): CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I. -I../src/port/ipl4/ -I../src/codec/http/ -I../src -I../src/port/SocketAPI/
INTEGER f__calc__MQTT__length(const OCTETSTRING& data){ return oct2int(data[1]) + 2; }
function receiveMQTTMessage(out MQTT_v3_1_1_Message p_messageOut) runs on ARMOURComponent { if (connectionId == -1){ // if not already connected f_cf01Up(); } var ASP_RecvFrom v_receiveMessageBytes; var boolean v_run:= true; tc_ac:=300.0; //5 minutes tc_ac.start; while(v_run) { alt{ [] IPL4.receive(t_receiveMessage(connectionId)) -> value v_receiveMessageBytes{ f_MQTT_v3_1_1_dec(v_receiveMessageBytes.msg,p_messageOut); log(p_messageOut); //tc_ac.stop; } [] IPL4.receive { log("Unexpected message") // setverdict(fail); // tc_ac.stop; } [] tc_ac.timeout { //setverdict(inconc); v_run:=false; //break the loop } }//endalt }//endwhile }//endfunction function receivePublish(in octetstring p_payload) runs on ARMOURComponent { var MQTT_v3_1_1_Message v_message; receiveMQTTMessage(v_message); //if(match(v_message,t_publishReceiveAnything)){ // receivePublish(p_payload); //} }
# Flags for the C++ compiler: CXXFLAGS = -Wall -O2 -g
: ./TCP[0x5fb2f7] ./TCP[0x4174a9] ./TCP[0x417b45] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] ./TCP[0x417b5c] :
int multiplier, value, i, j; i = 0; // encoded byte j = 2; // additional real size multiplier = 1; value = 0; do { i++; value += (oct2int(data[i]) & 127) * multiplier + j; multiplier *= 128; if (multiplier > 128*128*128){ return -1; //error case, bigger than the MQTT limit } j = 1; }while((oct2int(data[i]) & 128) != 0); return value;
//------------------------------------------------------------------------------ function f_ContentLength (in charstring par_body) return charstring //------------------------------------------------------------------------------ { var charstring a:=int2str(lengthof (par_body)) return a; } v_body:=="abcdefg" header := { ...{ header_name := "Content-Length", header_value := f_ContentLength(v_body) }... }
//------------------------------------------------------------------------------ function f_ContentLength (in charstring par_body) return integer //------------------------------------------------------------------------------ { return (lengthof (par_body)) } template HTTP_Message t_message (in charstring payload) := { msg := {{request_line :={POST,"/",1,1}},{ .... content_length := f_ContentLength(payload)..... },char2oct(payload)} }