533
533
memset((void *)addrs, 0, sizeof(addrs));
534
534
memset((void *)mtus, 0, sizeof(mtus));
536
for (i = 0; i < afs_cb_interface.numberOfInterfaces; i++) {
536
if (afs_cb_interface.numberOfInterfaces < num)
537
num = afs_cb_interface.numberOfInterfaces;
538
for (i = 0; i < num; i++) {
537
539
if (!afs_cb_interface.mtu[i])
538
540
afs_cb_interface.mtu[i] = htonl(1500);
539
541
rxmtu = (ntohl(afs_cb_interface.mtu[i]) - RX_IPUDP_SIZE);
653
657
memset(mtus, 0, sizeof(mtus));
655
659
#if defined(AFS_DARWIN80_ENV)
656
t = ifnet_get_address_list_family(NULL, &ifads, AF_INET);
658
rxmtu = ifnet_mtu(ifn) - RX_IPUDP_SIZE;
659
while((ifads[cnt] != NULL) && cnt < ADDRSPERSITE) {
660
t = ifaddr_address(ifads[cnt], &sout, sizeof(sout));
661
sin = (struct sockaddr_in *)&sout;
662
ifinaddr = ntohl(sin->sin_addr.s_addr);
663
if (myNetAddrs[i] != ifinaddr) {
667
rxmtu = rxi_AdjustIfMTU(rxmtu);
669
rxmtu * rxi_nRecvFrags +
670
((rxi_nRecvFrags - 1) * UDP_HDR_SIZE);
671
maxmtu = rxi_AdjustMaxMTU(rxmtu, maxmtu);
672
addrs[i++] = ifinaddr;
673
if ((ifinaddr != 0x7f000001) && (maxmtu > rx_maxReceiveSize)) {
674
rx_maxReceiveSize = MIN(RX_MAX_PACKET_SIZE, maxmtu);
676
MIN(rx_maxReceiveSize, rx_maxReceiveSizeUser);
660
if (!ifnet_list_get(AF_INET, &ifn, &count)) {
661
for (m = 0; m < count; m++) {
662
if (!ifnet_get_address_list(ifn[m], &ifads)) {
663
for (j = 0; ifads[j] != NULL && cnt < ADDRSPERSITE; j++) {
664
if ((t = ifaddr_address(ifads[j], &sout, sizeof(struct sockaddr))) == 0) {
665
sin = (struct sockaddr_in *)&sout;
666
rxmtu = ifnet_mtu(ifaddr_ifnet(ifads[j])) - RX_IPUDP_SIZE;
667
ifinaddr = ntohl(sin->sin_addr.s_addr);
668
if (myNetAddrs[i] != ifinaddr) {
672
rxmtu = rxi_AdjustIfMTU(rxmtu);
674
rxmtu * rxi_nRecvFrags +
675
((rxi_nRecvFrags - 1) * UDP_HDR_SIZE);
676
maxmtu = rxi_AdjustMaxMTU(rxmtu, maxmtu);
677
addrs[i++] = ifinaddr;
678
if ((ifinaddr != 0x7f000001) &&
679
(maxmtu > rx_maxReceiveSize)) {
681
MIN(RX_MAX_PACKET_SIZE, maxmtu);
683
MIN(rx_maxReceiveSize, rx_maxReceiveSizeUser);
688
ifnet_free_address_list(ifads);
680
ifnet_free_address_list(ifads);
691
ifnet_list_free(ifn);
683
694
#if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
733
744
rx_maxJumboRecvSize = MAX(rx_maxJumboRecvSize, rx_maxReceiveSize);
737
for (j = 0; j < i; j++) {
738
myNetMTUs[j] = mtus[j];
739
myNetAddrs[j] = addrs[j];
748
for (l = 0; l < i; l++) {
749
myNetMTUs[l] = mtus[l];
750
myNetAddrs[l] = addrs[l];
742
753
return different;