diff options
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); |