Author: asomers
Date: Tue Aug 18 15:33:23 2015
New Revision: 286892
URL: https://svnweb.freebsd.org/changeset/base/286892

Log:
  Serve /etc/eui64 via NIS.
  
  The C library already knows how to lookup eui64 entries from NIS. For
  example, fwcontrol(8) does it. But /var/yp/Makefile.dist doesn't build the
  eui64 maps, and ypinit(8) doesn't push them to slaves. This change fixes
  that.
  
  Reviewed by:  brooks, wblock
  MFC after:    2 weeks
  Sponsored by: SpectraLogic Corp
  Differential Revision:        https://reviews.freebsd.org/D3404

Modified:
  head/usr.sbin/ypserv/Makefile.yp
  head/usr.sbin/ypserv/ypinit.8
  head/usr.sbin/ypserv/ypinit.sh

Modified: head/usr.sbin/ypserv/Makefile.yp
==============================================================================
--- head/usr.sbin/ypserv/Makefile.yp    Tue Aug 18 15:11:41 2015        
(r286891)
+++ head/usr.sbin/ypserv/Makefile.yp    Tue Aug 18 15:33:23 2015        
(r286892)
@@ -103,6 +103,7 @@ YPMAPDIR = $(YPDIR)/$(DOMAIN)
 # passwd file will be generated from the master.passwd file automagically.
 #
 ETHERS    = $(YPSRCDIR)/ethers    # ethernet addresses (for rarpd)
+EUI64     = $(YPSRCDIR)/eui64     # eui64 addresses (for firewire)
 BOOTPARAMS= $(YPSRCDIR)/bootparams # for booting Sun boxes (bootparamd)
 HOSTS     = $(YPSRCDIR)/hosts
 IPNODES   = $(YPDIR)/ipnodes
@@ -143,8 +144,8 @@ TARGETS= servers hosts networks protocol
 #TARGETS+= aliases
 
 # Sanity checks: filter out targets we can't build
-# Note that we don't build the ethers or boorparams maps by default
-# since /etc/ethers and /etc/bootparams are not likely to be present
+# Note that we don't build the ethers, eui64, or boorparams maps by default
+# since /etc/ethers, /etc/eui64 and /etc/bootparams are not likely to be 
present
 # on all systems.
 .if exists($(ETHERS))
 TARGETS+= ethers
@@ -152,6 +153,12 @@ TARGETS+= ethers
 ETHERS= /dev/null
 .endif
 
+.if exists($(EUI64))
+TARGETS+= eui64
+.else
+EUI64= /dev/null
+.endif
+
 .if exists($(BOOTPARAMS))
 TARGETS+= bootparams
 .else
@@ -195,6 +202,7 @@ IPNODES= /dev/null
 all: $(TARGETS)
 
 ethers:           ethers.byname ethers.byaddr
+eui64:    eui64.byname eui64.byid
 bootparam: bootparams
 hosts:    hosts.byname hosts.byaddr
 ipnodes:   ipnodes.byname ipnodes.byaddr
@@ -294,6 +302,32 @@ ethers.byaddr: $(ETHERS)
        @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
 .endif
 
+eui64.byname: $(EUI64)
+       @echo "Updating $@..."
+.if ${EUI64} == "/dev/null"
+       @echo "EUI64 source file not found -- skipping"
+.else
+       @$(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
+               print $$2"\t"$$0 }' $(EUI64) | $(DBLOAD) -i $(EUI64) \
+               -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
+       @$(DBLOAD) -c
+       @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
+       @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
+.endif
+
+eui64.byid: $(EUI64)
+       @echo "Updating $@..."
+.if ${EUI64} == "/dev/null"
+       @echo "EUI64 source file not found -- skipping"
+.else
+       @$(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
+               print $$1"\t"$$0 }' $(EUI64) | $(DBLOAD) -i $(EUI64) \
+               -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
+       @$(DBLOAD) -c
+       @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
+       @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
+.endif
+
 
 bootparams: $(BOOTPARAMS)
        @echo "Updating $@..."

Modified: head/usr.sbin/ypserv/ypinit.8
==============================================================================
--- head/usr.sbin/ypserv/ypinit.8       Tue Aug 18 15:11:41 2015        
(r286891)
+++ head/usr.sbin/ypserv/ypinit.8       Tue Aug 18 15:33:23 2015        
(r286892)
@@ -30,7 +30,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 10, 1997
+.Dd August 18, 2015
 .Dt YPINIT 8
 .Os
 .Sh NAME
@@ -147,6 +147,8 @@ can propagate updates on the master to a
 Bootparams source file
 .It Pa /etc/ethers
 Ethers data source file
+.It Pa /etc/eui64
+EUI64 data source file
 .It Pa /etc/group
 Group source file
 .It Pa /etc/hosts

Modified: head/usr.sbin/ypserv/ypinit.sh
==============================================================================
--- head/usr.sbin/ypserv/ypinit.sh      Tue Aug 18 15:11:41 2015        
(r286891)
+++ head/usr.sbin/ypserv/ypinit.sh      Tue Aug 18 15:33:23 2015        
(r286892)
@@ -14,8 +14,9 @@ MAPLIST="master.passwd.byname master.pas
         group.byname group.bygid hosts.byname hosts.byaddr services.byname \
         rpc.byname rpc.bynumber networks.byname networks.byaddr netgroup \
         netgroup.byuser netgroup.byhost netid.byname publickey.byname \
-        bootparams ethers.byname ethers.byaddr amd.host mail.aliases \
-        ypservers protocols.byname protocols.bynumber netmasks.byaddr"
+        bootparams ethers.byname ethers.byaddr eui64.byname eui64.byid \
+        amd.host mail.aliases ypservers protocols.byname protocols.bynumber \
+        netmasks.byaddr"
 
 ERROR_EXISTS="NO"
 umask 077
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to