mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2026-07-17 16:36:49 +00:00
Udp
This commit is contained in:
parent
ba902f8194
commit
3b40a92548
72 changed files with 3314 additions and 52 deletions
|
|
@ -17,6 +17,7 @@
|
|||
* USA.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <network/Udp.h>
|
||||
#include <rdr/InStream.h>
|
||||
#include <rdr/ZlibInStream.h>
|
||||
|
||||
|
|
@ -96,6 +97,9 @@ void SMsgReader::readMsg()
|
|||
case msgTypeQEMUClientMessage:
|
||||
readQEMUMessage();
|
||||
break;
|
||||
case msgTypeUpgradeToUdp:
|
||||
readUpgradeToUdp();
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "unknown message type %d\n", msgType);
|
||||
throw Exception("unknown message type");
|
||||
|
|
@ -329,3 +333,27 @@ void SMsgReader::readQEMUKeyEvent()
|
|||
}
|
||||
handler->keyEvent(keysym, keycode, down);
|
||||
}
|
||||
|
||||
void SMsgReader::readUpgradeToUdp()
|
||||
{
|
||||
char buf[4096], resp[4096];
|
||||
rdr::U16 len = is->readU16();
|
||||
|
||||
if (len >= sizeof(buf)) {
|
||||
vlog.error("Ignoring udp upgrade with too large payload");
|
||||
is->skip(len);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!len) {
|
||||
handler->udpDowngrade();
|
||||
return;
|
||||
}
|
||||
|
||||
is->readBytes(buf, len);
|
||||
buf[len] = '\0';
|
||||
|
||||
wuGotHttp(buf, len, resp);
|
||||
|
||||
handler->udpUpgrade(resp);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue