diff options
author | Brian Somers <brian@FreeBSD.org> | 1997-04-04 02:20:28 +0000 |
---|---|---|
committer | Brian Somers <brian@FreeBSD.org> | 1997-04-04 02:20:28 +0000 |
commit | b98a2e643581cce9d97d00f226f735487964288a (patch) | |
tree | 0e70f09b73c9f045b680a2d897a321cc80d6ddb7 /net-mgmt/wide-dhcp/files/patch-ac | |
parent | b8174d8c9e623cf70509143e34fcabe8dd4477c7 (diff) |
Notes
Diffstat (limited to 'net-mgmt/wide-dhcp/files/patch-ac')
-rw-r--r-- | net-mgmt/wide-dhcp/files/patch-ac | 107 |
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); |