-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
What
grblHAL not respondig with pong opcodes to ping messages. Nothing arrives to the client side. No error message was triggered.
Client
Tested with python websocket-client library. It sends a packet with the ping OpCode and no data
Hack
I cannot understand the code easily so I just hardcoded a tcp_write with the OpCode for pong. websocket-client does not care about the payload in the pong response, but it should be the same as the one sent with the ping packed which triggered it.
case WsOpcode_Ping:
if((frame_done = plen >= session->header.payload_rem)) {
if(session->state != WsState_Closing) {
plen -= session->header.payload_rem;
if(collect_msg_frame(&session->header, payload, session->header.payload_rem))
payload = session->header.frame;
fs.opcode = WsOpcode_Pong;
payload[0] = fs.token;
uint8_t txbuf[5];
if(tcp_sndbuf(session->pcb) > 4) {
txbuf[0] = wshdr_pong.token;
txbuf[1] = 2;
strcpy((char *)&txbuf[2], "Hi");
tcp_write(session->pcb, txbuf, 4, TCP_WRITE_FLAG_COPY);
tcp_output(session->pcb);
}
// tcp_write(session->pcb, payload, session->header.payload_len, 1);
// tcp_output(session->pcb);
}
} else {
collect_msg_frame(&session->header, payload, plen);
plen = 0;
}
break;
A proper solution should be implemented.
Metadata
Metadata
Assignees
Labels
No labels