aboutsummaryrefslogtreecommitdiff
path: root/net-mgmt/wide-dhcp/files/patch-ac
diff options
context:
space:
mode:
authorBrian Somers <brian@FreeBSD.org>1997-04-04 02:20:28 +0000
committerBrian Somers <brian@FreeBSD.org>1997-04-04 02:20:28 +0000
commitb98a2e643581cce9d97d00f226f735487964288a (patch)
tree0e70f09b73c9f045b680a2d897a321cc80d6ddb7 /net-mgmt/wide-dhcp/files/patch-ac
parentb8174d8c9e623cf70509143e34fcabe8dd4477c7 (diff)
Notes
Diffstat (limited to 'net-mgmt/wide-dhcp/files/patch-ac')
-rw-r--r--net-mgmt/wide-dhcp/files/patch-ac107
1 files changed, 86 insertions, 21 deletions
diff --git a/net-mgmt/wide-dhcp/files/patch-ac b/net-mgmt/wide-dhcp/files/patch-ac
index 0712b9589a04..fca7851badb7 100644
--- a/net-mgmt/wide-dhcp/files/patch-ac
+++ b/net-mgmt/wide-dhcp/files/patch-ac
@@ -1,20 +1,41 @@
--- client/dhcpc_subr.c.orig Fri Nov 3 01:39:55 1995
-+++ client/dhcpc_subr.c Mon Aug 5 01:41:27 1996
-@@ -63,6 +63,9 @@
++++ client/dhcpc_subr.c Thu Mar 27 11:39:50 1997
+@@ -63,6 +63,12 @@
#ifdef __osf__
#include <net/pfilt.h>
#endif
+#ifdef __FreeBSD__
+#include <osreldate.h>
++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000)
++#include <net/if_var.h>
++#endif
+#endif
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/if_ether.h>
-@@ -273,7 +276,11 @@
+@@ -70,6 +76,8 @@
+ #include <netinet/ip.h>
+ #include <netinet/udp.h>
+ #include <arpa/inet.h>
++#include <arpa/nameser.h>
++#include <resolv.h>
+
+ #include "dhcp.h"
+ #include "common.h"
+@@ -159,6 +167,8 @@
+
+ int config_if();
+ void set_route();
++void set_resolv();
++void set_hostname();
+ void make_decline();
+ void make_release();
+ Long generate_xid();
+@@ -273,7 +283,11 @@
tmp = 0;
bcopy(&tmp, sarp->arp_spa, sarp->arp_pln);
bcopy(&target->s_addr, sarp->arp_tpa, sarp->arp_pln);
-+#if __FreeBSD_version < 199608
++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version >= 199703 && __FreeBSD_version <= 219999)
+ sether->ether_type = ETHERTYPE_ARP;
+#else
sether->ether_type = htons(ETHERTYPE_ARP);
@@ -22,11 +43,11 @@
if (ether_write(ifp->fd, sbuf, ETHERHL + sizeof(struct ether_arp)) < 0) {
return(0); /* it is harmless to return 0 */
-@@ -341,7 +348,11 @@
+@@ -341,7 +355,11 @@
bcopy(&ipaddr->s_addr, sarp->arp_spa, sarp->arp_pln);
bcopy(&ipaddr->s_addr, sarp->arp_tpa, sarp->arp_pln);
-+#if __FreeBSD_version < 199608
++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999)
+ sether->ether_type = ETHERTYPE_ARP;
+#else
sether->ether_type = htons(ETHERTYPE_ARP);
@@ -34,7 +55,7 @@
if (ether_write(ifp->fd, sbuf, ETHERHL + sizeof(struct ether_arp)) < 0) {
return(-1);
-@@ -1387,7 +1398,7 @@
+@@ -1387,7 +1405,7 @@
/* get haddr of interface */
intface.haddr.htype = ETHER;
intface.haddr.hlen = 6;
@@ -43,7 +64,7 @@
if (ioctl(dhcpif.fd, SIOCGIFADDR, &ifr) < 0) {
syslog(LOG_WARNING, "ioctl(SIOCGIFADDR) error in initialize(): %m");
return(-1);
-@@ -1535,8 +1546,8 @@
+@@ -1535,8 +1553,8 @@
((struct sockaddr_in *)&ridreq.ifr_addr)->sin_addr.s_addr;
if (current_addr.s_addr == addr->s_addr &&
@@ -54,16 +75,16 @@
close(sockfd);
return(1);
}
-@@ -1660,7 +1671,7 @@
+@@ -1660,7 +1678,7 @@
/*
* set routing table
*/
-#ifndef BSDOS
-+#if !defined(BSDOS) && (__FreeBSD__ != 2)
++#if !defined(BSDOS) && (__FreeBSD__ < 2)
void
set_route(param)
struct dhcp_param *param;
-@@ -1730,6 +1741,10 @@
+@@ -1730,6 +1748,10 @@
register char *cp = m_rtmsg.m_space;
register int l;
@@ -74,11 +95,55 @@
bzero(&so_dst, sizeof(struct sockaddr));
bzero(&so_mask, sizeof(struct sockaddr));
bzero(&so_gate, sizeof(struct sockaddr));
-@@ -1897,7 +1912,11 @@
+@@ -1772,6 +1794,43 @@
+
+ #endif
+
++void
++set_resolv(param)
++struct dhcp_param *param;
++{
++ FILE *fp;
++ int i;
++
++ if (param == NULL) {
++ return;
++ }
++
++ /*
++ * set resolv.conf
++ */
++ if (param->dns_domain != NULL && param->dns_server != NULL) {
++ if(param->dns_server->num && param->dns_server->addr != NULL) {
++ if((fp = fopen(_PATH_RESCONF, "w")) == NULL) {
++ return;
++ }
++ fprintf(fp, "domain %s\n", param->dns_domain);
++ for(i = 0; i < param->dns_server->num; i++) {
++ fprintf(fp,"nameserver %s\n",inet_ntoa(param->dns_server->addr[i]));
++ }
++ fclose(fp);
++ }
++ }
++}
++
++void
++set_hostname(param)
++struct dhcp_param *param;
++{
++ if (param->hostname != NULL) {
++ sethostname(param->hostname,strlen(param->hostname));
++ }
++ return;
++}
+
+ void
+ make_decline(lsbuf, reqspecp)
+@@ -1897,7 +1956,11 @@
lsether->ether_shost[i] = intface.haddr.haddr[i];
#endif
}
-+#if __FreeBSD_version < 199608
++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999)
+ lsether->ether_type = ETHERTYPE_IP;
+#else
lsether->ether_type = htons(ETHERTYPE_IP);
@@ -86,11 +151,11 @@
return;
}
-@@ -2199,7 +2218,11 @@
+@@ -2199,7 +2262,11 @@
snd.ether->ether_shost[i] = intface.haddr.haddr[i];
#endif
}
-+#if __FreeBSD_version < 199608
++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999)
+ snd.ether->ether_type = ETHERTYPE_IP;
+#else
snd.ether->ether_type = htons(ETHERTYPE_IP);
@@ -98,11 +163,11 @@
return;
}
-@@ -2372,7 +2395,11 @@
+@@ -2372,7 +2439,11 @@
snd.ether->ether_shost[i] = intface.haddr.haddr[i];
#endif
}
-+#if __FreeBSD_version < 199608
++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999)
+ snd.ether->ether_type = ETHERTYPE_IP;
+#else
snd.ether->ether_type = htons(ETHERTYPE_IP);
@@ -110,21 +175,21 @@
return(0);
}
-@@ -2391,7 +2418,7 @@
+@@ -2391,7 +2462,7 @@
struct msghdr msg;
struct iovec bufvec[1];
int bufsize = DFLTDHCPLEN;
-#ifdef BSDOS
-+#if defined(BSDOS) || (__FreeBSD__ == 2)
++#if defined(BSDOS) || (__FreeBSD__ >= 2)
int on;
#endif
-@@ -2417,7 +2444,7 @@
+@@ -2417,7 +2488,7 @@
return(-1);
}
-#ifdef BSDOS
-+#if defined(BSDOS) || (__FreeBSD__ == 2)
++#if defined(BSDOS) || (__FreeBSD__ >= 2)
on = 1;
if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)) < 0) {
close(sockfd);