FreeCalypso > hg > freecalypso-sw
diff rvinterf/lowlevel/packetrx.c @ 174:3256dc6e84ae
rvinterf: refactored rvtdump compiles and works
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Fri, 22 Nov 2013 07:41:31 +0000 |
parents | f42854da4563 |
children | 2f285f20d617 |
line wrap: on
line diff
--- a/rvinterf/lowlevel/packetrx.c Fri Nov 22 05:56:07 2013 +0000 +++ b/rvinterf/lowlevel/packetrx.c Fri Nov 22 07:41:31 2013 +0000 @@ -6,21 +6,21 @@ #include <stdio.h> #include <stdlib.h> #include <unistd.h> -#include "pktmux.h" +#include "../pktmux.h" +#include "../limits.h" extern int target_fd; -#define MAXPKT 512 -u_char rxpkt[MAXPKT]; +u_char rxpkt[MAX_PKT_FROM_TARGET]; size_t rxpkt_len; -extern char pr_item[]; - static int in_pkt, dle_state, toobig; static void process_inbyte(inb) { + char errbuf[128]; + if (!in_pkt) { if (inb != STX || dle_state) { rxpkt_len++; @@ -28,10 +28,10 @@ return; } if (rxpkt_len) { - sprintf(pr_item, + sprintf(errbuf, "Warning: Rx %u byte%s outside of a packet", (unsigned)rxpkt_len, rxpkt_len != 1 ? "s" : ""); - print_item(); + output_line(errbuf); rxpkt_len = 0; } in_pkt = 1; @@ -41,9 +41,9 @@ if (dle_state) { dle_state = 0; if (inb != STX && inb != DLE) { - sprintf(pr_item, - "Rx framing error: %02X after DLE\n", inb); - print_item(); + sprintf(errbuf, + "Rx framing error: %02X after DLE", inb); + output_line(errbuf); in_pkt = 0; rxpkt_len = 0; return; @@ -61,10 +61,9 @@ rxpkt_len = 0; return; } -data: if (rxpkt_len >= MAXPKT) { +data: if (rxpkt_len >= MAX_PKT_FROM_TARGET) { if (!toobig) { - sprintf(pr_item, "Error: Rx packet too big!\n"); - print_item(); + output_line("Error: Rx packet too big!"); toobig = 1; } return;