diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2016-07-05 08:57:59 +0200 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2016-07-05 08:57:59 +0200 |
commit | 967b104d80592c192f3e862b1266f6e90475a83e (patch) | |
tree | 38b3716ddb68b014d2d4d8bc6e94ba03eb3bef7e /mcastseed/src/mcastleech.c | |
parent | 4e05e2ffe67e922980dd9efda6790ccdfcda6ac4 (diff) | |
download | eficast-967b104d80592c192f3e862b1266f6e90475a83e.tar.gz eficast-967b104d80592c192f3e862b1266f6e90475a83e.tar.bz2 eficast-967b104d80592c192f3e862b1266f6e90475a83e.zip |
Implement dgrambuf_have_data_ready_to_write() + tidy up.
Diffstat (limited to 'mcastseed/src/mcastleech.c')
-rw-r--r-- | mcastseed/src/mcastleech.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/mcastseed/src/mcastleech.c b/mcastseed/src/mcastleech.c index 6760451..cdd0d9c 100644 --- a/mcastseed/src/mcastleech.c +++ b/mcastseed/src/mcastleech.c @@ -78,11 +78,12 @@ int main(int argc, char* argv[]) { switch ( state ) { case 1: state = (wait_hello_and_connect_back() == 0)?2:1; break; case 2: state = (wait_start_and_start_job() == 0)?2:3; break; - case 3: res = receive_data(); - if (res==0) state = 4; - else if (res==1) state=3; - else state = -1; - break; + case 3: + res = receive_data(); + if (res==0) state = 4; + else if (res==1) state=3; + else state = -1; + break; case 4: state = (finalize_job() == 0)?5:-2; break; case 5: state = (is_there_more_job() == 0)?2:0; break; } @@ -180,6 +181,11 @@ int wait_start_and_start_job() { int receive_data() { + ssize_t nwrite; + if ( dgrambuf_have_data_ready_to_write(dgrambuf) ) { + nwrite=dgrambuf_write(dgrambuf, 1); + fprintf(stderr, "dgrambuf_write => %zi\n", nwrite); + } return dgrambuf_recvmmsg(dgrambuf, mcast_sock); } @@ -234,7 +240,7 @@ void fsm_trace(int state) { static int prev_state = 0; if ( state < 0 ) { - fprintf(stderr, "Abnormal exit condition %i (from %s)", state, state_str[prev_state]); + fprintf(stderr, "Abnormal exit condition %i (from %s)\n", state, state_str[prev_state]); } else if ( prev_state != state) { if ( state == 0 ) { fprintf(stderr, "Normal exit (from %s)\n", state_str[prev_state]); @@ -277,7 +283,7 @@ void dgrambuf_init() { dgram_count = avail_mem / MULTICAST_RECV_BUF / 2 * 1024; } //XXX Dummy - //dgram_count = 3; + dgram_count = 5; /* Allocate dgrambuf */ dgrambuf = dgrambuf_new(dgram_count, MULTICAST_RECV_BUF, DGRAM_HEADER_SIZE, MAX_IOVEC); |