libosmo-netif/examples/udp-test-client.c

44 lines
885 B
C

#include "udp-test.h"
static int read_cb(struct osmo_dgram *conn)
{
struct msgb *msg = print_recv(conn);
if (!msg)
return -1;
if (msgb_length(msg))
if (msgb_data(msg)[0] >= NUM_MSG - 1)
please_dont_die = false; /* end test: */
msgb_free(msg);
return 0;
}
int main(int argc, char **argv)
{
uint8_t i;
if (!dgram_init(THOST, CPORT, SPORT, read_cb))
exit(EXIT_FAILURE);
for(i = 0; i < NUM_MSG + 1; i++) {
/* N. B: moving this alocation outside of the loop will result in segfault */
struct msgb *msg = msgb_alloc(MAX_MSG, "UDP/client");
if (!msg) {
LOGP(DUDP_TEST, LOGL_ERROR, "cann't allocate message\n");
return EXIT_FAILURE;
}
if (!mtrim(msg, i, i))
return EXIT_FAILURE;
LOGP(DUDP_TEST, LOGL_NOTICE, "queue [%u] %s\n", msgb_length(msg), msgb_hexdump(msg));
osmo_dgram_send(conn, msg);
}
main_loop(THOST, CPORT, SPORT);
return 0;
}