From owner-FreeBSD-users-jp@jp.freebsd.org  Sat Mar 22 00:37:41 1997
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) id AAA06597
	Sat, 22 Mar 1997 00:37:41 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) with ESMTP id AAA06592
	for <FreeBSD-users-jp@jp.freebsd.org>; Sat, 22 Mar 1997 00: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 AAA04247 for <FreeBSD-users-jp@jp.freebsd.org>; Sat, 22 Mar 1997 00:37:39 +0900 (JST)
Received: (from uucp@localhost) by uucp1.iij.ad.jp (8.6.12+2.4W/3.3W9-UUCP) with UUCP id AAA20550 for FreeBSD-users-jp@jp.freebsd.org; Sat, 22 Mar 1997 00:37:39 +0900
Received: (from kanoh@localhost) by dora.kanoh.iijnet.or.jp (8.8.5/3.5W-uucp) id AAA04551 for FreeBSD-users-jp@jp.freebsd.org; Sat, 22 Mar 1997 00:15:05 +0900 (JST)
Date: Sat, 22 Mar 1997 00:15:05 +0900 (JST)
From: Tamotsu Kanoh <kanoh@kanoh.iijnet.or.jp>
Message-Id: <199703211515.AAA04551@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 10956
Subject: [FreeBSD-users-jp 10956] 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: <199703210821.RAA03162@dora.kanoh.iijnet.or.jp>
>
> client/config.h $@$K%4%_$,;D$C$F$$$^$7$?$N$G:F%]%9%H$7$^$9!#(J
> $@$9$_$^$;$s!#(J

$@2#;3!w%*!<%8%9Am8&MM$h$j!"(J/usr/include/resolv.h $@$K(J /etc/resolv.conf
$@$N%Q%9$,Dj5A$5$l$F$$$^$9$H$N8f;XFn$r$$$?$@$-$^$7$?$N$G!"=$@5$r2C$((J
$@:F:F%]%9%H$$$?$7$^$9!#(J

$@2#;3MM!"$"$j$,$H$&$4$6$$$^$9!#(J

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




*** 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 23:35:39 1997
***************
*** 73,78 ****
--- 73,79 ----
  #include <netinet/ip.h>
  #include <netinet/udp.h>
  #include <arpa/inet.h>
+ #include <resolv.h>
  
  #include "dhcp.h"
  #include "common.h"
***************
*** 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(_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

