Mostly because I thought it of some value to make the resulting mask readable and apparent to someone looking at the code.
On Apr 30, 2011, at 8:14 PM, Tim Mattox wrote: > Why not do this instead of a big switch statement? > > pval = strtol(msk, NULL, 10); > if ((pval > 30) || (pval < 1)) { > opal_output(0, "opal_iftupletoaddr: unknown mask"); > free(addr); > return OPAL_ERROR; > } > *mask = 0xFFFFFFFF << (32 - pval); > > > On Fri, Apr 29, 2011 at 1:56 PM, <r...@osl.iu.edu> wrote: >> Author: rhc >> Date: 2011-04-29 13:56:15 EDT (Fri, 29 Apr 2011) >> New Revision: 24665 >> URL: https://svn.open-mpi.org/trac/ompi/changeset/24665 >> >> Log: >> Cover all the netmask values >> >> Text files modified: >> trunk/opal/util/if.c | 103 +++++++++++++++++++++++++++++++++++++-- >> 1 files changed, 96 insertions(+), 7 deletions(-) >> >> Modified: trunk/opal/util/if.c >> ============================================================================== >> --- trunk/opal/util/if.c (original) >> +++ trunk/opal/util/if.c 2011-04-29 13:56:15 EDT (Fri, 29 Apr 2011) >> @@ -534,13 +534,102 @@ >> * much of the addr to use: e.g., /16 >> */ >> pval = strtol(msk, NULL, 10); >> - if (24 == pval) { >> - *mask = 0xFFFFFF00; >> - } else if (16 == pval) { >> - *mask = 0xFFFF0000; >> - } else if (8 == pval) { >> - *mask = 0xFF000000; >> - } else { >> + switch(pval) { >> + case 30: >> + *mask = parse_dots("255.255.255.252"); >> + break; >> + case 29: >> + *mask = parse_dots("255.255.255.248"); >> + break; >> + case 28: >> + *mask = parse_dots("255.255.255.240"); >> + break; >> + case 27: >> + *mask = parse_dots("255.255.255.224"); >> + break; >> + case 26: >> + *mask = parse_dots("255.255.255.192"); >> + break; >> + case 25: >> + *mask = parse_dots("255.255.255.128"); >> + break; >> + case 24: >> + break; >> + *mask = parse_dots("255.255.255.0"); >> + break; >> + case 23: >> + *mask = parse_dots("255.255.254.0"); >> + break; >> + case 22: >> + *mask = parse_dots("255.255.252.0"); >> + break; >> + case 21: >> + *mask = parse_dots("255.255.248.0"); >> + break; >> + case 20: >> + *mask = parse_dots("255.255.240.0"); >> + break; >> + case 19: >> + *mask = parse_dots("255.255.224.0"); >> + break; >> + case 18: >> + *mask = parse_dots("255.255.192.0"); >> + break; >> + case 17: >> + *mask = parse_dots("255.255.128.0"); >> + break; >> + case 16: >> + *mask = parse_dots("255.255.0.0"); >> + break; >> + case 15: >> + *mask = parse_dots("255.254.0.0"); >> + break; >> + case 14: >> + *mask = parse_dots("255.252.0.0"); >> + break; >> + case 13: >> + *mask = parse_dots("255.248.0.0"); >> + break; >> + case 12: >> + *mask = parse_dots("255.240.0.0"); >> + break; >> + case 11: >> + *mask = parse_dots("255.224.0.0"); >> + break; >> + case 10: >> + *mask = parse_dots("255.192.0.0"); >> + break; >> + case 9: >> + *mask = parse_dots("255.128.0.0"); >> + break; >> + case 8: >> + *mask = parse_dots("255.0.0.0"); >> + break; >> + case 7: >> + *mask = parse_dots("254.0.0.0"); >> + break; >> + case 6: >> + *mask = parse_dots("252.0.0.0"); >> + break; >> + case 5: >> + *mask = parse_dots("248.0.0.0"); >> + break; >> + case 4: >> + *mask = parse_dots("240.0.0.0"); >> + break; >> + case 3: >> + *mask = parse_dots("224.0.0.0"); >> + break; >> + case 2: >> + *mask = parse_dots("192.0.0.0"); >> + break; >> + case 1: >> + *mask = parse_dots("128.0.0.0"); >> + break; >> + case 0: >> + *mask = parse_dots("0.0.0.0"); >> + break; >> + default: >> opal_output(0, "opal_iftupletoaddr: unknown mask"); >> free(addr); >> return OPAL_ERROR; >> _______________________________________________ >> svn-full mailing list >> svn-f...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full >> > > > > -- > Tim Mattox, Ph.D. - http://homepage.mac.com/tmattox/ > timat...@open-mpi.org || tmat...@gmail.com > I'm a bright... http://www.the-brights.net/ > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel