From 9df7dc5f69c3a8edc2150b0702c1504b5f7be8b7 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 1 Jun 2011 17:29:15 +0200 Subject: wireformat: Send the length in the network order.. this is a format change. but it is necessary now. --- include/osmo-pcap/wireformat.h | 4 ++-- src/osmo_client_network.c | 4 ++-- src/osmo_server_network.c | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/osmo-pcap/wireformat.h b/include/osmo-pcap/wireformat.h index a642bb1..f094051 100644 --- a/include/osmo-pcap/wireformat.h +++ b/include/osmo-pcap/wireformat.h @@ -38,8 +38,8 @@ struct osmo_pcap_data { uint8_t type; - uint8_t spare[3]; - uint32_t len; + uint8_t spare; + uint16_t len; uint8_t data[0]; } __attribute__((packed)); diff --git a/src/osmo_client_network.c b/src/osmo_client_network.c index 60f3216..281e8eb 100644 --- a/src/osmo_client_network.c +++ b/src/osmo_client_network.c @@ -119,7 +119,7 @@ void osmo_client_send_data(struct osmo_pcap_client *client, msg->l3h = msgb_put(msg, in_hdr->caplen); memcpy(msg->l3h, data, in_hdr->caplen); - om_hdr->len = msgb_l2len(msg); + om_hdr->len = htons(msgb_l2len(msg)); write_data(client, msg); } @@ -138,7 +138,7 @@ void osmo_client_send_link(struct osmo_pcap_client *client) om_hdr = (struct osmo_pcap_data *) msgb_put(msg, sizeof(*om_hdr)); om_hdr->type = PKT_LINK_HDR; - om_hdr->len = sizeof(*hdr); + om_hdr->len = htons(sizeof(*hdr)); hdr = (struct pcap_file_header *) msgb_put(msg, sizeof(*hdr)); hdr->magic = 0xa1b2c3d4; diff --git a/src/osmo_server_network.c b/src/osmo_server_network.c index 5b00710..d1948a8 100644 --- a/src/osmo_server_network.c +++ b/src/osmo_server_network.c @@ -188,6 +188,7 @@ static int read_cb(struct osmo_fd *fd, unsigned int what) return -1; } + data->len = ntohs(data->len); if (data->len > 2000) { LOGP(DSERVER, LOGL_ERROR, "Unplausible result %u\n", data->len); close_connection(conn); -- cgit v1.2.3