}
if ( rx_mtu != -1 ) {
- extern void rx_SetMaxMTU(int);
-
rx_SetMaxMTU(rx_mtu);
afsi_log("rx_SetMaxMTU %d successful", rx_mtu);
}
exit(1);
}
rxMaxMTU = atoi(argv[++code]);
- if ((rxMaxMTU < RX_MIN_PACKET_SIZE) ||
- (rxMaxMTU > RX_MAX_PACKET_DATA_SIZE)) {
- printf("rxMaxMTU %d invalid; must be between %d-%" AFS_SIZET_FMT "\n",
- rxMaxMTU, RX_MIN_PACKET_SIZE,
- RX_MAX_PACKET_DATA_SIZE);
- exit(1);
- }
}
else if (strcmp(argv[code], "-auditlog") == 0) {
auditFileName = argv[++code];
rx_SetNoJumbo();
if (rxMaxMTU != -1) {
- rx_SetMaxMTU(rxMaxMTU);
+ if (rx_SetMaxMTU(rxMaxMTU) != 0) {
+ bozo_Log("bosserver: rxMaxMTU %d is invalid\n", rxMaxMTU);
+ exit(1);
+ }
}
tservice = rx_NewServiceHost(host, 0, /* service id */ 1,
cmd_OptionAsFlag(opts, OPT_rxbind, &rxBind);
- if (cmd_OptionAsInt(opts, OPT_rxmaxmtu, &rxMaxMTU) == 0) {
- if ((rxMaxMTU < RX_MIN_PACKET_SIZE) ||
- (rxMaxMTU > RX_MAX_PACKET_DATA_SIZE)) {
- printf("rxMaxMTU %d invalid; must be between %d-%" AFS_SIZET_FMT "\n",
- rxMaxMTU, RX_MIN_PACKET_SIZE,
- RX_MAX_PACKET_DATA_SIZE);
- PT_EXIT(1);
- }
- }
+ cmd_OptionAsInt(opts, OPT_rxmaxmtu, &rxMaxMTU);
/* rxkad options */
cmd_OptionAsFlag(opts, OPT_dotted, &rxkadDisableDotCheck);
rx_SetNoJumbo();
if (rxMaxMTU != -1) {
- rx_SetMaxMTU(rxMaxMTU);
+ if (rx_SetMaxMTU(rxMaxMTU) != 0) {
+ printf("rxMaxMTU %d is invalid\n", rxMaxMTU);
+ PT_EXIT(1);
+ }
}
tservice =
extern void rx_GetIFInfo(void);
extern void rx_SetNoJumbo(void);
-extern void rx_SetMaxMTU(int mtu);
+extern int rx_SetMaxMTU(int mtu);
/* rx_xmit_nt.c */
/* Override max MTU. If rx_SetNoJumbo is called, it must be
called before calling rx_SetMaxMTU since SetNoJumbo clobbers rx_maxReceiveSize */
-void
+int
rx_SetMaxMTU(int mtu)
{
+ if (mtu < RX_MIN_PACKET_SIZE || mtu > RX_MAX_PACKET_DATA_SIZE)
+ return EINVAL;
+
rx_MyMaxSendSize = rx_maxReceiveSizeUser = rx_maxReceiveSize = mtu;
+
+ return 0;
}
#if defined(ADAPT_PMTU)
cmd_OptionAsFlag(opts, OPT_rxdbge, &eventlog);
cmd_OptionAsInt(opts, OPT_rxpck, &rxpackets);
- if (cmd_OptionAsInt(opts, OPT_rxmaxmtu, &rxMaxMTU) == 0) {
- if ((rxMaxMTU < RX_MIN_PACKET_SIZE) ||
- (rxMaxMTU > RX_MAX_PACKET_DATA_SIZE)) {
- printf("rxMaxMTU %d invalid; must be between %d-%" AFS_SIZET_FMT "\n",
- rxMaxMTU, RX_MIN_PACKET_SIZE,
- RX_MAX_PACKET_DATA_SIZE);
- return(-1);
- }
- }
+ cmd_OptionAsInt(opts, OPT_rxmaxmtu, &rxMaxMTU);
if (cmd_OptionAsInt(opts, OPT_udpsize, &optval) == 0) {
if (optval < rx_GetMinUdpBufSize()) {
rx_SetNoJumbo();
}
if (rxMaxMTU != -1) {
- rx_SetMaxMTU(rxMaxMTU);
+ if (rx_SetMaxMTU(rxMaxMTU) != 0) {
+ ViceLog(0, ("rxMaxMTU %d is invalid\n", rxMaxMTU));
+ exit(1);
+ }
}
rx_GetIFInfo();
rx_SetRxDeadTime(30);
cmd_OptionAsFlag(opts, OPT_rxbind, &rxBind);
- if (cmd_OptionAsInt(opts, OPT_rxmaxmtu, &rxMaxMTU) == 0) {
- if ((rxMaxMTU < RX_MIN_PACKET_SIZE) ||
- (rxMaxMTU > RX_MAX_PACKET_DATA_SIZE)) {
- printf("rxMaxMTU %d invalid; must be between %d-%" AFS_SIZET_FMT "\n",
- rxMaxMTU, RX_MIN_PACKET_SIZE,
- RX_MAX_PACKET_DATA_SIZE);
- return -1;
- }
- }
+ cmd_OptionAsInt(opts, OPT_rxmaxmtu, &rxMaxMTU);
/* rxkad options */
cmd_OptionAsFlag(opts, OPT_dotted, &rxkadDisableDotCheck);
rx_SetNoJumbo();
}
if (rxMaxMTU != -1) {
- rx_SetMaxMTU(rxMaxMTU);
+ if (rx_SetMaxMTU(rxMaxMTU) != 0) {
+ printf("rxMaxMTU %d invalid\n", rxMaxMTU);
+ return -1;
+ }
}
rx_SetRxDeadTime(50);
exit(1);
}
rxMaxMTU = atoi(argv[++code]);
- if ((rxMaxMTU < RX_MIN_PACKET_SIZE) ||
- (rxMaxMTU > RX_MAX_PACKET_DATA_SIZE)) {
- printf("rxMaxMTU %d invalid; must be between %d-%" AFS_SIZET_FMT "\n",
- rxMaxMTU, RX_MIN_PACKET_SIZE,
- RX_MAX_PACKET_DATA_SIZE);
- exit(1);
- }
} else if (strcmp(argv[code], "-sleep") == 0) {
sscanf(argv[++code], "%d/%d", &TTsleep, &TTrun);
if ((TTsleep < 0) || (TTrun <= 0)) {
rx_SetNoJumbo();
}
if (rxMaxMTU != -1) {
- rx_SetMaxMTU(rxMaxMTU);
+ if (rx_SetMaxMTU(rxMaxMTU) != 0) {
+ fprintf(stderr, "rxMaxMTU %d is invalid\n", rxMaxMTU);
+ VS_EXIT(1);
+ }
}
rx_GetIFInfo();
rx_SetRxDeadTime(420);