void setupProgram(int ac, char *av[]) { int indx; prog_init(); prog_set_syntax("[options] router_name"); prog_set_options(options); prog_set_version("2.1"); prog_set_date("20091024"); prog_set_author("Muthucumaru Maheswaran <*****@*****.**>"); prog_set_contact(prog_author()); prog_set_url("http://www.cs.mcgill.ca/~anrl/gini/"); prog_set_desc("GINI router provides a user-space IP router for teaching and learning purposes."); prog_set_verbosity_level(1); indx = prog_opt_process(ac, av); if (indx < ac) rconfig.router_name = strdup(av[indx]); if (rconfig.router_name == NULL) { prog_usage_msg("\n[setupProgram]:: Router name missing.. \n\n"); exit(1); } prog_set_name(rconfig.router_name); rconfig.gini_home = getenv("GINI_HOME"); if (rconfig.gini_home == NULL) { verbose(2, "\n[setupProgram]:: Environment variable GINI_HOME is not set..\n\n"); exit(1); } }
/* * set verbose [value] * set raw-time [true | false ] * set update-delay value * set sched-cycle value */ void setCmd() { char *next_tok = strtok(NULL, " \n"); int level, cyclelen, rawmode, updateinterval; if (next_tok == NULL) error("[setCmd]:: ERROR!! missing set-parameter"); else if (!strcmp(next_tok, "sched-cycle")) { if ((next_tok = strtok(NULL, " \n")) != NULL) { cyclelen = atoi(next_tok); if (cyclelen >=0) rconfig.schedcycle = cyclelen; else verbose(1, "ERROR!! schedule cycle length should be positive \n"); } else printf("\nSchedule cycle length: %d (microseconds) \n", rconfig.schedcycle); } else if (!strcmp(next_tok, "verbose")) { if ((next_tok = strtok(NULL, " \n")) != NULL) { level = atoi(next_tok); if ((level >= 0) && (level <= 6)) prog_set_verbosity_level(level); else verbose(1, "[setCmd]:: ERROR!! level should be in [0..6] \n"); } else printf("\nVerbose level: %ld \n", prog_verbosity_level()); } else if (!strcmp(next_tok, "raw-times")) { if ((next_tok = strtok(NULL, " \n")) != NULL) { rawmode = atoi(next_tok); if ((rawmode == 0) || (rawmode == 1)) setTimeMode(rawmode); else printf("\nRaw time mode: %d \n", getTimeMode()); } else if (!strcmp(next_tok, "update-delay")) { if ((next_tok = strtok(NULL, " \n")) != NULL) { updateinterval = atoi(next_tok); if (updateinterval >=2) setUpdateInterval(updateinterval); else verbose(1, "Invalid update interval.. setting failed.. \n"); } else printf("Update interval: %d (seconds) \n", getUpdateInterval()); } } }