summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2001-07-03 01:02:26 +0000
committerbrian <brian@FreeBSD.org>2001-07-03 01:02:26 +0000
commit9251775bc41df032ba09c811de2b9aa93e0d1d2d (patch)
tree30820d44292f8ba818ce9c268eb095641f969a33 /usr.sbin
parent0f05e27c70d3536fb0080acf391f9fdd81f5cd1f (diff)
downloadFreeBSD-src-9251775bc41df032ba09c811de2b9aa93e0d1d2d.zip
FreeBSD-src-9251775bc41df032ba09c811de2b9aa93e0d1d2d.tar.gz
Do away with the ``err'' variable.
Inspired by: kris
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ppp/command.c191
1 files changed, 117 insertions, 74 deletions
diff --git a/usr.sbin/ppp/command.c b/usr.sbin/ppp/command.c
index 0fa08b5..c7b3689 100644
--- a/usr.sbin/ppp/command.c
+++ b/usr.sbin/ppp/command.c
@@ -1488,11 +1488,10 @@ static int
SetVariable(struct cmdargs const *arg)
{
long long_val, param = (long)arg->cmd->args;
- int mode, dummyint, f, first;
+ int mode, dummyint, f, first, res;
u_short *change;
const char *argp;
struct datalink *cx = arg->cx; /* LOCAL_CX uses this */
- const char *err = NULL;
struct link *l = command_ChooseLink(arg); /* LOCAL_CX_OPT uses this */
struct in_addr dummyaddr, *addr;
@@ -1501,6 +1500,8 @@ SetVariable(struct cmdargs const *arg)
else
argp = "";
+ res = 0;
+
if ((arg->cmd->lauth & LOCAL_CX) && !cx) {
log_Printf(LogWARN, "set %s: No context (use the `link' command)\n",
arg->cmd->name);
@@ -1542,14 +1543,16 @@ SetVariable(struct cmdargs const *arg)
if (v1 < 0 || *end) {
log_Printf(LogWARN, "autoload: %s: Invalid min percentage\n",
arg->argv[arg->argn]);
- return 1;
+ res = 1;
+ break;
}
v2 = strtol(arg->argv[arg->argn + 1], &end, 0);
if (v2 < 0 || *end) {
log_Printf(LogWARN, "autoload: %s: Invalid max percentage\n",
arg->argv[arg->argn + 1]);
- return 1;
+ res = 1;
+ break;
}
if (v2 < v1) {
v3 = v1;
@@ -1561,7 +1564,8 @@ SetVariable(struct cmdargs const *arg)
if (v3 <= 0 || *end) {
log_Printf(LogWARN, "autoload: %s: Invalid throughput period\n",
arg->argv[arg->argn + 2]);
- return 1;
+ res = 1;
+ break;
}
arg->bundle->ncp.mp.cfg.autoload.min = v1;
@@ -1569,8 +1573,8 @@ SetVariable(struct cmdargs const *arg)
arg->bundle->ncp.mp.cfg.autoload.period = v3;
mp_RestartAutoloadTimer(&arg->bundle->ncp.mp);
} else {
- err = "Set autoload requires three arguments\n";
- log_Printf(LogWARN, "%s", err);
+ log_Printf(LogWARN, "Set autoload requires three arguments\n");
+ res = 1;
}
break;
@@ -1604,15 +1608,17 @@ SetVariable(struct cmdargs const *arg)
} else
l->ccp.cfg.deflate.in.winsize = 0;
} else {
- err = "No window size specified\n";
- log_Printf(LogWARN, "%s", err);
+ log_Printf(LogWARN, "No window size specified\n");
+ res = 1;
}
break;
#ifdef HAVE_DES
case VAR_MPPE:
- if (arg->argc > arg->argn + 2)
- return -1;
+ if (arg->argc > arg->argn + 2) {
+ res = -1;
+ break;
+ }
if (arg->argc == arg->argn) {
l->ccp.cfg.mppe.keybits = 0;
@@ -1627,7 +1633,8 @@ SetVariable(struct cmdargs const *arg)
long_val = atol(argp);
if (long_val != 40 && long_val != 56 && long_val != 128) {
log_Printf(LogWARN, "%s: Invalid bits value\n", argp);
- return -1;
+ res = -1;
+ break;
}
}
@@ -1641,7 +1648,8 @@ SetVariable(struct cmdargs const *arg)
else {
log_Printf(LogWARN, "%s: Invalid state value\n",
arg->argv[arg->argn + 1]);
- return -1;
+ res = -1;
+ break;
}
} else
l->ccp.cfg.mppe.state = MPPE_ANYSTATE;
@@ -1661,8 +1669,8 @@ SetVariable(struct cmdargs const *arg)
sscanf(argp, "%lx", &ulong_val);
cx->physical->link.lcp.cfg.accmap = (u_int32_t)ulong_val;
} else {
- err = "No accmap specified\n";
- log_Printf(LogWARN, "%s", err);
+ log_Printf(LogWARN, "No accmap specified\n");
+ res = 1;
}
break;
@@ -1670,7 +1678,8 @@ SetVariable(struct cmdargs const *arg)
mode = Nam2mode(argp);
if (mode == PHYS_NONE || mode == PHYS_ALL) {
log_Printf(LogWARN, "%s: Invalid mode\n", argp);
- return -1;
+ res = -1;
+ break;
}
bundle_SetMode(arg->bundle, cx, mode);
break;
@@ -1683,20 +1692,26 @@ SetVariable(struct cmdargs const *arg)
/* Make sure none of our links are DATALINK_LCP or greater */
if (bundle_HighestState(arg->bundle) >= DATALINK_LCP) {
log_Printf(LogWARN, "mrru: Only changable before LCP negotiations\n");
- return 1;
+ res = 1;
+ break;
}
break;
default:
log_Printf(LogWARN, "mrru: Only changable at phase DEAD/ESTABLISH\n");
- return 1;
+ res = 1;
+ break;
}
+ if (res != 0)
+ break;
long_val = atol(argp);
if (long_val && long_val < MIN_MRU) {
log_Printf(LogWARN, "MRRU %ld: too small - min %d\n", long_val, MIN_MRU);
- return 1;
+ res = 1;
+ break;
} else if (long_val > MAX_MRU) {
log_Printf(LogWARN, "MRRU %ld: too big - max %d\n", long_val, MAX_MRU);
- return 1;
+ res = 1;
+ break;
} else
arg->bundle->ncp.mp.cfg.mrru = long_val;
break;
@@ -1704,40 +1719,52 @@ SetVariable(struct cmdargs const *arg)
case VAR_MRU:
switch(arg->argc - arg->argn) {
case 1:
- if (argp[strspn(argp, "0123456789")] != '\0')
- return -1;
+ if (argp[strspn(argp, "0123456789")] != '\0') {
+ res = -1;
+ break;
+ }
+ /*FALLTHRU*/
case 0:
long_val = atol(argp);
change = &l->lcp.cfg.mru;
if (long_val > l->lcp.cfg.max_mru) {
log_Printf(LogWARN, "MRU %ld: too large - max set to %d\n", long_val,
l->lcp.cfg.max_mru);
- return 1;
+ res = 1;
+ break;
}
break;
case 2:
- if (strcasecmp(argp, "max") && strcasecmp(argp, "maximum"))
- return -1;
+ if (strcasecmp(argp, "max") && strcasecmp(argp, "maximum")) {
+ res = -1;
+ break;
+ }
long_val = atol(arg->argv[arg->argn + 1]);
change = &l->lcp.cfg.max_mru;
if (long_val > MAX_MRU) {
log_Printf(LogWARN, "MRU %ld: too large - maximum is %d\n", long_val,
MAX_MRU);
- return 1;
+ res = 1;
+ break;
}
break;
default:
- return -1;
+ res = -1;
+ break;
}
+ if (res != 0)
+ break;
if (long_val == 0)
*change = DEF_MRU;
else if (long_val < MIN_MRU) {
log_Printf(LogWARN, "MRU %ld: too small - min %d\n", long_val, MIN_MRU);
- return 1;
+ res = 1;
+ break;
} else if (long_val > MAX_MRU) {
log_Printf(LogWARN, "MRU %ld: too big - max %d\n", long_val, MAX_MRU);
- return 1;
+ res = 1;
+ break;
} else
*change = long_val;
if (l->lcp.cfg.mru > *change)
@@ -1747,38 +1774,51 @@ SetVariable(struct cmdargs const *arg)
case VAR_MTU:
switch(arg->argc - arg->argn) {
case 1:
- if (argp[strspn(argp, "0123456789")] != '\0')
- return -1;
+ if (argp[strspn(argp, "0123456789")] != '\0') {
+ res = -1;
+ break;
+ }
+ /*FALLTHRU*/
case 0:
long_val = atol(argp);
change = &l->lcp.cfg.mtu;
if (long_val > l->lcp.cfg.max_mtu) {
log_Printf(LogWARN, "MTU %ld: too large - max set to %d\n", long_val,
l->lcp.cfg.max_mtu);
- return 1;
+ res = 1;
+ break;
}
break;
case 2:
- if (strcasecmp(argp, "max") && strcasecmp(argp, "maximum"))
- return -1;
+ if (strcasecmp(argp, "max") && strcasecmp(argp, "maximum")) {
+ res = -1;
+ break;
+ }
long_val = atol(arg->argv[arg->argn + 1]);
change = &l->lcp.cfg.max_mtu;
if (long_val > MAX_MTU) {
log_Printf(LogWARN, "MTU %ld: too large - maximum is %d\n", long_val,
MAX_MTU);
- return 1;
+ res = 1;
+ break;
}
break;
default:
- return -1;
+ res = -1;
+ break;
}
+ if (res != 0)
+ break;
+
if (long_val && long_val < MIN_MTU) {
log_Printf(LogWARN, "MTU %ld: too small - min %d\n", long_val, MIN_MTU);
- return 1;
+ res = 1;
+ break;
} else if (long_val > MAX_MTU) {
log_Printf(LogWARN, "MTU %ld: too big - max %d\n", long_val, MAX_MTU);
- return 1;
+ res = 1;
+ break;
} else
*change = long_val;
if (l->lcp.cfg.mtu > *change)
@@ -1792,8 +1832,8 @@ SetVariable(struct cmdargs const *arg)
else if (strcasecmp(argp, "passive") == 0)
cx->physical->link.lcp.cfg.openmode = OPEN_PASSIVE;
else {
- err = "%s: Invalid openmode\n";
- log_Printf(LogWARN, err, argp);
+ log_Printf(LogWARN, "%s: Invalid openmode\n", argp);
+ res = 1;
}
break;
@@ -1819,19 +1859,19 @@ SetVariable(struct cmdargs const *arg)
break;
case VAR_IDLETIMEOUT:
- if (arg->argc > arg->argn+2)
- err = "Too many idle timeout values\n";
- else if (arg->argc == arg->argn)
- err = "Too few idle timeout values\n";
- else {
+ if (arg->argc > arg->argn+2) {
+ log_Printf(LogWARN, "Too many idle timeout values\n");
+ res = 1;
+ } else if (arg->argc == arg->argn) {
+ log_Printf(LogWARN, "Too few idle timeout values\n");
+ res = 1;
+ } else {
int timeout, min;
timeout = atoi(argp);
min = arg->argc == arg->argn + 2 ? atoi(arg->argv[arg->argn + 1]) : -1;
bundle_SetIdleTimer(arg->bundle, timeout, min);
}
- if (err)
- log_Printf(LogWARN, "%s", err);
break;
case VAR_LQRPERIOD:
@@ -1839,41 +1879,41 @@ SetVariable(struct cmdargs const *arg)
if (long_val < MIN_LQRPERIOD) {
log_Printf(LogWARN, "%ld: Invalid lqr period - min %d\n",
long_val, MIN_LQRPERIOD);
- return 1;
+ res = 1;
} else
l->lcp.cfg.lqrperiod = long_val;
break;
case VAR_LCPRETRY:
- return SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
- &cx->physical->link.lcp.cfg.fsm.timeout,
- &cx->physical->link.lcp.cfg.fsm.maxreq,
- &cx->physical->link.lcp.cfg.fsm.maxtrm, DEF_FSMTRIES);
+ res = SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
+ &cx->physical->link.lcp.cfg.fsm.timeout,
+ &cx->physical->link.lcp.cfg.fsm.maxreq,
+ &cx->physical->link.lcp.cfg.fsm.maxtrm, DEF_FSMTRIES);
break;
case VAR_CHAPRETRY:
- return SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
- &cx->chap.auth.cfg.fsm.timeout,
- &cx->chap.auth.cfg.fsm.maxreq, NULL, DEF_FSMAUTHTRIES);
+ res = SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
+ &cx->chap.auth.cfg.fsm.timeout,
+ &cx->chap.auth.cfg.fsm.maxreq, NULL, DEF_FSMAUTHTRIES);
break;
case VAR_PAPRETRY:
- return SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
- &cx->pap.cfg.fsm.timeout, &cx->pap.cfg.fsm.maxreq,
- NULL, DEF_FSMAUTHTRIES);
+ res = SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
+ &cx->pap.cfg.fsm.timeout, &cx->pap.cfg.fsm.maxreq,
+ NULL, DEF_FSMAUTHTRIES);
break;
case VAR_CCPRETRY:
- return SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
- &l->ccp.cfg.fsm.timeout, &l->ccp.cfg.fsm.maxreq,
- &l->ccp.cfg.fsm.maxtrm, DEF_FSMTRIES);
+ res = SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
+ &l->ccp.cfg.fsm.timeout, &l->ccp.cfg.fsm.maxreq,
+ &l->ccp.cfg.fsm.maxtrm, DEF_FSMTRIES);
break;
case VAR_IPCPRETRY:
- return SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
- &arg->bundle->ncp.ipcp.cfg.fsm.timeout,
- &arg->bundle->ncp.ipcp.cfg.fsm.maxreq,
- &arg->bundle->ncp.ipcp.cfg.fsm.maxtrm, DEF_FSMTRIES);
+ res = SetRetry(arg->argc - arg->argn, arg->argv + arg->argn,
+ &arg->bundle->ncp.ipcp.cfg.fsm.timeout,
+ &arg->bundle->ncp.ipcp.cfg.fsm.maxreq,
+ &arg->bundle->ncp.ipcp.cfg.fsm.maxtrm, DEF_FSMTRIES);
break;
case VAR_NBNS:
@@ -1922,8 +1962,10 @@ SetVariable(struct cmdargs const *arg)
}
} else if (!strcasecmp(arg->argv[dummyint], "none"))
cx->cfg.callback.opmask |= CALLBACK_BIT(CALLBACK_NONE);
- else
- return -1;
+ else {
+ res = -1;
+ break;
+ }
}
if (cx->cfg.callback.opmask == CALLBACK_BIT(CALLBACK_NONE))
cx->cfg.callback.opmask = 0;
@@ -1973,7 +2015,8 @@ SetVariable(struct cmdargs const *arg)
*arg->bundle->radius.cfg.file = '\0';
else if (access(argp, R_OK)) {
log_Printf(LogWARN, "%s: %s\n", argp, strerror(errno));
- return 1;
+ res = 1;
+ break;
} else {
strncpy(arg->bundle->radius.cfg.file, argp,
sizeof arg->bundle->radius.cfg.file - 1);
@@ -2002,10 +2045,10 @@ SetVariable(struct cmdargs const *arg)
case VAR_PARITY:
if (arg->argc == arg->argn + 1)
- return physical_SetParity(arg->cx->physical, argp);
+ res = physical_SetParity(arg->cx->physical, argp);
else {
- err = "Parity value must be odd, even or none\n";
- log_Printf(LogWARN, "%s", err);
+ log_Printf(LogWARN, "Parity value must be odd, even or none\n");
+ res = 1;
}
break;
@@ -2015,8 +2058,8 @@ SetVariable(struct cmdargs const *arg)
else if (strcasecmp(argp, "off") == 0)
physical_SetRtsCts(arg->cx->physical, 0);
else {
- err = "RTS/CTS value must be on or off\n";
- log_Printf(LogWARN, "%s", err);
+ log_Printf(LogWARN, "RTS/CTS value must be on or off\n");
+ res = 1;
}
break;
@@ -2066,7 +2109,7 @@ SetVariable(struct cmdargs const *arg)
break;
}
- return err ? 1 : 0;
+ return res;
}
static struct cmdtab const SetCommands[] = {
OpenPOWER on IntegriCloud