X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/78a5ce51491a8657860a253832ad47618ea86a75..39f6725f8beebcda1b569aebdfb2c90975f3179b:/net/rfb.c?ds=sidebyside diff --git a/net/rfb.c b/net/rfb.c index 4f03092..8e5ab91 100644 --- a/net/rfb.c +++ b/net/rfb.c @@ -181,7 +181,7 @@ static int advance_chunk(struct rfb_state *state) { state->chunk_ynum = 0; state->send_state = SST_IDLE; if (!(state->chunk_actually_sent)) - state->try_in_a_bit = 2; + state->try_in_a_bit = 1; return 1; } @@ -333,13 +333,13 @@ static err_t rfb_sent(void *arg, struct tcp_pcb *pcb, uint16_t len) { static err_t rfb_poll(void *arg, struct tcp_pcb *pcb) { struct rfb_state *state = arg; - send_fsm(pcb, state); if (state->try_in_a_bit) { state->try_in_a_bit--; if (!(state->try_in_a_bit)) { state->update_requested = 1; } } + send_fsm(pcb, state); /* stats_display(); */ @@ -351,8 +351,8 @@ static void close_conn(struct tcp_pcb *pcb, struct rfb_state *state) { tcp_arg(pcb, NULL); tcp_sent(pcb, NULL); tcp_recv(pcb, NULL); - mem_free(state); mem_free(state->blockbuf); + mem_free(state); tcp_close(pcb); outputf("close_conn: done"); } @@ -428,7 +428,6 @@ static enum fsm_result recv_fsm(struct tcp_pcb *pcb, struct rfb_state *state) { case ST_MAIN: if (state->writepos < 1) return NEEDMORE; - outputf("RFB: cmd %d", state->data[0]); switch (state->data[0]) { case SET_PIXEL_FORMAT: @@ -552,9 +551,9 @@ static err_t rfb_recv(void *arg, struct tcp_pcb *pcb, } copylen = pbuf_copy_partial(p, state->data + state->writepos, p->tot_len, 0); -/* + outputf("RFB: Processing %d, wp %d, cp %d", p->tot_len, state->writepos, copylen); -*/ + state->writepos += p->tot_len; tcp_recved(pcb, p->tot_len);