From: Filippos Giannakos Date: Mon, 3 Dec 2012 17:18:17 +0000 (+0200) Subject: make mapper use macros for reading arguments. also check than arguments were provided X-Git-Tag: debian/0.3.1~9^2~19 X-Git-Url: https://code.grnet.gr/git/archipelago/commitdiff_plain/702259a030d8b9da40d0dcf11d542609883ec538 make mapper use macros for reading arguments. also check than arguments were provided --- diff --git a/xseg/peers/user/mt-mapperd.c b/xseg/peers/user/mt-mapperd.c index c04edaa..35c0e17 100644 --- a/xseg/peers/user/mt-mapperd.c +++ b/xseg/peers/user/mt-mapperd.c @@ -2175,27 +2175,21 @@ int custom_peer_init(struct peerd *peer, int argc, char *argv[]) peer->peer_reqs[i].priv = mio; } - for (i = 0; i < argc; i++) { - if (!strcmp(argv[i], "-bp") && (i+1) < argc){ - mapper->bportno = atoi(argv[i+1]); - i += 1; - continue; - } - if (!strcmp(argv[i], "-mbp") && (i+1) < argc){ - mapper->mbportno = atoi(argv[i+1]); - i += 1; - continue; - } - /* enforce only one thread */ - if (!strcmp(argv[i], "-t") && (i+1) < argc){ - int t = atoi(argv[i+1]); - if (t != 1) { - printf("ERROR: mapperd supports only one thread for the moment\nExiting ...\n"); - return -1; - } - i += 1; - continue; - } + mapper->bportno = -1; + mapper->mbportno = -1; + BEGIN_READ_ARGS(argc, argv); + READ_ARG_ULONG("-bp", mapper->bportno); + READ_ARG_ULONG("-mbp", mapper->mbportno); + END_READ_ARGS(); + if (mapper->bportno == -1){ + XSEGLOG2(&lc, E, "Portno for blocker must be provided"); + usage(argv[0]); + return -1; + } + if (mapper->mbportno == -1){ + XSEGLOG2(&lc, E, "Portno for mblocker must be provided"); + usage(argv[0]); + return -1; } const struct sched_param param = { .sched_priority = 99 }; diff --git a/xseg/peers/user/peer.h b/xseg/peers/user/peer.h index 53335b0..e9f0d92 100644 --- a/xseg/peers/user/peer.h +++ b/xseg/peers/user/peer.h @@ -85,6 +85,7 @@ struct peer_req *alloc_peer_req(struct peerd *peer); void free_peer_req(struct peerd *peer, struct peer_req *pr); void get_submits_stats(); void get_responds_stats(); +void usage(); #ifdef MT int thread_execute(struct peerd *peer, void (*func)(void *arg), void *arg);