From owner-FreeBSD-users-jp@jp.freebsd.org  Fri Mar 21 17:37:41 1997
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) id RAA29077
	Fri, 21 Mar 1997 17:37:41 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) with ESMTP id RAA29072
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 21 Mar 1997 17:37:40 +0900 (JST)
Received: from uucp1.iij.ad.jp (uucp1.iij.ad.jp [202.232.2.201]) by mail0.iij.ad.jp (8.8.5+2.7Wbeta5/3.5Wpl4-MAIL) with SMTP id RAA06982 for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 21 Mar 1997 17:37:39 +0900 (JST)
Received: (from uucp@localhost) by uucp1.iij.ad.jp (8.6.12+2.4W/3.3W9-UUCP) with UUCP id RAA18634 for FreeBSD-users-jp@jp.freebsd.org; Fri, 21 Mar 1997 17:37:39 +0900
Received: (from kanoh@localhost) by dora.kanoh.iijnet.or.jp (8.8.5/3.5W-uucp) id RAA03162 for FreeBSD-users-jp@jp.freebsd.org; Fri, 21 Mar 1997 17:21:54 +0900 (JST)
Date: Fri, 21 Mar 1997 17:21:54 +0900 (JST)
From: Tamotsu Kanoh <kanoh@kanoh.iijnet.or.jp>
Message-Id: <199703210821.RAA03162@dora.kanoh.iijnet.or.jp>
To: FreeBSD-users-jp@jp.freebsd.org
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 10946
Subject: [FreeBSD-users-jp 10946] Re: WIDE dhcp (Re: New PAO boot.flp)
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

> From: Tamotsu Kanoh <kanoh@kanoh.iijnet.or.jp>
> Message-Id: <199703210638.PAA02832@dora.kanoh.iijnet.or.jp>
>
> wide-dhcp-970208.tar.gz $@$KBP$7!"J#?t$N(J nameserver $@%(%s%H%j$H(J
>  hostname $@$N=q$-49$($KBP1~$5$;$k%Q%C%A$G$9!#(J
> [FreeBSD-users-jp 9692] $@$G8x3+$7$?$b$N$r(J wide-dhcp-970208.tar.gz
> $@$K9g$o$;$F=q$-D>$7$F$_$^$7$?!#(J

client/config.h $@$K%4%_$,;D$C$F$$$^$7$?$N$G:F%]%9%H$7$^$9!#(J
$@$9$_$^$;$s!#(J

--
$@2CG<(J $@J](J (Tamotsu Kanoh)
kanoh@kanoh.iijnet.or.jp



*** client/config.h.ORIG	Fri Mar 21 14:00:57 1997
--- client/config.h	Fri Mar 21 17:11:38 1997
***************
*** 41,46 ****
--- 41,50 ----
  #define DHCP_CACHE  "/etc/dhcp_cache"
  #endif
  
+ #ifndef RESOLV_CONF
+ #define RESOLV_CONF  "/etc/resolv.conf"
+ #endif
+ 
  #define FIRSTTIMER          4
  #define MAXTIMER           64
  #define INIT_WAITING       10
*** client/dhcpc.c.ORIG	Fri Mar 21 14:01:15 1997
--- client/dhcpc.c	Fri Mar 21 14:36:57 1997
***************
*** 227,233 ****
  		((brdaddr.s_addr != 0) ? &brdaddr : NULL)) != 1) {
      set_route(paramp);
    }
!   set_resolv(param_list);
  #endif
  
    return;
--- 227,234 ----
  		((brdaddr.s_addr != 0) ? &brdaddr : NULL)) != 1) {
      set_route(paramp);
    }
!   set_resolv(paramp);
!   set_hostname(paramp);
  #endif
  
    return;
***************
*** 1798,1803 ****
--- 1799,1805 ----
    reqspec.reqlist.list[reqspec.reqlist.len++] = BRDCAST_ADDR;
    reqspec.reqlist.list[reqspec.reqlist.len++] = DNS_DOMAIN;
    reqspec.reqlist.list[reqspec.reqlist.len++] = DNS_SERVER;
+   reqspec.reqlist.list[reqspec.reqlist.len++] = HOSTNAME;
    
    return(dhcp_client(&ifinfo));
  }
*** client/dhcpc.h.ORIG	Fri Mar 21 14:11:52 1997
--- client/dhcpc.h	Fri Mar 21 14:12:26 1997
***************
*** 207,209 ****
--- 207,210 ----
  int config_if();
  void set_route();
  void set_resolv();
+ void set_hostname();
*** client/dhcpc_subr.c.ORIG	Fri Mar 21 14:01:47 1997
--- client/dhcpc_subr.c	Fri Mar 21 14:43:09 1997
***************
*** 78,83 ****
--- 78,84 ----
  #include "common.h"
  #include "common_subr.h"
  #include "dhcpc_subr.h"
+ #include "config.h"
  
  #ifdef sun
  struct packetfilt dhcpf;
***************
*** 163,168 ****
--- 164,170 ----
  int config_if();
  void set_route();
  void set_resolv();
+ void set_hostname();
  void make_decline();
  void make_release();
  Long generate_xid();
***************
*** 1793,1826 ****
  struct dhcp_param *param;
  {
      FILE *fp;
!     int i, dnsaddr;
  
      if (param == NULL) {
! 	return;
      }
  
      /*
       * set /etc/resolv.conf
       */
      if (param->dns_domain != NULL && param->dns_server != NULL) {
! 	if(param->dns_server->addr != NULL) {
! 	    if((fp = fopen("/etc/resolv.conf", "w")) == NULL) {
! 		return;
! 	    }
! 	    fprintf(fp, "domain %s\n", param->dns_domain);
! 	    dnsaddr = param->dns_server->addr->s_addr;
! 	    fprintf(fp, "nameserver ");
! 	    for(i = 0; i < 4; i++) {
! 		fprintf(fp, "%d", dnsaddr & 0xff);
! 		dnsaddr >>= 8;
! 		if(i < 3) {
! 		    fprintf(fp, ".");
  		}
! 	    }
! 	    fprintf(fp, "\n");
! 	    fclose(fp);
  	}
      }
  }
  
  void
--- 1795,1831 ----
  struct dhcp_param *param;
  {
      FILE *fp;
!     int i;
  
      if (param == NULL) {
! 		return;
      }
  
      /*
       * set /etc/resolv.conf
       */
      if (param->dns_domain != NULL && param->dns_server != NULL) {
! 	if(param->dns_server->num && param->dns_server->addr != NULL) {
! 	   	if((fp = fopen(RESOLV_CONF, "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

