X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/8cc40c4dafdeb2d5786695c19163c8e7cc757a46..dadcd4fcc62ab37d4e30da805de9713521c28238:/net/rfb.c?ds=inline diff --git a/net/rfb.c b/net/rfb.c index 1f620f0..5735db1 100644 --- a/net/rfb.c +++ b/net/rfb.c @@ -3,6 +3,8 @@ #include #include +#include "../aseg-paging/keyboard.h" + #include "lwip/tcp.h" #include "rfb.h" @@ -358,9 +360,11 @@ static enum fsm_result recv_fsm(struct tcp_pcb *pcb, struct rfb_state *state) { case KEY_EVENT: if (state->writepos < sizeof(struct key_event_pkt)) return NEEDMORE; - outputf("RFB: Key"); - /* XXX stub */ + struct key_event_pkt * p = (struct key_event_pkt *)state->data; + + outputf("RFB: Key: %d (%c)", htonl(p->keysym), (htonl(p->keysym) & 0xFF)); + kbd_inject_keysym(htonl(p->keysym), p->downflag); state->readpos += sizeof(struct key_event_pkt); return OK;