From a894cf85dcb449cf4a1db90ddadfff35f00c0bea Mon Sep 17 00:00:00 2001 From: Armin Luntzer <armin.luntzer@univie.ac.at> Date: Tue, 4 Aug 2020 14:39:37 +0200 Subject: [PATCH] fixed: usr_pkt_to_gresb() did not convert the raw buffer to a gresb data payload --- GRESB/gresb_bridge.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/GRESB/gresb_bridge.c b/GRESB/gresb_bridge.c index 013231e..aa0a07b 100644 --- a/GRESB/gresb_bridge.c +++ b/GRESB/gresb_bridge.c @@ -234,6 +234,7 @@ static int usr_pkt_to_gresb(int fd, struct bridge_cfg *cfg) { int ret; ssize_t recv_bytes; + uint8_t *gresb_pkt; unsigned char *recv_buffer; @@ -248,13 +249,20 @@ static int usr_pkt_to_gresb(int fd, struct bridge_cfg *cfg) printf("%c", recv_buffer[i]); } #endif + gresb_pkt = gresb_create_host_data_pkt(recv_buffer, recv_bytes); + + if (!gresb_pkt) { + printf("error creating packet\n"); + exit(EXIT_FAILURE); + } /* we SEND to the TX port */ - ret = send_all(cfg->gresb_tx->socket, - recv_buffer, recv_bytes); + ret = send_all(cfg->gresb_tx->socket, gresb_pkt, + gresb_get_host_data_pkt_size(gresb_pkt)); if (ret == -1) perror("send"); + gresb_destroy_host_data_pkt((struct host_to_gresb_pkt *) gresb_pkt); free(recv_buffer); return recv_bytes; -- GitLab