1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-06 22:51:41 +00:00
freebsd-ports/net/wide-dhcp/files/patch-ac

110 lines
2.7 KiB
Plaintext
Raw Normal View History

--- client/dhcpc_subr.c.org Sat Jan 20 19:40:45 1996
+++ client/dhcpc_subr.c Sat Jan 20 19:40:49 1996
@@ -273,7 +273,11 @@
tmp = 0;
bcopy(&tmp, sarp->arp_spa, sarp->arp_pln);
bcopy(&target->s_addr, sarp->arp_tpa, sarp->arp_pln);
+#ifdef __FreeBSD__
+ sether->ether_type = ETHERTYPE_ARP;
+#else
sether->ether_type = htons(ETHERTYPE_ARP);
+#endif
if (ether_write(ifp->fd, sbuf, ETHERHL + sizeof(struct ether_arp)) < 0) {
return(0); /* it is harmless to return 0 */
@@ -341,7 +345,11 @@
bcopy(&ipaddr->s_addr, sarp->arp_spa, sarp->arp_pln);
bcopy(&ipaddr->s_addr, sarp->arp_tpa, sarp->arp_pln);
+#ifdef __FreeBSD__
+ sether->ether_type = ETHERTYPE_ARP;
+#else
sether->ether_type = htons(ETHERTYPE_ARP);
+#endif
if (ether_write(ifp->fd, sbuf, ETHERHL + sizeof(struct ether_arp)) < 0) {
return(-1);
@@ -1387,7 +1395,7 @@
/* get haddr of interface */
intface.haddr.htype = ETHER;
intface.haddr.hlen = 6;
-#if defined(sony_news) || defined(__FreeBSD__)
+#if defined(sony_news) || !defined(__FreeBSD__)
if (ioctl(dhcpif.fd, SIOCGIFADDR, &ifr) < 0) {
syslog(LOG_WARNING, "ioctl(SIOCGIFADDR) error in initialize(): %m");
return(-1);
@@ -1660,7 +1668,7 @@
/*
* set routing table
*/
-#ifndef BSDOS
+#if !defined(BSDOS) && (__FreeBSD__ != 2)
void
set_route(param)
struct dhcp_param *param;
@@ -1730,6 +1738,10 @@
register char *cp = m_rtmsg.m_space;
register int l;
+ if (!ISSET(param->got_option, ROUTER) ||
+ param->router == NULL || param->router->addr == NULL)
+ return;
+
bzero(&so_dst, sizeof(struct sockaddr));
bzero(&so_mask, sizeof(struct sockaddr));
bzero(&so_gate, sizeof(struct sockaddr));
@@ -1897,7 +1909,11 @@
lsether->ether_shost[i] = intface.haddr.haddr[i];
#endif
}
+#ifdef __FreeBSD__
+ lsether->ether_type = ETHERTYPE_IP;
+#else
lsether->ether_type = htons(ETHERTYPE_IP);
+#endif
return;
}
@@ -2199,7 +2215,11 @@
snd.ether->ether_shost[i] = intface.haddr.haddr[i];
#endif
}
+#ifdef __FreeBSD__
+ snd.ether->ether_type = ETHERTYPE_IP;
+#else
snd.ether->ether_type = htons(ETHERTYPE_IP);
+#endif
return;
}
@@ -2372,7 +2392,11 @@
snd.ether->ether_shost[i] = intface.haddr.haddr[i];
#endif
}
+#ifdef __FreeBSD__
+ snd.ether->ether_type = ETHERTYPE_IP;
+#else
snd.ether->ether_type = htons(ETHERTYPE_IP);
+#endif
return(0);
}
@@ -2391,7 +2415,7 @@
struct msghdr msg;
struct iovec bufvec[1];
int bufsize = DFLTDHCPLEN;
-#ifdef BSDOS
+#if defined(BSDOS) || (__FreeBSD__ == 2)
int on;
#endif
@@ -2417,7 +2441,7 @@
return(-1);
}
-#ifdef BSDOS
+#if defined(BSDOS) || (__FreeBSD__ == 2)
on = 1;
if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)) < 0) {
close(sockfd);