summaryrefslogtreecommitdiff
path: root/mcastseed/src/mcastleech.c
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2016-07-05 08:57:59 +0200
committerLudovic Pouzenc <ludovic@pouzenc.fr>2016-07-05 08:57:59 +0200
commit967b104d80592c192f3e862b1266f6e90475a83e (patch)
tree38b3716ddb68b014d2d4d8bc6e94ba03eb3bef7e /mcastseed/src/mcastleech.c
parent4e05e2ffe67e922980dd9efda6790ccdfcda6ac4 (diff)
downloadeficast-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.c20
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);