mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralgw.git
synced 2025-11-02 19:57:49 +00:00
Improving RTTYS
This commit is contained in:
@@ -28,45 +28,53 @@ namespace OpenWifi {
|
|||||||
socket().setNoDelay(true);
|
socket().setNoDelay(true);
|
||||||
socket().setReceiveBufferSize(64000);
|
socket().setReceiveBufferSize(64000);
|
||||||
|
|
||||||
|
Poco::Timespan timeOut(10,0);
|
||||||
|
|
||||||
while(running_) {
|
while(running_) {
|
||||||
|
|
||||||
int received = socket().receiveBytes(inBuf_);
|
if(socket().poll(timeOut,Poco::Net::Socket::SELECT_READ) == false) {
|
||||||
while(!inBuf_.isEmpty()) {
|
|
||||||
std::size_t msg_len;
|
|
||||||
if (waiting_for_bytes_ == 0) {
|
|
||||||
u_char header[3]{0};
|
|
||||||
inBuf_.read((char *)&header[0], 3);
|
|
||||||
last_command_ = header[0];
|
|
||||||
msg_len = header[1] * 256 + header[2];
|
|
||||||
} else {
|
|
||||||
msg_len = received;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (last_command_) {
|
} else {
|
||||||
case msgTypeRegister:
|
int received = socket().receiveBytes(inBuf_);
|
||||||
return do_msgTypeRegister(msg_len);
|
std::cout << "Received " << received << " bytes." << std::endl;
|
||||||
case msgTypeLogin:
|
while (!inBuf_.isEmpty()) {
|
||||||
return do_msgTypeLogin(msg_len);
|
std::size_t msg_len;
|
||||||
case msgTypeLogout:
|
if (waiting_for_bytes_ == 0) {
|
||||||
return do_msgTypeLogout(msg_len);
|
u_char header[3]{0};
|
||||||
case msgTypeTermData:
|
inBuf_.read((char *)&header[0], 3);
|
||||||
return do_msgTypeTermData(msg_len);
|
last_command_ = header[0];
|
||||||
case msgTypeWinsize:
|
msg_len = header[1] * 256 + header[2];
|
||||||
return do_msgTypeWinsize(msg_len);
|
} else {
|
||||||
case msgTypeCmd:
|
msg_len = received;
|
||||||
return do_msgTypeCmd(msg_len);
|
}
|
||||||
case msgTypeHeartbeat:
|
|
||||||
return do_msgTypeHeartbeat(msg_len);
|
switch (last_command_) {
|
||||||
case msgTypeFile:
|
case msgTypeRegister:
|
||||||
return do_msgTypeFile(msg_len);
|
return do_msgTypeRegister(msg_len);
|
||||||
case msgTypeHttp:
|
case msgTypeLogin:
|
||||||
return do_msgTypeHttp(msg_len);
|
return do_msgTypeLogin(msg_len);
|
||||||
case msgTypeAck:
|
case msgTypeLogout:
|
||||||
return do_msgTypeAck(msg_len);
|
return do_msgTypeLogout(msg_len);
|
||||||
case msgTypeMax:
|
case msgTypeTermData:
|
||||||
return do_msgTypeMax(msg_len);
|
return do_msgTypeTermData(msg_len);
|
||||||
default:
|
case msgTypeWinsize:
|
||||||
std::cout << conn_id_ << ": Unknown command: " << (int)last_command_ << std::endl;
|
return do_msgTypeWinsize(msg_len);
|
||||||
|
case msgTypeCmd:
|
||||||
|
return do_msgTypeCmd(msg_len);
|
||||||
|
case msgTypeHeartbeat:
|
||||||
|
return do_msgTypeHeartbeat(msg_len);
|
||||||
|
case msgTypeFile:
|
||||||
|
return do_msgTypeFile(msg_len);
|
||||||
|
case msgTypeHttp:
|
||||||
|
return do_msgTypeHttp(msg_len);
|
||||||
|
case msgTypeAck:
|
||||||
|
return do_msgTypeAck(msg_len);
|
||||||
|
case msgTypeMax:
|
||||||
|
return do_msgTypeMax(msg_len);
|
||||||
|
default:
|
||||||
|
std::cout << conn_id_ << ": Unknown command: " << (int)last_command_
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user