mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-31 04:45:39 +01:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a964be6d2c |
No files matched your search
@@ -7,8 +7,6 @@
|
||||
# upgrades.
|
||||
# installworld - Install everything built by "buildworld".
|
||||
# world - buildworld + installworld.
|
||||
# buildkernel - Rebuild the kernel and the kernel-modules.
|
||||
# installkernel - Install the kernel and the kernel-modules.
|
||||
# update - Convenient way to update your source tree (cvs).
|
||||
# upgrade - Upgrade a.out (2.2.x/3.0) system to the new ELF way
|
||||
# most - Build user commands, no libraries or include files.
|
||||
@@ -100,6 +98,7 @@ ${TGTS}: upgrade_checks
|
||||
# Set a reasonable default
|
||||
.MAIN: all
|
||||
|
||||
STARTTIME!= LC_TIME=C date
|
||||
#
|
||||
# world
|
||||
#
|
||||
@@ -108,7 +107,7 @@ ${TGTS}: upgrade_checks
|
||||
#
|
||||
world: upgrade_checks
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo ">>> ${OBJFORMAT} make world started on `LC_TIME=C date`"
|
||||
@echo ">>> ${OBJFORMAT} make world started on ${STARTTIME}"
|
||||
@echo "--------------------------------------------------------------"
|
||||
.if target(pre-world)
|
||||
@echo
|
||||
@@ -128,6 +127,7 @@ world: upgrade_checks
|
||||
.endif
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo ">>> ${OBJFORMAT} make world started on ${STARTTIME}"
|
||||
@echo ">>> ${OBJFORMAT} make world completed on `LC_TIME=C date`"
|
||||
@echo "--------------------------------------------------------------"
|
||||
|
||||
|
||||
+34
-56
@@ -14,10 +14,6 @@
|
||||
# -DNOINFO do not make or install info files
|
||||
# -DNOLIBC_R do not build libc_r.
|
||||
# -DNO_FORTRAN do not build g77 and related libraries.
|
||||
# -DNO_KERNELCONFIG do not run config in ${MAKE} buildkernel
|
||||
# -DNO_KERNELDEPEND do not run ${MAKE} depend in ${MAKE} buildkernel
|
||||
# -DNO_PORTSUPDATE do not update ports in ${MAKE} update
|
||||
# -DNO_DOCUPDATE do not update doc in ${MAKE} update
|
||||
# LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
|
||||
|
||||
#
|
||||
@@ -113,9 +109,6 @@ CLEANDIR= cleandir
|
||||
|
||||
SUP?= cvsup
|
||||
SUPFLAGS?= -g -L 2 -P -
|
||||
.if defined(SUPHOST)
|
||||
SUPFLAGS+= -h ${SUPHOST}
|
||||
.endif
|
||||
|
||||
MAKEOBJDIRPREFIX?= /usr/obj
|
||||
TARGET_ARCH?= ${MACHINE_ARCH}
|
||||
@@ -130,28 +123,24 @@ WORLDTMP= ${OBJTREE}${.CURDIR}/${BUILD_ARCH}
|
||||
STRICTTMPPATH= ${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WORLDTMP}/usr/games
|
||||
TMPPATH= ${STRICTTMPPATH}:${PATH}
|
||||
|
||||
TMPDIR?= /tmp
|
||||
TMPPID!= echo $$$$
|
||||
INSTALLTMP= ${TMPDIR}/install.${TMPPID}
|
||||
|
||||
#
|
||||
# Building a world goes through the following stages
|
||||
#
|
||||
# 1. bootstrap-tool stage [BMAKE]
|
||||
# bootstrap-tool stage [BMAKE]
|
||||
# This stage is responsible for creating programs that
|
||||
# are needed for backward compatibility reasons. They
|
||||
# are not built as cross-tools.
|
||||
# 2. build-tool stage [TMAKE]
|
||||
# build-tool stage [TMAKE]
|
||||
# This stage is responsible for creating the object
|
||||
# tree and building any tools that are needed during
|
||||
# the build process.
|
||||
# 3. cross-tool stage [XMAKE]
|
||||
# cross-tool stage [XMAKE]
|
||||
# This stage is responsible for creating any tools that
|
||||
# are needed for cross-builds. A cross-compiler is one
|
||||
# of them.
|
||||
# 4. world stage [WMAKE]
|
||||
# world stage [WMAKE]
|
||||
# This stage actually builds the world.
|
||||
# 5. install stage (optional) [IMAKE]
|
||||
# install stage (optional) [IMAKE]
|
||||
# This stage installs a previously built world.
|
||||
#
|
||||
|
||||
@@ -194,8 +183,7 @@ WMAKEENV= ${CROSSENV} \
|
||||
WMAKE= ${WMAKEENV} ${MAKE} -f Makefile.inc1
|
||||
|
||||
# install stage
|
||||
IMAKEENV= ${CROSSENV} \
|
||||
PATH=${STRICTTMPPATH}:${INSTALLTMP}
|
||||
IMAKEENV= ${CROSSENV}
|
||||
IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1
|
||||
|
||||
USRDIRS= usr/bin usr/lib/compat/aout usr/games usr/libdata/ldscripts \
|
||||
@@ -215,6 +203,18 @@ INCDIRS= arpa g++/std objc protocols readline rpc rpcsvc openssl \
|
||||
# success, regardless of how old your existing system is.
|
||||
#
|
||||
buildworld:
|
||||
.if !defined(NOSECURE) && !defined(NO_OPENSSL) && exists(${.CURDIR}/secure) && \
|
||||
(!defined(USA_RESIDENT) || (${USA_RESIDENT} != NO && \
|
||||
${USA_RESIDENT} != YES))
|
||||
@echo
|
||||
@echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
@echo ">>> You must define the value of USA_RESIDENT as 'YES' or"
|
||||
@echo ">>> 'NO' as appropriate, in the environment or /etc/make.conf"
|
||||
@echo ">>> before building can proceed."
|
||||
@echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
@/usr/bin/false
|
||||
.endif
|
||||
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo ">>> Rebuilding the temporary build tree"
|
||||
@@ -297,14 +297,7 @@ everything:
|
||||
# Installs everything compiled by a 'buildworld'.
|
||||
#
|
||||
installworld:
|
||||
mkdir -p ${INSTALLTMP}
|
||||
for prog in [ awk cat chflags chown date echo egrep find grep \
|
||||
install ln make makewhatis mtree mv perl rm sed sh sysctl \
|
||||
test true uname wc zic; do \
|
||||
cp `which $$prog` ${INSTALLTMP}; \
|
||||
done
|
||||
cd ${.CURDIR}; ${IMAKE} reinstall
|
||||
rm -rf ${INSTALLTMP}
|
||||
|
||||
#
|
||||
# reinstall
|
||||
@@ -386,20 +379,15 @@ buildkernel:
|
||||
.for _kernel in ${BUILDKERNELS}
|
||||
@echo "===> ${_kernel}"
|
||||
mkdir -p ${KRNLOBJDIR}
|
||||
.if !defined(NO_KERNELCONFIG)
|
||||
cd ${KRNLCONFDIR}; \
|
||||
PATH=${TMPPATH} \
|
||||
config ${CONFIGARGS} -d ${KRNLOBJDIR}/${_kernel} ${_kernel}
|
||||
.endif
|
||||
cd ${KRNLOBJDIR}/${_kernel}; \
|
||||
MAKESRCPATH=${KRNLSRCDIR}/dev/aic7xxx/aicasm \
|
||||
${MAKE} -f ${KRNLSRCDIR}/dev/aic7xxx/aicasm/Makefile
|
||||
.if !defined(NO_KERNELDEPEND)
|
||||
cd ${KRNLOBJDIR}/${_kernel}; \
|
||||
${WMAKEENV} MACHINE=${MACHINE} ${MAKE} KERNEL=kernel depend
|
||||
.endif
|
||||
cd ${KRNLOBJDIR}/${_kernel}; \
|
||||
${WMAKEENV} MACHINE=${MACHINE} ${MAKE} KERNEL=kernel all
|
||||
MAKESRCPATH=${KRNLSRCDIR}/dev/aic7xxx \
|
||||
${MAKE} -f ${KRNLSRCDIR}/dev/aic7xxx/Makefile; \
|
||||
${WMAKEENV} MACHINE=${MACHINE} KERNEL=${_kernel} \
|
||||
${MAKE} depend; \
|
||||
${WMAKEENV} MACHINE=${MACHINE} KERNEL=${_kernel} ${MAKE} all
|
||||
.endfor
|
||||
|
||||
#
|
||||
@@ -409,7 +397,8 @@ buildkernel:
|
||||
#
|
||||
installkernel:
|
||||
cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \
|
||||
${CROSSENV} MACHINE=${MACHINE} ${MAKE} KERNEL=kernel install
|
||||
${IMAKEENV} MACHINE=${MACHINE} KERNEL=${INSTALLKERNEL} \
|
||||
${MAKE} install
|
||||
|
||||
#
|
||||
# update
|
||||
@@ -431,12 +420,9 @@ update:
|
||||
.if defined(SUPFILE2)
|
||||
@${SUP} ${SUPFLAGS} ${SUPFILE2}
|
||||
.endif
|
||||
.if defined(PORTSSUPFILE) && !defined(NO_PORTSUPDATE)
|
||||
.if defined(PORTSSUPFILE)
|
||||
@${SUP} ${SUPFLAGS} ${PORTSSUPFILE}
|
||||
.endif
|
||||
.if defined(DOCSUPFILE) && !defined(NO_DOCUPDATE)
|
||||
@${SUP} ${SUPFLAGS} ${DOCSUPFILE}
|
||||
.endif
|
||||
.endif
|
||||
.if defined(CVS_UPDATE)
|
||||
@echo "--------------------------------------------------------------"
|
||||
@@ -536,13 +522,9 @@ _libkrb5= kerberos5/lib/libroken kerberos5/lib/libasn1 kerberos5/lib/libhdb \
|
||||
kerberos5/lib/libsl
|
||||
.endif
|
||||
|
||||
.if !defined(NOPERL)
|
||||
_perl= gnu/usr.bin/perl
|
||||
.endif
|
||||
|
||||
build-tools:
|
||||
.for _tool in bin/sh ${_games} gnu/usr.bin/cc/cc_tools ${_fortran} \
|
||||
${_libroken4} ${_libkrb5} lib/libncurses ${_share} ${_perl}
|
||||
${_libroken4} ${_libkrb5} lib/libncurses ${_share}
|
||||
cd ${.CURDIR}/${_tool}; ${MAKE} build-tools
|
||||
.endfor
|
||||
|
||||
@@ -635,7 +617,6 @@ includes:
|
||||
.if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH})
|
||||
cd ${.CURDIR}/lib/csu/${MACHINE_ARCH}; ${MAKE} beforeinstall
|
||||
.endif
|
||||
cd ${.CURDIR}/gnu/lib/csu; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libalias; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libatm; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libdevstat; ${MAKE} beforeinstall
|
||||
@@ -644,7 +625,6 @@ includes:
|
||||
cd ${.CURDIR}/lib/libcam; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libdisk; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libedit; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libfetch; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libftpio; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libkvm; ${MAKE} beforeinstall
|
||||
cd ${.CURDIR}/lib/libmd; ${MAKE} beforeinstall
|
||||
@@ -675,7 +655,7 @@ includes:
|
||||
#
|
||||
# The following dependencies exist between the libraries:
|
||||
#
|
||||
# lib*: csu libgcc_pic
|
||||
# lib*: csu
|
||||
# libatm: libmd
|
||||
# libcrypt: libmd
|
||||
# libdialog: libncurses
|
||||
@@ -683,8 +663,8 @@ includes:
|
||||
# libg++: libm
|
||||
# libkrb: libcrypt
|
||||
# libopie: libmd
|
||||
# libpam: libcom_err libcrypt libcrypto libkrb libopie libradius \
|
||||
# libskey libtacplus libutil libz libssh
|
||||
# libpam: libcom_err libcrypt libcrypto libgcc_pic libkrb libradius libskey \
|
||||
# libtacplus libutil libz libssh
|
||||
# libradius: libmd
|
||||
# libreadline: libncurses
|
||||
# libskey: libcrypt libmd
|
||||
@@ -696,7 +676,7 @@ includes:
|
||||
#
|
||||
# gnu/lib: lib/libm lib/libncurses
|
||||
# kerberosIV/lib kerberos5/lib: lib/libcrypt
|
||||
# lib/libpam: secure/lib/libcrypto kerberosIV/lib/libkrb \
|
||||
# lib/libpam: secure/lib/libcrypto kerberosIV/lib/libkrb gnu/lib/libgcc \
|
||||
# secure/lib/libssh lib/libz
|
||||
# secure/lib: lib/libmd
|
||||
#
|
||||
@@ -735,11 +715,9 @@ _libkeycap= usr.sbin/pcvt/keycap
|
||||
.endif
|
||||
|
||||
libraries:
|
||||
.for _lib in ${_csu} gnu/lib/csu gnu/lib/libgcc lib/libmd lib/libcrypt \
|
||||
${_secure_lib} ${_kerberosIV_lib} \
|
||||
${_kerberos5_lib} lib/libcom_err ${_libm} lib/libncurses \
|
||||
lib/libopie lib/libradius lib/libskey lib/libtacplus lib/libutil \
|
||||
lib/libz lib gnu/lib \
|
||||
.for _lib in ${_csu} lib/libmd lib/libcrypt ${_secure_lib} ${_kerberosIV_lib} \
|
||||
${_kerberos5_lib} gnu/lib/libgcc lib/libcom_err ${_libm} lib/libncurses \
|
||||
lib/libradius lib/libskey lib/libtacplus lib/libutil lib/libz lib gnu/lib \
|
||||
${_libperl} usr.bin/lex/lib ${_libkeycap}
|
||||
.if exists(${.CURDIR}/${_lib})
|
||||
cd ${.CURDIR}/${_lib}; \
|
||||
|
||||
@@ -11,19 +11,14 @@ The Makefile in this directory supports a number of targets for
|
||||
building components (or all) of the FreeBSD source tree, the most
|
||||
commonly used one being ``world'', which rebuilds and installs
|
||||
everything in the FreeBSD system from the source tree except the
|
||||
kernel, the kernel-modules and the contents of /etc. The
|
||||
``buildkernel'' and ``installkernel'' targets build and install
|
||||
the kernel and the modules (see below). Please see the top of
|
||||
the Makefile in this directory for more information on the
|
||||
standard build targets and compile-time flags.
|
||||
kernel and the contents of /etc. Please see the top of the Makefile
|
||||
in this directory for more information on the standard build targets
|
||||
and compile-time flags.
|
||||
|
||||
Building a kernel is a somewhat more involved process, documentation
|
||||
for which can be found at:
|
||||
Building a kernel with config(8) is a somewhat more involved process,
|
||||
documentation for which can be found at:
|
||||
http://www.freebsd.org/handbook/kernelconfig.html
|
||||
And in the config(8) man page.
|
||||
Note: If you want to build and install the kernel with the
|
||||
``buildkernel'' and ``installkernel'' targets, you have to build
|
||||
world before. More information is available in the handbook.
|
||||
|
||||
The sample kernel configuration files reside in the sys/i386/conf
|
||||
sub-directory (assuming that you've installed the kernel sources), the
|
||||
@@ -40,7 +35,7 @@ bin System/User commands.
|
||||
|
||||
contrib Packages contributed by 3rd parties.
|
||||
|
||||
crypto Cryptography stuff (see crypto/README).
|
||||
crypto Export controlled stuff (see crypto/README).
|
||||
|
||||
etc Template files for /etc
|
||||
|
||||
@@ -61,7 +56,7 @@ release Release building Makefile & associated tools.
|
||||
|
||||
sbin System commands.
|
||||
|
||||
secure Cryptographic libraries and commands.
|
||||
secure DES and DES-related utilities - NOT FOR EXPORT!
|
||||
|
||||
share Shared resources.
|
||||
|
||||
|
||||
@@ -6,79 +6,8 @@ chronology since 4.0 was released is included, followed by the common
|
||||
items quick how-tos, followed by entries for versions of -current
|
||||
prior to 4.0 Release.
|
||||
|
||||
20001120:
|
||||
FreeBSD 4.2 RELEASE.
|
||||
|
||||
20001020:
|
||||
****************************** WARNING ******************************
|
||||
Sendmail has been updated.
|
||||
****************************** WARNING ******************************
|
||||
o mail.local(8) is no longer installed as a set-user-id binary.
|
||||
o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL
|
||||
is set.
|
||||
o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY
|
||||
commands.
|
||||
o Now using sendmail's version of vacation(1).
|
||||
o The sendmail cf building tools (contrib/sendmail/cf) are installed
|
||||
in /usr/share/sendmail/cf.
|
||||
o sendmail.cw changed to local-host-names
|
||||
|
||||
More details can be found at
|
||||
http://people.freebsd.org/~imp/UPDATING/sendmail-20001010
|
||||
|
||||
20001009:
|
||||
The ports tree's new layout is in place. Be sure to update
|
||||
your entire ports tree, or you will have problems.
|
||||
|
||||
20001006:
|
||||
The perl build procedure no longer installs miniperl, nor uses
|
||||
the installed miniperl. It is recommended that you delete
|
||||
/usr/bin/miniperl.
|
||||
|
||||
20000925:
|
||||
FreeBSD 4.1.1 RELEASE.
|
||||
|
||||
20000907:
|
||||
Changes to libkvm requires a recompile of the usual suspects.
|
||||
(find /usr/src -name Makefile | xargs egrep -l LIBKVM)
|
||||
This means that your world must match your kernel around this
|
||||
point.
|
||||
|
||||
20000904:
|
||||
A new issue with the sendmail upgrade has come to light.
|
||||
/etc/aliases has moved to /etc/mail/aliases. Mergemaster will
|
||||
incorrectly install the default aliases in /etc/mail rather than
|
||||
move the old one from /etc. So you'll need to manually move the
|
||||
file, create a symbolic link, remove the old /etc/aliases.db and
|
||||
run newaliases. For safety sake, you should stop sendmail
|
||||
while doing this and run the upgrade when locally sourced email
|
||||
is not likely to be generated.
|
||||
|
||||
20000827:
|
||||
sendmail has been updated from 8.9.3 to 8.11.0. Some of the more
|
||||
visible changes that may immediately affect your configuration
|
||||
include:
|
||||
- New default file locations from src/contrib/sendmail/cf/README
|
||||
- newaliases limited to root and trusted users
|
||||
- MSA port (587) turned on by default
|
||||
- New queue file naming system so can't go from 8.11 -> 8.9
|
||||
- FEATURE(`rbl') renamed to FEATURE(`dnsbl')
|
||||
- FEATURE(`nullclient') is more full featured
|
||||
- FEATURE(`nouucp') requires an argument: `reject' or `nospecial'
|
||||
- mail.local FreeBSD-only -b option changed to -B
|
||||
- See src/contrib/sendmail/RELEASE_NOTES for more info
|
||||
|
||||
20000803:
|
||||
The "installkernel" target has changed slightly. Now even if
|
||||
you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL'
|
||||
it will install the MYKERNEL file (built with the buildkernel
|
||||
target) as /kernel rather than /MYKERNEL. Those who have
|
||||
updated their /boot/loader.conf files to point to /MYKERNEL
|
||||
should remove that entry or perform manual rename of /kernel
|
||||
to /MYKERNEL.
|
||||
|
||||
20000724:
|
||||
FreeBSD 4.1 RELEASE
|
||||
FreeBSD 4.1 Released on or about this date.
|
||||
|
||||
20000711:
|
||||
If you use CVSUP or CTM to get CVS trees, AND you used to get
|
||||
@@ -91,12 +20,6 @@ prior to 4.0 Release.
|
||||
If you are merely a mirror, or don't answer yes to each of the
|
||||
clauses above, you needn't worry.
|
||||
|
||||
20000707:
|
||||
We started building modules here. IF you don't wish to
|
||||
follow the documented proceedure for building kernels, then
|
||||
you'll have to install new mk files from src/share/mk, or
|
||||
define NO_MODULES.
|
||||
|
||||
20000706:
|
||||
Binutils were updated. In order to build a kernel after this
|
||||
date, you must follow the updating procedure for building
|
||||
@@ -128,12 +51,17 @@ COMMON ITEMS:
|
||||
-----------------
|
||||
cd /usr/src
|
||||
# If you have not already done so, please buildworld here
|
||||
# You will also need to update your config file to 4.x. Usually
|
||||
# people tend to start with GENERIC from 4.x and hack from there.
|
||||
# You will also need to update your config file to 4.0. Usually
|
||||
# people tend to start with GENERIC from 4.0 and hack from there.
|
||||
make buildkernel KERNEL=<YOUR_KERNEL_HERE>
|
||||
make installkernel KERNEL=<YOUR_KERNEL_HERE>
|
||||
# Verify that the new kernel works, it will be installed as
|
||||
# /kernel
|
||||
# /YOUR_KERNEL_HERE
|
||||
chflags noschg /kernel
|
||||
chflags noschg /YOUR_KERNEL_HERE
|
||||
mv /kernel /kernel.old
|
||||
mv /YOUR_KERNEL_HERE /kernel
|
||||
chflags schg /kernel
|
||||
|
||||
To rebuild disk /dev entries
|
||||
----------------------------
|
||||
@@ -152,21 +80,15 @@ COMMON ITEMS:
|
||||
|
||||
Except when it doesn't work :-)
|
||||
|
||||
To update from 3.x to 4.x stable
|
||||
To update from 3.x to 4.0 stable
|
||||
--------------------------------
|
||||
***********************************************************
|
||||
READ -STABLE ARCHIVES FOR THE LAST WEEK OR TWO BEFORE
|
||||
STARTING THIS PROCESS. UPDATING MAY LAG BEHIND A LITTLE
|
||||
A GOTCHAS ARE OFTEN REPORTED IN [email protected]
|
||||
BEFORE BEING INCLUDED HERE. IF YOU ARE GOING TO DO REMOTE
|
||||
MACHINES, MAKE SURE THAT THE EXACT VERSION YOU ARE UPDATING
|
||||
THEM TO WORKS ON LOCAL MACHINES BEFORE PROCEEDING.
|
||||
***********************************************************
|
||||
<see notes below> [3]
|
||||
cd /usr/src
|
||||
<see notes below> [2]
|
||||
make buildworld
|
||||
<follow directions to build/install a kernel>
|
||||
cd /usr/src/sys/modules
|
||||
make install
|
||||
cd /usr/src/sbin/mknod
|
||||
make install
|
||||
<follow rebuild disk /dev entries above> [1]
|
||||
@@ -176,51 +98,31 @@ COMMON ITEMS:
|
||||
cd gnu/usr.bin/texinfo/install-info
|
||||
make install
|
||||
cd ../../../..
|
||||
ldconfig -R /usr/obj/usr/src/lib/libc
|
||||
make installworld [5]
|
||||
mergemaster [4]
|
||||
reboot
|
||||
<multi-user>
|
||||
|
||||
[1] You may need to switch from wd to ad ala 19991210. In
|
||||
addition, you should disable any third party modules such as
|
||||
vmware so that you don't crash your system on reboot.
|
||||
[1] You may need to switch from wd to ad ala 19991210
|
||||
[2] If you have any of the following in your /etc/make.conf,
|
||||
please comment them out before following these instructions
|
||||
and then do a make buildworld + make installworld after you
|
||||
are back to <multi-user> above:
|
||||
MAKE_KERBEROS4
|
||||
[3] Update to 4.x-stable sources. Make sure that you get all
|
||||
[3] Update to 4.0-stable sources. Make sure that you get all
|
||||
the parts. If you are using cvsup files that are older than a
|
||||
couple of months, be sure they have all the components listed
|
||||
in /usr/share/examples/cvsup. Crypto and secure are now
|
||||
required.
|
||||
[4] This step is optional, but is generally a good idea. If
|
||||
you wish to use many of the new features in 4.x, you must do
|
||||
you wish to use many of the new features in 4.0, you must do
|
||||
this anyway.
|
||||
|
||||
To update from 4.0-RELEASE or later to the most current
|
||||
4.x-STABLE
|
||||
----------
|
||||
make buildworld
|
||||
make buildkernel KERNEL=YOUR_KERNEL_HERE
|
||||
make installkernel KERNEL=YOUR_KERNEL_HERE
|
||||
reboot (in single user) [1]
|
||||
make installworld
|
||||
mergemaster
|
||||
reboot
|
||||
|
||||
[1] You can often get away without doing this step as the
|
||||
system will be properly updated. During the running of the
|
||||
installworld, however, system components may break and other
|
||||
oddities may happen. Don't do this on systems that aren't
|
||||
otherwise quiet as unpredictable results may happen. If in
|
||||
doubt, reboot into single user. For remote installs, keep
|
||||
a separate kernel around and use a serial console if at all
|
||||
possible.
|
||||
[5] If you get warnings from ld-elf.so that it cannot load
|
||||
libc.so, run 'ldconfig -R /usr/obj/usr/src/lib/libc' and repeat
|
||||
the installworld target.
|
||||
|
||||
What follows are older entries for those people upgrading from earlier
|
||||
versions of -stable/-current.
|
||||
versions of -stable.
|
||||
|
||||
20000308:
|
||||
The binary interface of perl to its modules changed. You
|
||||
@@ -611,7 +513,7 @@ versions of -stable/-current.
|
||||
o sio no longer supports pnp nor pccard. This will be corrected,
|
||||
but the new pccard code needs to be completed.
|
||||
o Some of the sound drivers broke for some people. It seems
|
||||
inconsistent as to who/what/when/where things broke.
|
||||
inconsistant as to who/what/when/where things broke.
|
||||
o Duplicate device entries in your config do not work. Previously
|
||||
they were silently ignored. psm0 seems to be the most common
|
||||
duplicate choice, although some reports have come in from people
|
||||
@@ -837,7 +739,7 @@ http://www.freebsd.org/cgi/getmsg.cgi?fetch=827400+0+current/freebsd-current
|
||||
FORMAT:
|
||||
|
||||
This file contains a list, in reverse chronologocal order, of major
|
||||
breakages in tracking -stable. Not all things will be listed here,
|
||||
breakages in tracking -current. Not all things will be listed here,
|
||||
and it only starts on November 18, 1998. If you have an earlier
|
||||
version of FreeBSD, you are on your own to get to November 18, 1998.
|
||||
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ SUBDIR= cat \
|
||||
SUBDIR+=csh
|
||||
.endif
|
||||
|
||||
.if !defined(NO_SENDMAIL) && !defined(NOUUCP)
|
||||
.if !defined(NO_SENDMAIL)
|
||||
SUBDIR+=rmail
|
||||
.endif
|
||||
|
||||
|
||||
+44
-70
@@ -58,7 +58,7 @@ The options are as follows:
|
||||
.Bl -tag -width indent
|
||||
.It Fl f Ar changer
|
||||
Use the device
|
||||
.Ar changer
|
||||
.Pa changer
|
||||
rather than the default device
|
||||
.Pa /dev/ch0 .
|
||||
.El
|
||||
@@ -69,27 +69,20 @@ to the desired changer device.
|
||||
.Pp
|
||||
A medium changer apparatus is made up of
|
||||
.Em elements .
|
||||
There are five element types:
|
||||
There are four element types:
|
||||
.Em picker
|
||||
(medium transport),
|
||||
.Em slot
|
||||
(storage),
|
||||
.Em portal
|
||||
(import/export),
|
||||
(import/export), and
|
||||
.Em drive
|
||||
(data transfer), and
|
||||
.Em voltag
|
||||
(select by volume identifier). The
|
||||
.Em voltag
|
||||
pseudo-element type allows the selection of tapes by their volume tag
|
||||
(typically a barcode on the tape).
|
||||
.Pp
|
||||
In this command description, the shorthand
|
||||
(data transfer). In this command description, the shorthand
|
||||
.Em ET
|
||||
will be used to represent an element type, and
|
||||
.Em EU
|
||||
will be used to represent an element unit.
|
||||
For example, to represent the first robotic arm in the changer, the
|
||||
will be used to represent an element unit. For example, to represent
|
||||
the first robotic arm in the changer, the
|
||||
.Em ET
|
||||
would be
|
||||
.Dq picker
|
||||
@@ -100,92 +93,82 @@ would be
|
||||
.Pp
|
||||
.Sh SUPPORTED COMMANDS
|
||||
.Bl -tag -width indent
|
||||
.It Ic move Xo
|
||||
.It Xo Nm move
|
||||
.Ar <from ET> <from EU> <to ET> <to EU>
|
||||
.Op Cm inv
|
||||
.Op Ar inv
|
||||
.Xc
|
||||
Move the media unit from
|
||||
.Ar <from ET/EU>
|
||||
.Pa <from ET/EU>
|
||||
to
|
||||
.Ar <to ET/EU> .
|
||||
.Pa <to ET/EU> .
|
||||
If the optional modifier
|
||||
.Cm inv
|
||||
.Pa inv
|
||||
is specified, the media unit will be inverted before insertion.
|
||||
.It Ic exchange Xo
|
||||
.It Xo Nm exchange
|
||||
.Ar <src ET> <src EU> <dst1 ET> <dst1 EU>
|
||||
.Op Ar <dst2 ET> <dst2 ET>
|
||||
.Op Cm inv1
|
||||
.Op Cm inv2
|
||||
.Op Ar inv1
|
||||
.Op Ar inv2
|
||||
.Xc
|
||||
Perform a media unit exchange operation. The media unit in
|
||||
.Ar <src ET/EU>
|
||||
.Pa <src ET/EU>
|
||||
is moved to
|
||||
.Ar <dst1 ET/EU>
|
||||
.Pa <dst1 ET/EU>
|
||||
and the media unit previously in
|
||||
.Ar <dst1 ET/EU>
|
||||
.Pa <dst1 ET/EU>
|
||||
is moved to
|
||||
.Ar <dst2 ET/EU> .
|
||||
.Pa <dst2 ET/EU> .
|
||||
In the case of a simple exchange,
|
||||
.Ar <dst2 ET/EU>
|
||||
.Pa <dst2 ET/EU>
|
||||
is omitted and the values
|
||||
.Ar <src ET/EU>
|
||||
.Pa <src ET/EU>
|
||||
are used in their place.
|
||||
The optional modifiers
|
||||
.Cm inv1
|
||||
.Pa inv1
|
||||
and
|
||||
.Cm inv2
|
||||
.Pa inv2
|
||||
specify whether the media units are to be inverted before insertion into
|
||||
.Ar <dst1 ET/EU>
|
||||
.Pa <dst1 ET/EU>
|
||||
and
|
||||
.Ar <dst2 ET/EU>
|
||||
.Pa <dst2 ET/EU>
|
||||
respectively.
|
||||
.Pp
|
||||
Note that not all medium changers support the
|
||||
.Ic exchange
|
||||
operation; the changer must have multiple free pickers or emulate
|
||||
multiple free pickers with transient storage.
|
||||
.It Ic return Xo
|
||||
.Ar <from ET> <from EU>
|
||||
.Xc
|
||||
Return the media unit to its source element.
|
||||
This command will query the status of the specified media unit, and
|
||||
will move it to the element specified in its source attribute.
|
||||
This is a convenient way to return media from a drive or portal
|
||||
to its previous element in the changer.
|
||||
.Pp
|
||||
.It Ic position Xo
|
||||
.It Xo Nm position
|
||||
.Ar <to ET> <to EU>
|
||||
.Op Cm inv
|
||||
.Op Ar inv
|
||||
.Xc
|
||||
Position the picker in front of the element described by
|
||||
.Ar <to ET/EU> .
|
||||
.Pa <to ET/EU> .
|
||||
If the optional modifier
|
||||
.Cm inv
|
||||
.Pa inv
|
||||
is specified, the media unit will be inverted before insertion.
|
||||
.Pp
|
||||
Note that not all changers behave as expected when issued this command.
|
||||
.It Ic params
|
||||
.It Nm params
|
||||
Report the number of slots, drives, pickers, and portals in the changer,
|
||||
and which picker unit the changer is currently configured to use.
|
||||
.It Ic getpicker
|
||||
.It Nm getpicker
|
||||
Report which picker unit the changer is currently configured to use.
|
||||
.It Ic setpicker Xo
|
||||
.It Xo Nm setpicker
|
||||
.Ar <unit>
|
||||
.Xc
|
||||
Configure the changer to use picker
|
||||
.Ar <unit> .
|
||||
.Pa <unit> .
|
||||
.Pp
|
||||
.It Ic ielem Xo
|
||||
.Op Ar <timeout>
|
||||
.It Xo Nm ielem
|
||||
.Op Pa <timeout>
|
||||
.Xc
|
||||
Perform an
|
||||
.Em INITIALIZE ELEMENT STATUS
|
||||
Perform an \fBINITIALIZE ELEMENT STATUS\fR
|
||||
operation on the changer. The optional
|
||||
.Ar <timeout>
|
||||
.Pa <timeout>
|
||||
parameter may be given to specify a timeout in seconds for the
|
||||
operations. This may be used if the operation takes unusually long
|
||||
because of buggy firmware or the like.
|
||||
.It Ic voltag Xo
|
||||
.It Xo Nm voltag
|
||||
.Op Fl fca
|
||||
.Ar <ET>
|
||||
.Ar <EU>
|
||||
@@ -212,18 +195,17 @@ volume tag information defined.
|
||||
The command works with the primary volume tag or, if the
|
||||
.Fl a
|
||||
flag is given, with the alternate volume tag.
|
||||
.It Ic status Xo
|
||||
.It Xo Nm status
|
||||
.Op Fl vVsSbIa
|
||||
.Op Ar <type>
|
||||
.Xc
|
||||
Report the status of all elements in the changer. If
|
||||
.Ar <type>
|
||||
.Pa <type>
|
||||
is specified, report the status of all elements of type
|
||||
.Ar <type> .
|
||||
.Pa <type> .
|
||||
.It Fl v
|
||||
Print the primary volume tag for each loaded medium, if any. The volume
|
||||
tag is printed as
|
||||
.Dq <LABEL:SERIAL> .
|
||||
tag is printed as \fB<LABEL:SERIAL>\fR.
|
||||
.It Fl V
|
||||
Print the alternate volume tag for each loaded medium, if any.
|
||||
.It Fl s
|
||||
@@ -262,14 +244,9 @@ Element supports receiving media (importing) from an outside human operator.
|
||||
.Pp
|
||||
.Sh EXAMPLES
|
||||
.Bl -tag -width indent
|
||||
.It Li chio move slot 3 drive 0
|
||||
.It Nm chio move slot 3 drive 0
|
||||
Move the media in slot 3 (fourth slot) to drive 0 (first drive).
|
||||
.It Li chio move voltag VOLUME01 drive 0
|
||||
Move the media with the barcode VOLUME01 to drive 0 (first drive).
|
||||
.It Li chio return drive 0
|
||||
Remove the tape from drive 0 (first drive) and return it to its original
|
||||
location in the rack.
|
||||
.It Li chio setpicker 2
|
||||
.It Nm chio setpicker 2
|
||||
Configure the changer to use picker 2 (third picker) for operations.
|
||||
.El
|
||||
.Sh FILES
|
||||
@@ -288,7 +265,4 @@ program and SCSI changer driver were written by
|
||||
for And Communications, http://www.and.com/.
|
||||
.br
|
||||
Additional work by
|
||||
.An Hans Huebner
|
||||
.Aq [email protected]
|
||||
and Steve Gunn
|
||||
.Aq [email protected]
|
||||
.An Hans Huebner Aq [email protected]
|
||||
+10
-274
@@ -32,7 +32,6 @@
|
||||
*/
|
||||
/*
|
||||
* Additional Copyright (c) 1997, by Matthew Jacob, for NASA/Ames Research Ctr.
|
||||
* Addidional Copyright (c) 2000, by C. Stephen Gunn, Waterspout Communications
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -55,6 +54,7 @@ static const char rcsid[] =
|
||||
#include "pathnames.h"
|
||||
|
||||
extern char *__progname; /* from crt0.o */
|
||||
extern int optreset; /* from getopt.o */
|
||||
|
||||
static void usage __P((void));
|
||||
static void cleanup __P((void));
|
||||
@@ -65,9 +65,6 @@ static int parse_special __P((char *));
|
||||
static int is_special __P((char *));
|
||||
static const char *bits_to_string __P((int, const char *));
|
||||
|
||||
static void find_element __P((char *, u_int16_t *, u_int16_t *));
|
||||
static struct changer_element_status *get_element_status __P((u_int16_t, u_int16_t));
|
||||
|
||||
static int do_move __P((char *, int, char **));
|
||||
static int do_exchange __P((char *, int, char **));
|
||||
static int do_position __P((char *, int, char **));
|
||||
@@ -76,20 +73,14 @@ static int do_getpicker __P((char *, int, char **));
|
||||
static int do_setpicker __P((char *, int, char **));
|
||||
static int do_status __P((char *, int, char **));
|
||||
static int do_ielem __P((char *, int, char **));
|
||||
static int do_return __P((char *, int, char **));
|
||||
static int do_voltag __P((char *, int, char **));
|
||||
|
||||
#ifndef CHET_VT
|
||||
#define CHET_VT 10 /* Completely Arbitrary */
|
||||
#endif
|
||||
|
||||
/* Valid changer element types. */
|
||||
const struct element_type elements[] = {
|
||||
{ "drive", CHET_DT },
|
||||
{ "picker", CHET_MT },
|
||||
{ "portal", CHET_IE },
|
||||
{ "slot", CHET_ST },
|
||||
{ "voltag", CHET_VT }, /* Select tapes by barcode */
|
||||
{ NULL, 0 },
|
||||
};
|
||||
|
||||
@@ -103,7 +94,6 @@ const struct changer_command commands[] = {
|
||||
{ "position", do_position },
|
||||
{ "setpicker", do_setpicker },
|
||||
{ "status", do_status },
|
||||
{ "return", do_return },
|
||||
{ "voltag", do_voltag },
|
||||
{ NULL, 0 },
|
||||
};
|
||||
@@ -206,24 +196,14 @@ do_move(cname, argc, argv)
|
||||
cmd.cm_fromtype = parse_element_type(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
/* Check for voltag virtual type */
|
||||
if (CHET_VT == cmd.cm_fromtype) {
|
||||
find_element(*argv, &cmd.cm_fromtype, &cmd.cm_fromunit);
|
||||
} else {
|
||||
/* <from EU> */
|
||||
cmd.cm_fromunit = parse_element_unit(*argv);
|
||||
}
|
||||
/* <from EU> */
|
||||
cmd.cm_fromunit = parse_element_unit(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
/* <to ET> */
|
||||
cmd.cm_totype = parse_element_type(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
/* Check for voltag virtual type, and report error */
|
||||
if (CHET_VT == cmd.cm_totype)
|
||||
errx(1,"%s: voltag only makes sense as an element source",
|
||||
cname);
|
||||
|
||||
/* <to EU> */
|
||||
cmd.cm_tounit = parse_element_unit(*argv);
|
||||
++argv; --argc;
|
||||
@@ -287,26 +267,16 @@ do_exchange(cname, argc, argv)
|
||||
cmd.ce_srctype = parse_element_type(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
/* Check for voltag virtual type */
|
||||
if (CHET_VT == cmd.ce_srctype) {
|
||||
find_element(*argv, &cmd.ce_srctype, &cmd.ce_srcunit);
|
||||
} else {
|
||||
/* <from EU> */
|
||||
cmd.ce_srcunit = parse_element_unit(*argv);
|
||||
}
|
||||
/* <src EU> */
|
||||
cmd.ce_srcunit = parse_element_unit(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
/* <dst1 ET> */
|
||||
cmd.ce_fdsttype = parse_element_type(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
/* Check for voltag virtual type */
|
||||
if (CHET_VT == cmd.ce_fdsttype) {
|
||||
find_element(*argv, &cmd.ce_fdsttype, &cmd.ce_fdstunit);
|
||||
} else {
|
||||
/* <from EU> */
|
||||
cmd.ce_fdstunit = parse_element_unit(*argv);
|
||||
}
|
||||
/* <dst1 EU> */
|
||||
cmd.ce_fdstunit = parse_element_unit(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
/*
|
||||
@@ -324,10 +294,6 @@ do_exchange(cname, argc, argv)
|
||||
cmd.ce_sdsttype = parse_element_type(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
if (CHET_VT == cmd.ce_sdsttype)
|
||||
errx(1,"%s %s: voltag only makes sense as an element source",
|
||||
cname, *argv);
|
||||
|
||||
/* <dst2 EU> */
|
||||
cmd.ce_sdstunit = parse_element_unit(*argv);
|
||||
++argv; --argc;
|
||||
@@ -687,9 +653,9 @@ do_status(cname, argc, argv)
|
||||
cesr.cesr_element_base = base;
|
||||
cesr.cesr_element_count = count;
|
||||
/* Allocate storage for the status structures. */
|
||||
cesr.cesr_element_status =
|
||||
(struct changer_element_status *)
|
||||
calloc(count, sizeof(struct changer_element_status));
|
||||
cesr.cesr_element_status
|
||||
= (struct changer_element_status *)
|
||||
malloc(count * sizeof(struct changer_element_status));
|
||||
|
||||
if (!cesr.cesr_element_status)
|
||||
errx(1, "can't allocate status storage");
|
||||
@@ -969,236 +935,6 @@ bits_to_string(v, cp)
|
||||
|
||||
return (buf);
|
||||
}
|
||||
/*
|
||||
* do_return()
|
||||
*
|
||||
* Given an element reference, ask the changer/picker to move that
|
||||
* element back to its source slot.
|
||||
*/
|
||||
static int
|
||||
do_return(cname, argc, argv)
|
||||
char *cname;
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
struct changer_element_status *ces;
|
||||
struct changer_move cmd;
|
||||
u_int16_t type, element;
|
||||
|
||||
++argv; --argc;
|
||||
|
||||
if (argc < 2) {
|
||||
warnx("%s: too few arguments", cname);
|
||||
goto usage;
|
||||
} else if (argc > 3) {
|
||||
warnx("%s: too many arguments", cname);
|
||||
goto usage;
|
||||
}
|
||||
|
||||
type = parse_element_type(*argv);
|
||||
++argv; --argc;
|
||||
|
||||
/* Handle voltag virtual Changer Element Type */
|
||||
if (CHET_VT == type) {
|
||||
find_element(*argv, &type, &element);
|
||||
} else {
|
||||
element = parse_element_unit(*argv);
|
||||
}
|
||||
++argv; --argc;
|
||||
|
||||
ces = get_element_status(type, element); /* Get the status */
|
||||
|
||||
if (NULL == ces)
|
||||
errx(1, "%s: null element status pointer", cname);
|
||||
|
||||
if (!(ces->ces_flags & CES_SOURCE_VALID))
|
||||
errx(1, "%s: no source information", cname);
|
||||
|
||||
(void) memset(&cmd, 0, sizeof(cmd));
|
||||
|
||||
cmd.cm_fromtype = type;
|
||||
cmd.cm_fromunit = element;
|
||||
cmd.cm_totype = ces->ces_source_type;
|
||||
cmd.cm_tounit = ces->ces_source_addr;
|
||||
|
||||
if (ioctl(changer_fd, CHIOMOVE, &cmd) == -1)
|
||||
err(1, "%s: CHIOMOVE", changer_name);
|
||||
free(ces);
|
||||
|
||||
return(0);
|
||||
|
||||
usage:
|
||||
(void) fprintf(stderr, "usage: %s %s "
|
||||
"<from ET> <from EU>\n", __progname, cname);
|
||||
return(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* get_element_status()
|
||||
*
|
||||
* return a *cesr for the specified changer element. This
|
||||
* routing will malloc()/calloc() the memory. The caller
|
||||
* should free() it when done.
|
||||
*/
|
||||
static struct changer_element_status *
|
||||
get_element_status(type, element)
|
||||
u_int16_t type;
|
||||
u_int16_t element;
|
||||
{
|
||||
struct changer_element_status_request cesr;
|
||||
struct changer_element_status *ces;
|
||||
|
||||
ces = (struct changer_element_status *)
|
||||
calloc(1, sizeof(struct changer_element_status));
|
||||
|
||||
if (NULL == ces)
|
||||
errx(1, "can't allocate status storage");
|
||||
|
||||
(void)memset(&cesr, 0, sizeof(cesr));
|
||||
|
||||
cesr.cesr_element_type = type;
|
||||
cesr.cesr_element_base = element;
|
||||
cesr.cesr_element_count = 1; /* Only this one element */
|
||||
cesr.cesr_flags |= CESR_VOLTAGS; /* Grab voltags as well */
|
||||
cesr.cesr_element_status = ces;
|
||||
|
||||
if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) {
|
||||
free(ces);
|
||||
err(1, "%s: CHIOGSTATUS", changer_name);
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
return ces;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* find_element()
|
||||
*
|
||||
* Given a <voltag> find the chager element and unit, or exit
|
||||
* with an error if it isn't found. We grab the changer status
|
||||
* and iterate until we find a match, or crap out.
|
||||
*/
|
||||
static void
|
||||
find_element(voltag, et, eu)
|
||||
char *voltag;
|
||||
u_int16_t *et;
|
||||
u_int16_t *eu;
|
||||
{
|
||||
struct changer_params cp;
|
||||
struct changer_element_status_request cesr;
|
||||
struct changer_element_status *ch_ces, *ces;
|
||||
int elem, total_elem, found = 0;
|
||||
|
||||
/*
|
||||
* Get the changer parameters, we're interested in the counts
|
||||
* for all types of elements to perform our search.
|
||||
*/
|
||||
if (ioctl(changer_fd, CHIOGPARAMS, (char *)&cp))
|
||||
err(1, "%s: CHIOGPARAMS", changer_name);
|
||||
|
||||
/* Allocate some memory for the results */
|
||||
total_elem = (cp.cp_nslots + cp.cp_ndrives
|
||||
+ cp.cp_npickers + cp.cp_nportals);
|
||||
|
||||
ch_ces = (struct changer_element_status *)
|
||||
calloc(total_elem, sizeof(struct changer_element_status));
|
||||
|
||||
if (NULL == ch_ces)
|
||||
errx(1, "can't allocate status storage");
|
||||
|
||||
ces = ch_ces;
|
||||
|
||||
/* Read in the changer slots */
|
||||
if (cp.cp_nslots > 0) {
|
||||
cesr.cesr_element_type = CHET_ST;
|
||||
cesr.cesr_element_base = 0;
|
||||
cesr.cesr_element_count = cp.cp_nslots;
|
||||
cesr.cesr_flags |= CESR_VOLTAGS;
|
||||
cesr.cesr_element_status = ces;
|
||||
|
||||
if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) {
|
||||
free(ch_ces);
|
||||
err(1, "%s: CHIOGSTATUS", changer_name);
|
||||
}
|
||||
ces += cp.cp_nslots;
|
||||
}
|
||||
|
||||
/* Read in the drive information */
|
||||
if (cp.cp_ndrives > 0 ) {
|
||||
|
||||
(void) memset(&cesr, 0, sizeof(cesr));
|
||||
cesr.cesr_element_type = CHET_DT;
|
||||
cesr.cesr_element_base = 0;
|
||||
cesr.cesr_element_count = cp.cp_ndrives;
|
||||
cesr.cesr_flags |= CESR_VOLTAGS;
|
||||
cesr.cesr_element_status = ces;
|
||||
|
||||
if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) {
|
||||
free(ch_ces);
|
||||
err(1, "%s: CHIOGSTATUS", changer_name);
|
||||
}
|
||||
ces += cp.cp_ndrives;
|
||||
}
|
||||
|
||||
/* Read in the portal information */
|
||||
if (cp.cp_nportals > 0 ) {
|
||||
(void) memset(&cesr, 0, sizeof(cesr));
|
||||
cesr.cesr_element_type = CHET_IE;
|
||||
cesr.cesr_element_base = 0;
|
||||
cesr.cesr_element_count = cp.cp_nportals;
|
||||
cesr.cesr_flags |= CESR_VOLTAGS;
|
||||
cesr.cesr_element_status = ces;
|
||||
|
||||
if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) {
|
||||
free(ch_ces);
|
||||
err(1, "%s: CHIOGSTATUS", changer_name);
|
||||
}
|
||||
ces += cp.cp_nportals;
|
||||
}
|
||||
|
||||
/* Read in the picker information */
|
||||
if (cp.cp_npickers > 0) {
|
||||
(void) memset(&cesr, 0, sizeof(cesr));
|
||||
cesr.cesr_element_type = CHET_MT;
|
||||
cesr.cesr_element_base = 0;
|
||||
cesr.cesr_element_count = cp.cp_npickers;
|
||||
cesr.cesr_flags |= CESR_VOLTAGS;
|
||||
cesr.cesr_element_status = ces;
|
||||
|
||||
if (ioctl(changer_fd, CHIOGSTATUS, (char *)&cesr) == -1) {
|
||||
free(ch_ces);
|
||||
err(1, "%s: CHIOGSTATUS", changer_name);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Now search the list the specified <voltag>
|
||||
*/
|
||||
for (elem = 0; elem <= total_elem; ++elem) {
|
||||
|
||||
ces = &ch_ces[elem];
|
||||
|
||||
/* Make sure we have a tape in this element */
|
||||
if ((ces->ces_flags & (CES_STATUS_ACCESS|CES_STATUS_FULL))
|
||||
!= (CES_STATUS_ACCESS|CES_STATUS_FULL))
|
||||
continue;
|
||||
|
||||
/* Check to see if it is our target */
|
||||
if (strcasecmp(voltag, ces->ces_pvoltag.cv_volid) == 0) {
|
||||
*et = ces->ces_type;
|
||||
*eu = ces->ces_addr;
|
||||
++found;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
errx(1, "%s: unable to locate voltag: %s", changer_name,
|
||||
voltag);
|
||||
}
|
||||
free(ch_ces);
|
||||
return;
|
||||
}
|
||||
|
||||
static void
|
||||
cleanup()
|
||||
|
||||
+2
-5
@@ -72,7 +72,6 @@ main(argc, argv)
|
||||
int Hflag, Lflag, Pflag, Rflag, ch, fflag, fts_options, hflag, rval;
|
||||
int vflag;
|
||||
char *ep, *mode;
|
||||
int newmode;
|
||||
|
||||
set = NULL;
|
||||
omode = 0;
|
||||
@@ -192,10 +191,8 @@ done: argv += optind;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
newmode = oct ? omode : getmode(set, p->fts_statp->st_mode);
|
||||
if ((newmode & ALLPERMS) == (p->fts_statp->st_mode & ALLPERMS))
|
||||
continue;
|
||||
if (chmod(p->fts_accpath, newmode) && !fflag) {
|
||||
if (chmod(p->fts_accpath, oct ? omode :
|
||||
getmode(set, p->fts_statp->st_mode)) && !fflag) {
|
||||
warn("%s", p->fts_path);
|
||||
rval = 1;
|
||||
} else {
|
||||
|
||||
@@ -41,7 +41,6 @@ static const char rcsid[] =
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#ifdef VM_AND_BUFFER_CACHE_SYNCHRONIZED
|
||||
#include <sys/mman.h>
|
||||
#endif
|
||||
|
||||
+5
-6
@@ -118,10 +118,11 @@ Print the date and time represented by
|
||||
where
|
||||
.Ar seconds
|
||||
is the number of seconds since the Epoch
|
||||
(00:00:00 UTC, January 1, 1970;
|
||||
.Po
|
||||
00:00:00 UTC, January 1, 1970;
|
||||
see
|
||||
.Xr time 3 ) ,
|
||||
and can be specified in decimal, octal, or hex.
|
||||
.Xr time 3
|
||||
.Pc .
|
||||
.It Fl t Ar minutes_west
|
||||
Set the system's value for minutes west of
|
||||
.Tn GMT .
|
||||
@@ -194,9 +195,7 @@ the clock goes back at 02:00 to 01:00, using
|
||||
will be necessary to reach October 29, 2:30.
|
||||
.Pp
|
||||
When the date is adjusted to a specific value that doesn't actually exist
|
||||
.Po
|
||||
for example March 26, 1:30 BST 2000 in the Europe/London timezone
|
||||
.Pc ,
|
||||
.Pq for example March 26, 1:30 BST 2000 in the Europe/London timezone ,
|
||||
the date will be silently adjusted forwards in units of one hour until it
|
||||
reaches a valid time.
|
||||
When the date is adjusted to a specific value that occurs twice
|
||||
|
||||
+3
-2
@@ -78,6 +78,8 @@ main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
extern int optind;
|
||||
extern char *optarg;
|
||||
struct timezone tz;
|
||||
int ch, rflag;
|
||||
int jflag, nflag;
|
||||
@@ -114,8 +116,7 @@ main(argc, argv)
|
||||
break;
|
||||
case 'r': /* user specified seconds */
|
||||
rflag = 1;
|
||||
if (sscanf(optarg,"%li",&tval) != 1)
|
||||
usage();
|
||||
tval = atol(optarg);
|
||||
break;
|
||||
case 't': /* minutes west of UTC */
|
||||
/* error check; don't allow "PST" */
|
||||
|
||||
+2
-3
@@ -132,12 +132,11 @@ jcl(argv)
|
||||
* just wanted to set both the input and output block sizes
|
||||
* and didn't want the bs semantics, so we don't warn.
|
||||
*/
|
||||
if (ddflags & (C_BLOCK | C_LCASE | C_SWAB | C_UCASE |
|
||||
C_UNBLOCK))
|
||||
if (ddflags & (C_BLOCK|C_LCASE|C_SWAB|C_UCASE|C_UNBLOCK))
|
||||
ddflags &= ~C_BS;
|
||||
|
||||
/* Bs supersedes ibs and obs. */
|
||||
if (ddflags & C_BS && ddflags & (C_IBS | C_OBS))
|
||||
if (ddflags & C_BS && ddflags & (C_IBS|C_OBS))
|
||||
warnx("bs supersedes ibs and obs");
|
||||
}
|
||||
|
||||
|
||||
+12
-24
@@ -52,7 +52,6 @@ static const char rcsid[] =
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/conf.h>
|
||||
#include <sys/disklabel.h>
|
||||
#include <sys/filio.h>
|
||||
|
||||
#include <ctype.h>
|
||||
@@ -70,7 +69,6 @@ static const char rcsid[] =
|
||||
|
||||
static void dd_close __P((void));
|
||||
static void dd_in __P((void));
|
||||
int main __P((int, char *[]));
|
||||
static void getfdtype __P((IO *));
|
||||
static void setup __P((void));
|
||||
|
||||
@@ -169,13 +167,11 @@ setup()
|
||||
pos_out();
|
||||
|
||||
/*
|
||||
* Truncate the output file. If it fails on a type of output file
|
||||
* that it should _not_ fail on, error out.
|
||||
* Truncate the output file; ignore errors because it fails on some
|
||||
* kinds of output files, tapes, for example.
|
||||
*/
|
||||
if ((ddflags & (C_OF | C_SEEK | C_NOTRUNC)) == (C_OF | C_SEEK) &&
|
||||
out.flags & ISTRUNC)
|
||||
if (ftruncate(out.fd, out.offset * out.dbsz) == -1)
|
||||
err(1, "truncating %s", out.name);
|
||||
if ((ddflags & (C_OF | C_SEEK | C_NOTRUNC)) == (C_OF | C_SEEK))
|
||||
(void)ftruncate(out.fd, out.offset * out.dbsz);
|
||||
|
||||
/*
|
||||
* If converting case at the same time as another conversion, build a
|
||||
@@ -194,10 +190,10 @@ setup()
|
||||
} else {
|
||||
if (ddflags & C_LCASE) {
|
||||
for (cnt = 0; cnt <= 0377; ++cnt)
|
||||
casetab[cnt] = tolower((int)cnt);
|
||||
casetab[cnt] = tolower(cnt);
|
||||
} else {
|
||||
for (cnt = 0; cnt <= 0377; ++cnt)
|
||||
casetab[cnt] = toupper((int)cnt);
|
||||
casetab[cnt] = toupper(cnt);
|
||||
}
|
||||
}
|
||||
ctab = casetab;
|
||||
@@ -216,22 +212,14 @@ getfdtype(io)
|
||||
|
||||
if (fstat(io->fd, &sb) == -1)
|
||||
err(1, "%s", io->name);
|
||||
if (S_ISREG(sb.st_mode))
|
||||
io->flags |= ISTRUNC;
|
||||
if (S_ISCHR(sb.st_mode) || S_ISBLK(sb.st_mode)) {
|
||||
if (ioctl(io->fd, FIODTYPE, &type) == -1) {
|
||||
err(1, "%s", io->name);
|
||||
} else {
|
||||
if (type & D_TAPE)
|
||||
io->flags |= ISTAPE;
|
||||
else if (type & (D_DISK | D_MEM)) {
|
||||
if (type & D_DISK) {
|
||||
const int one = 1;
|
||||
|
||||
(void)ioctl(io->fd, DIOCWLABEL, &one);
|
||||
}
|
||||
else if (type & (D_DISK | D_MEM))
|
||||
io->flags |= ISSEEK;
|
||||
}
|
||||
if (S_ISCHR(sb.st_mode) && (type & D_TAPE) == 0)
|
||||
io->flags |= ISCHR;
|
||||
}
|
||||
@@ -256,7 +244,7 @@ dd_in()
|
||||
case 0:
|
||||
break;
|
||||
default:
|
||||
if (st.in_full + st.in_part >= (u_quad_t)cpy_cnt)
|
||||
if (st.in_full + st.in_part >= cpy_cnt)
|
||||
return;
|
||||
break;
|
||||
}
|
||||
@@ -308,7 +296,7 @@ dd_in()
|
||||
++st.in_full;
|
||||
|
||||
/* Handle full input blocks. */
|
||||
} else if ((size_t)n == in.dbsz) {
|
||||
} else if (n == in.dbsz) {
|
||||
in.dbcnt += in.dbrcnt = n;
|
||||
++st.in_full;
|
||||
|
||||
@@ -339,7 +327,7 @@ dd_in()
|
||||
++st.swab;
|
||||
--n;
|
||||
}
|
||||
swab(in.dbp, in.dbp, (size_t)n);
|
||||
swab(in.dbp, in.dbp, n);
|
||||
}
|
||||
|
||||
in.dbp += in.dbrcnt;
|
||||
@@ -439,7 +427,7 @@ dd_out(force)
|
||||
}
|
||||
outp += nw;
|
||||
st.bytes += nw;
|
||||
if ((size_t)nw == n) {
|
||||
if (nw == n) {
|
||||
if (n != out.dbsz)
|
||||
++st.out_part;
|
||||
else
|
||||
@@ -447,7 +435,7 @@ dd_out(force)
|
||||
break;
|
||||
}
|
||||
++st.out_part;
|
||||
if ((size_t)nw == cnt)
|
||||
if (nw == cnt)
|
||||
break;
|
||||
if (out.flags & ISTAPE)
|
||||
errx(1, "%s: short write on tape device",
|
||||
|
||||
+2
-3
@@ -48,14 +48,13 @@ typedef struct {
|
||||
size_t dbsz; /* buffer size */
|
||||
|
||||
#define ISCHR 0x01 /* character device (warn on short) */
|
||||
#define ISPIPE 0x02 /* pipe-like (see position.c) */
|
||||
#define ISPIPE 0x02 /* pipe-like (not truncatable) */
|
||||
#define ISTAPE 0x04 /* tape */
|
||||
#define ISSEEK 0x08 /* valid to seek on */
|
||||
#define NOREAD 0x10 /* not readable */
|
||||
#define ISTRUNC 0x20 /* valid to ftruncate() */
|
||||
u_int flags;
|
||||
|
||||
const char *name; /* name */
|
||||
char *name; /* name */
|
||||
int fd; /* file descriptor */
|
||||
off_t offset; /* # of blocks to skip */
|
||||
|
||||
|
||||
+1
-2
@@ -53,11 +53,10 @@ void summaryx __P((int));
|
||||
void terminate __P((int));
|
||||
void unblock __P((void));
|
||||
void unblock_close __P((void));
|
||||
void bitswab __P((void *, size_t));
|
||||
|
||||
extern IO in, out;
|
||||
extern STAT st;
|
||||
extern void (*cfunc) __P((void));
|
||||
extern void (*cfunc)();
|
||||
extern quad_t cpy_cnt;
|
||||
extern size_t cbsz;
|
||||
extern u_int ddflags;
|
||||
|
||||
+3
-7
@@ -130,7 +130,7 @@ pos_out()
|
||||
* going to fail, but don't protect the user -- they shouldn't
|
||||
* have specified the seek operand.
|
||||
*/
|
||||
if (out.flags & (ISSEEK | ISPIPE)) {
|
||||
if (!(out.flags & ISTAPE)) {
|
||||
errno = 0;
|
||||
if (lseek(out.fd, out.offset * out.dbsz, SEEK_CUR) == -1 &&
|
||||
errno != 0)
|
||||
@@ -166,13 +166,9 @@ pos_out()
|
||||
if (ioctl(out.fd, MTIOCTOP, &t_op) == -1)
|
||||
err(1, "%s", out.name);
|
||||
|
||||
while (cnt++ < out.offset) {
|
||||
n = write(out.fd, out.db, out.dbsz);
|
||||
if (n == -1)
|
||||
while (cnt++ < out.offset)
|
||||
if ((n = write(out.fd, out.db, out.dbsz)) != out.dbsz)
|
||||
err(1, "%s", out.name);
|
||||
if ((size_t)n != out.dbsz)
|
||||
errx(1, "%s: write failure", out.name);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
+3
-76
@@ -14,9 +14,7 @@
|
||||
#include <locale.h>
|
||||
#include <ctype.h>
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <regex.h>
|
||||
#include <limits.h>
|
||||
|
||||
enum valtype {
|
||||
integer, numeric_string, string
|
||||
@@ -156,11 +154,7 @@ struct val *vp;
|
||||
return 0;
|
||||
|
||||
/* vp->type == numeric_string, make it numeric */
|
||||
errno = 0;
|
||||
i = strtoq(vp->u.s, (char**)NULL, 10);
|
||||
if (errno != 0) {
|
||||
errx (2, "overflow");
|
||||
}
|
||||
free (vp->u.s);
|
||||
vp->u.i = i;
|
||||
vp->type = integer;
|
||||
@@ -415,20 +409,6 @@ struct val *a, *b;
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
chk_plus (a, b, r)
|
||||
quad_t a, b, r;
|
||||
{
|
||||
/* sum of two positive numbers must be positive */
|
||||
if (a > 0 && b > 0 && r <= 0)
|
||||
return 1;
|
||||
/* sum of two negative numbers must be negative */
|
||||
if (a < 0 && b < 0 && r >= 0)
|
||||
return 1;
|
||||
/* all other cases are OK */
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct val *
|
||||
op_plus (a, b)
|
||||
struct val *a, *b;
|
||||
@@ -440,29 +420,11 @@ struct val *a, *b;
|
||||
}
|
||||
|
||||
r = make_integer (/*(quad_t)*/(a->u.i + b->u.i));
|
||||
if (chk_plus (a->u.i, b->u.i, r->u.i)) {
|
||||
errx (2, "overflow");
|
||||
}
|
||||
free_value (a);
|
||||
free_value (b);
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
chk_minus (a, b, r)
|
||||
quad_t a, b, r;
|
||||
{
|
||||
/* special case subtraction of QUAD_MIN */
|
||||
if (b == QUAD_MIN) {
|
||||
if (a >= 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
/* this is allowed for b != QUAD_MIN */
|
||||
return chk_plus (a, -b, r);
|
||||
}
|
||||
|
||||
|
||||
struct val *
|
||||
op_minus (a, b)
|
||||
struct val *a, *b;
|
||||
@@ -474,27 +436,11 @@ struct val *a, *b;
|
||||
}
|
||||
|
||||
r = make_integer (/*(quad_t)*/(a->u.i - b->u.i));
|
||||
if (chk_minus (a->u.i, b->u.i, r->u.i)) {
|
||||
errx (2, "overflow");
|
||||
}
|
||||
free_value (a);
|
||||
free_value (b);
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
chk_times (a, b, r)
|
||||
quad_t a, b, r;
|
||||
{
|
||||
/* special case: first operand is 0, no overflow possible */
|
||||
if (a == 0)
|
||||
return 0;
|
||||
/* cerify that result of division matches second operand */
|
||||
if (r / a != b)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
struct val *
|
||||
op_times (a, b)
|
||||
struct val *a, *b;
|
||||
@@ -506,26 +452,11 @@ struct val *a, *b;
|
||||
}
|
||||
|
||||
r = make_integer (/*(quad_t)*/(a->u.i * b->u.i));
|
||||
if (chk_times (a->u.i, b->u.i, r->u.i)) {
|
||||
errx (2, "overflow");
|
||||
}
|
||||
free_value (a);
|
||||
free_value (b);
|
||||
return (r);
|
||||
}
|
||||
|
||||
int
|
||||
chk_div (a, b, r)
|
||||
quad_t a, b, r;
|
||||
{
|
||||
/* div by zero has been taken care of before */
|
||||
/* only QUAD_MIN / -1 causes overflow */
|
||||
if (a == QUAD_MIN && b == -1)
|
||||
return 1;
|
||||
/* everything else is OK */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
struct val *
|
||||
op_div (a, b)
|
||||
struct val *a, *b;
|
||||
@@ -541,9 +472,6 @@ struct val *a, *b;
|
||||
}
|
||||
|
||||
r = make_integer (/*(quad_t)*/(a->u.i / b->u.i));
|
||||
if (chk_div (a->u.i, b->u.i, r->u.i)) {
|
||||
errx (2, "overflow");
|
||||
}
|
||||
free_value (a);
|
||||
free_value (b);
|
||||
return r;
|
||||
@@ -564,7 +492,6 @@ struct val *a, *b;
|
||||
}
|
||||
|
||||
r = make_integer (/*(quad_t)*/(a->u.i % b->u.i));
|
||||
/* chk_rem necessary ??? */
|
||||
free_value (a);
|
||||
free_value (b);
|
||||
return r;
|
||||
|
||||
+4
-27
@@ -44,11 +44,11 @@
|
||||
.Nd make links
|
||||
.Sh SYNOPSIS
|
||||
.Nm ln
|
||||
.Op Fl fisv
|
||||
.Op Fl fsv
|
||||
.Ar source_file
|
||||
.Op target_file
|
||||
.Nm ln
|
||||
.Op Fl fisv
|
||||
.Op Fl fsv
|
||||
.Ar source_file ...
|
||||
.Op target_dir
|
||||
.Nm link
|
||||
@@ -72,28 +72,7 @@ to a file is one of the differences between a hard and symbolic link.
|
||||
The options are as follows:
|
||||
.Bl -tag -width flag
|
||||
.It Fl f
|
||||
If the target file already exists,
|
||||
then unlink it so that the link may occur.
|
||||
(The
|
||||
.Fl f
|
||||
option overrides any previous
|
||||
.Fl i
|
||||
options.)
|
||||
.It Fl i
|
||||
Cause
|
||||
.Nm
|
||||
to write a prompt to standard error if the target file exists.
|
||||
If the response from the standard input begins with the character
|
||||
.Sq Li y
|
||||
or
|
||||
.Sq Li Y ,
|
||||
then unlink the target file so that the link may occur.
|
||||
Otherwise, do not attempt the link.
|
||||
(The
|
||||
.Fl i
|
||||
option overrides any previous
|
||||
.Fl f
|
||||
options.)
|
||||
Unlink any already existing file, permitting the link to occur.
|
||||
.It Fl s
|
||||
Create a symbolic link.
|
||||
.It Fl v
|
||||
@@ -164,10 +143,8 @@ operation using the two passed arguments.
|
||||
.Xr symlink 7
|
||||
.Sh COMPATIBILITY
|
||||
The
|
||||
.Fl i
|
||||
and
|
||||
.Fl v
|
||||
options are non-standard and their use in scripts is not recommended.
|
||||
option is non-standard and its use in scripts is not recommended.
|
||||
.Sh HISTORY
|
||||
An
|
||||
.Nm
|
||||
|
||||
+8
-37
@@ -56,7 +56,6 @@ static const char rcsid[] =
|
||||
#include <unistd.h>
|
||||
|
||||
int fflag; /* Unlink existing files. */
|
||||
int iflag; /* Interactive mode. */
|
||||
int sflag; /* Symbolic, not hard, link. */
|
||||
int vflag; /* Verbose output. */
|
||||
/* System link call. */
|
||||
@@ -71,6 +70,7 @@ main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
extern int optind;
|
||||
struct stat sb;
|
||||
int ch, exitval;
|
||||
char *p, *sourcedir;
|
||||
@@ -92,15 +92,10 @@ main(argc, argv)
|
||||
usage();
|
||||
}
|
||||
|
||||
while ((ch = getopt(argc, argv, "fisv")) != -1)
|
||||
while ((ch = getopt(argc, argv, "fsv")) != -1)
|
||||
switch (ch) {
|
||||
case 'f':
|
||||
fflag = 1;
|
||||
iflag = 0;
|
||||
break;
|
||||
case 'i':
|
||||
iflag = 1;
|
||||
fflag = 0;
|
||||
break;
|
||||
case 's':
|
||||
sflag = 1;
|
||||
@@ -144,7 +139,7 @@ linkit(target, source, isdir)
|
||||
int isdir;
|
||||
{
|
||||
struct stat sb;
|
||||
int ch, exists, first;
|
||||
int exists;
|
||||
char *p, path[MAXPATHLEN];
|
||||
|
||||
if (!sflag) {
|
||||
@@ -174,34 +169,10 @@ linkit(target, source, isdir)
|
||||
exists = !lstat(source, &sb);
|
||||
|
||||
/*
|
||||
* If the file exists, then unlink it forcibly if -f was specified
|
||||
* and interactively if -i was specified.
|
||||
* If the file exists, and -f was specified, unlink it.
|
||||
* Attempt the link.
|
||||
*/
|
||||
if (fflag && exists) {
|
||||
if (unlink(source)) {
|
||||
warn("%s", source);
|
||||
return (1);
|
||||
}
|
||||
} else if (iflag && exists) {
|
||||
fflush(stdout);
|
||||
fprintf(stderr, "replace %s? ", source);
|
||||
|
||||
first = ch = getchar();
|
||||
while(ch != '\n' && ch != EOF)
|
||||
ch = getchar();
|
||||
if (first != 'y' && first != 'Y') {
|
||||
fprintf(stderr, "not replaced\n");
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (unlink(source)) {
|
||||
warn("%s", source);
|
||||
return (1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Attempt the link. */
|
||||
if ((*linkf)(target, source)) {
|
||||
if ((fflag && exists && unlink(source)) || (*linkf)(target, source)) {
|
||||
warn("%s", source);
|
||||
return (1);
|
||||
}
|
||||
@@ -214,8 +185,8 @@ void
|
||||
usage()
|
||||
{
|
||||
(void)fprintf(stderr, "%s\n%s\n%s\n",
|
||||
"usage: ln [-fisv] file1 file2",
|
||||
" ln [-fisv] file ... directory",
|
||||
"usage: ln [-fsv] file1 file2",
|
||||
" ln [-fsv] file ... directory",
|
||||
" link file1 file2");
|
||||
exit(1);
|
||||
}
|
||||
+1
-2
@@ -407,8 +407,7 @@ the
|
||||
.Nm ls
|
||||
command acts a little differently. If you do not specify the
|
||||
.Fl F ,
|
||||
.Fl d
|
||||
or
|
||||
.Fl d or
|
||||
.Fl l
|
||||
options,
|
||||
.Nm ls
|
||||
|
||||
+30
-45
@@ -91,9 +91,29 @@ a percent sign (%) after each whiteout,
|
||||
and a vertical bar (|) after each that is a
|
||||
.Tn FIFO .
|
||||
.It Fl G
|
||||
Enable colorized output. This option is equivalent to defining
|
||||
.Ev CLICOLOR
|
||||
in the environment. (See below).
|
||||
Use
|
||||
.Tn ANSI
|
||||
color sequences to distinguish file types.
|
||||
See
|
||||
.Ev LSCOLORS
|
||||
below.
|
||||
In addition to those mentioned above in
|
||||
.Fl F ,
|
||||
some extra attributes (setuid bit set, etc.) are also displayed.
|
||||
The colorization is dependent on a terminal type with the proper
|
||||
.Xr termcap 5
|
||||
capabilities.
|
||||
The default
|
||||
.Dq cons25
|
||||
console has the proper capabilities,
|
||||
however if you want to display the colors in an
|
||||
.Xr xterm 1
|
||||
for example,
|
||||
you need to set your
|
||||
.Ev TERM
|
||||
variable to
|
||||
.Dq xterm-color .
|
||||
Other terminal types may require similar adjustments.
|
||||
.It Fl H
|
||||
Symbolic links on the command line are followed. This option is assumed if
|
||||
none of the
|
||||
@@ -373,43 +393,7 @@ is set, the block counts
|
||||
(see
|
||||
.Fl s )
|
||||
will be displayed in units of that size block.
|
||||
.It Ev CLICOLOR
|
||||
Use
|
||||
.Tn ANSI
|
||||
color sequences to distinguish file types.
|
||||
See
|
||||
.Ev LSCOLORS
|
||||
below.
|
||||
In addition to the file types mentioned in the
|
||||
.Fl F
|
||||
option some extra attributes (setuid bit set, etc.) are also displayed.
|
||||
The colorization is dependent on a terminal type with the proper
|
||||
.Xr termcap 5
|
||||
capabilities.
|
||||
The default
|
||||
.Dq cons25
|
||||
console has the proper capabilities,
|
||||
however if you want to display the colors in an
|
||||
.Xr xterm 1
|
||||
for example,
|
||||
you need to set your
|
||||
.Ev TERM
|
||||
variable to
|
||||
.Dq xterm-color .
|
||||
Other terminal types may require similar adjustments. Colorization
|
||||
is silently disabled if the output isn't directed to a terminal
|
||||
unless the
|
||||
.Ev CLICOLOR_FORCE
|
||||
variable is defined.
|
||||
.It Ev CLICOLOR_FORCE
|
||||
Color sequences are normally disabled if the output isn't directed to
|
||||
a terminal. This can be overridden by setting this flag.
|
||||
The
|
||||
.Ev TERM
|
||||
variable still needs to reference a color capable terminal however
|
||||
otherwise it is not possible to determine which color sequences to
|
||||
use.
|
||||
.It Ev COLUMNS
|
||||
.It COLUMNS
|
||||
If this variable contains a string representing a
|
||||
decimal integer, it is used as the
|
||||
column position width for displaying
|
||||
@@ -428,10 +412,11 @@ format output.
|
||||
See
|
||||
.Xr environ 7
|
||||
for more information.
|
||||
.It Ev LSCOLORS
|
||||
.It LSCOLORS
|
||||
The value of this variable describes what color to use for which
|
||||
attribute when colors are enabled with
|
||||
.Ev CLICOLOR.
|
||||
attribute when the color output
|
||||
.Pq Fl G
|
||||
is specified.
|
||||
This string is a concatenation of pairs of the format
|
||||
.Sy fb ,
|
||||
where
|
||||
@@ -509,8 +494,8 @@ in order: inode, block count, number of links, user name,
|
||||
group name, flags, file size, file name.
|
||||
.It Ev TERM
|
||||
The
|
||||
.Ev CLICOLOR
|
||||
functionality depends on a terminal type with color capabilities.
|
||||
.Fl G
|
||||
option depends on a terminal type with color capabilities.
|
||||
.It Ev TZ
|
||||
The timezone to use when displaying dates.
|
||||
See
|
||||
|
||||
+18
-22
@@ -202,7 +202,24 @@ main(argc, argv)
|
||||
fts_options |= FTS_COMFOLLOW;
|
||||
break;
|
||||
case 'G':
|
||||
setenv("CLICOLOR", "", 1);
|
||||
if (isatty(STDOUT_FILENO))
|
||||
#ifdef COLORLS
|
||||
if (tgetent(termcapbuf, getenv("TERM")) == 1) {
|
||||
ansi_fgcol = tgetstr("AF", &bp);
|
||||
ansi_bgcol = tgetstr("AB", &bp);
|
||||
|
||||
/* To switch colours off use 'op' if
|
||||
* available, otherwise use 'oc', or
|
||||
* don't do colours at all. */
|
||||
ansi_coloff = tgetstr("op", &bp);
|
||||
if (!ansi_coloff)
|
||||
ansi_coloff = tgetstr("oc", &bp);
|
||||
if (ansi_fgcol && ansi_bgcol && ansi_coloff)
|
||||
f_color = 1;
|
||||
}
|
||||
#else
|
||||
(void)fprintf(stderr, "Color support not compiled in.\n");
|
||||
#endif
|
||||
break;
|
||||
case 'L':
|
||||
fts_options &= ~FTS_PHYSICAL;
|
||||
@@ -277,27 +294,6 @@ main(argc, argv)
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
/* Enabling of colours is conditional on the environment. */
|
||||
if (getenv("CLICOLOR") &&
|
||||
(isatty(STDOUT_FILENO) || getenv("CLICOLOR_FORCE")))
|
||||
#ifdef COLORLS
|
||||
if (tgetent(termcapbuf, getenv("TERM")) == 1) {
|
||||
ansi_fgcol = tgetstr("AF", &bp);
|
||||
ansi_bgcol = tgetstr("AB", &bp);
|
||||
|
||||
/* To switch colours off use 'op' if
|
||||
* available, otherwise use 'oc', or
|
||||
* don't do colours at all. */
|
||||
ansi_coloff = tgetstr("op", &bp);
|
||||
if (!ansi_coloff)
|
||||
ansi_coloff = tgetstr("oc", &bp);
|
||||
if (ansi_fgcol && ansi_bgcol && ansi_coloff)
|
||||
f_color = 1;
|
||||
}
|
||||
#else
|
||||
(void)fprintf(stderr, "Color support not compiled in.\n");
|
||||
#endif /*COLORLS*/
|
||||
|
||||
#ifdef COLORLS
|
||||
if (f_color) {
|
||||
/*
|
||||
|
||||
+2
-2
@@ -162,9 +162,9 @@ usage()
|
||||
{
|
||||
(void)fprintf(stderr,
|
||||
#ifdef COLORLS
|
||||
"usage: ls [-ABCFGHLPRTWabcdfgiklnoqrstu1]"
|
||||
"usage: ls [-ACFGHLPRTWacdfgiklnoqrstu1]"
|
||||
#else
|
||||
"usage: ls [-ABCFHLPRTWabcdfgiklnoqrstu1]"
|
||||
"usage: ls [-ACFHLPRTWacdfgiklnoqrstu1]"
|
||||
#endif
|
||||
" [file ...]\n");
|
||||
exit(1);
|
||||
|
||||
-11
@@ -290,17 +290,6 @@ err: if (unlink(to))
|
||||
}
|
||||
if (fchmod(to_fd, sbp->st_mode))
|
||||
warn("%s: set mode (was: 0%03o)", to, oldmode);
|
||||
/*
|
||||
* XXX
|
||||
* NFS doesn't support chflags; ignore errors unless there's reason
|
||||
* to believe we're losing bits. (Note, this still won't be right
|
||||
* if the server supports flags and we were trying to *remove* flags
|
||||
* on a file that we copied, i.e., that we didn't create.)
|
||||
*/
|
||||
errno = 0;
|
||||
if (fchflags(to_fd, sbp->st_flags))
|
||||
if (errno != EOPNOTSUPP || sbp->st_flags != 0)
|
||||
warn("%s: set flags (was: 0%07o)", to, sbp->st_flags);
|
||||
|
||||
tval[0].tv_sec = sbp->st_atime;
|
||||
tval[1].tv_sec = sbp->st_mtime;
|
||||
|
||||
@@ -188,6 +188,8 @@ pax_options(argc, argv)
|
||||
unsigned int bflg = 0;
|
||||
register char *pt;
|
||||
FSUB tmp;
|
||||
extern char *optarg;
|
||||
extern int optind;
|
||||
|
||||
/*
|
||||
* process option flags
|
||||
|
||||
+1
-1
@@ -185,7 +185,7 @@ state(k, ve)
|
||||
break;
|
||||
|
||||
case SSLEEP:
|
||||
if (flag & P_SINTR) /* interruptable (long) */
|
||||
if (flag & P_SINTR) /* interuptable (long) */
|
||||
*cp = p->p_slptime >= MAXSLP ? 'I' : 'S';
|
||||
else
|
||||
*cp = 'D';
|
||||
|
||||
+1
-22
@@ -1,31 +1,10 @@
|
||||
# @(#)Makefile 8.1 (Berkeley) 5/31/93
|
||||
# $FreeBSD$
|
||||
|
||||
MAINTAINER= [email protected]
|
||||
|
||||
SENDMAIL_DIR=${.CURDIR}/../../contrib/sendmail
|
||||
.PATH: ${SENDMAIL_DIR}/rmail
|
||||
.PATH: ${.CURDIR}/../../contrib/sendmail/rmail
|
||||
|
||||
PROG= rmail
|
||||
SRCS= rmail.c
|
||||
MAN8= rmail.8
|
||||
CFLAGS+=-I${SENDMAIL_DIR}/include
|
||||
|
||||
.if exists(${.OBJDIR}/../../lib/libsmutil)
|
||||
LIBSMUTILDIR:= ${.OBJDIR}/../../lib/libsmutil
|
||||
.else
|
||||
LIBSMUTILDIR!= cd ${.CURDIR}/../../lib/libsmutil; make -V .OBJDIR
|
||||
.endif
|
||||
LIBSMUTIL:= ${LIBSMUTILDIR}/libsmutil.a
|
||||
|
||||
DPADD= ${LIBSMUTIL}
|
||||
LDADD= ${LIBSMUTIL}
|
||||
|
||||
# User customizations to the sendmail build environment
|
||||
CFLAGS+=${SENDMAIL_CFLAGS}
|
||||
DPADD+=${SENDMAIL_DPADD}
|
||||
LDADD+=${SENDMAIL_LDADD}
|
||||
LDFLAGS+=${SENDMAIL_LDFLAGS}
|
||||
|
||||
# If you want to have your rmail queuing the mail only, uncomment the
|
||||
# following:
|
||||
|
||||
+9
-16
@@ -891,21 +891,14 @@ typecmd(argc, argv)
|
||||
|
||||
switch (entry.cmdtype) {
|
||||
case CMDNORMAL: {
|
||||
if (strchr(argv[i], '/') == NULL) {
|
||||
char *path = pathval(), *name;
|
||||
int j = entry.u.index;
|
||||
do {
|
||||
name = padvance(&path, argv[i]);
|
||||
stunalloc(name);
|
||||
} while (--j >= 0);
|
||||
out1fmt(" is%s %s\n",
|
||||
cmdp ? " a tracked alias for" : "", name);
|
||||
} else {
|
||||
if (access(argv[i], X_OK) == 0)
|
||||
out1fmt(" is %s\n", argv[i]);
|
||||
else
|
||||
out1fmt(": %s\n", strerror(errno));
|
||||
}
|
||||
int j = entry.u.index;
|
||||
char *path = pathval(), *name;
|
||||
do {
|
||||
name = padvance(&path, argv[i]);
|
||||
stunalloc(name);
|
||||
} while (--j >= 0);
|
||||
out1fmt(" is%s %s\n",
|
||||
cmdp ? " a tracked alias for" : "", name);
|
||||
break;
|
||||
}
|
||||
case CMDFUNCTION:
|
||||
@@ -917,7 +910,7 @@ typecmd(argc, argv)
|
||||
break;
|
||||
|
||||
default:
|
||||
out1str(": not found\n");
|
||||
out1str(" not found\n");
|
||||
error |= 127;
|
||||
break;
|
||||
}
|
||||
|
||||
+1
-2
@@ -253,13 +253,12 @@ cmdloop(top)
|
||||
evaltree(n, 0);
|
||||
}
|
||||
popstackmark(&smark);
|
||||
setstackmark(&smark);
|
||||
if (evalskip == SKIPFILE) {
|
||||
evalskip = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
popstackmark(&smark);
|
||||
popstackmark(&smark); /* unnecessary */
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -118,7 +118,6 @@ struct stack_block {
|
||||
|
||||
struct stack_block stackbase;
|
||||
struct stack_block *stackp = &stackbase;
|
||||
struct stackmark *markp;
|
||||
char *stacknxt = stackbase.space;
|
||||
int stacknleft = MINSIZE;
|
||||
int sstrnleft;
|
||||
@@ -177,8 +176,6 @@ setstackmark(mark)
|
||||
mark->stackp = stackp;
|
||||
mark->stacknxt = stacknxt;
|
||||
mark->stacknleft = stacknleft;
|
||||
mark->marknext = markp;
|
||||
markp = mark;
|
||||
}
|
||||
|
||||
|
||||
@@ -189,7 +186,6 @@ popstackmark(mark)
|
||||
struct stack_block *sp;
|
||||
|
||||
INTOFF;
|
||||
markp = mark->marknext;
|
||||
while (stackp != mark->stackp) {
|
||||
sp = stackp;
|
||||
stackp = sp->prev;
|
||||
@@ -219,7 +215,6 @@ growstackblock()
|
||||
char *oldspace;
|
||||
int oldlen;
|
||||
struct stack_block *sp;
|
||||
struct stack_block *oldstackp;
|
||||
|
||||
newlen = ALIGN(stacknleft * 2 + 100);
|
||||
oldspace = stacknxt;
|
||||
@@ -227,7 +222,6 @@ growstackblock()
|
||||
|
||||
if (stacknxt == stackp->space && stackp != &stackbase) {
|
||||
INTOFF;
|
||||
oldstackp = stackp;
|
||||
sp = stackp;
|
||||
stackp = sp->prev;
|
||||
sp = ckrealloc((pointer)sp, sizeof(struct stack_block) -
|
||||
@@ -236,19 +230,6 @@ growstackblock()
|
||||
stackp = sp;
|
||||
stacknxt = sp->space;
|
||||
stacknleft = newlen;
|
||||
{
|
||||
/* Stack marks pointing to the start of the old block
|
||||
* must be relocated to point to the new block
|
||||
*/
|
||||
struct stackmark *xmark;
|
||||
xmark = markp;
|
||||
while (xmark != NULL && xmark->stackp == oldstackp) {
|
||||
xmark->stackp = stackp;
|
||||
xmark->stacknxt = stacknxt;
|
||||
xmark->stacknleft = stacknleft;
|
||||
xmark = xmark->marknext;
|
||||
}
|
||||
}
|
||||
INTON;
|
||||
} else {
|
||||
p = stalloc(newlen);
|
||||
|
||||
@@ -41,7 +41,6 @@ struct stackmark {
|
||||
struct stack_block *stackp;
|
||||
char *stacknxt;
|
||||
int stacknleft;
|
||||
struct stackmark *marknext;
|
||||
};
|
||||
|
||||
|
||||
|
||||
+4
-1
@@ -909,7 +909,10 @@ readtoken1(firstc, syntax, eofmark, striptabs)
|
||||
for (;;) { /* until end of line or end of word */
|
||||
CHECKSTRSPACE(3, out); /* permit 3 calls to USTPUTC */
|
||||
|
||||
synentry = syntax[c];
|
||||
if (c < 0 && c != PEOF)
|
||||
synentry = CWORD;
|
||||
else
|
||||
synentry = syntax[c];
|
||||
|
||||
switch(synentry) {
|
||||
case CNL: /* '\n' */
|
||||
|
||||
@@ -116,7 +116,7 @@ The last form is described below.
|
||||
.It Fl a Ar temporary-directory
|
||||
Specify an alternative location for the real mount points.
|
||||
The default is
|
||||
.Pa /.amd_mnt .
|
||||
.Pa /a .
|
||||
.It Fl c Ar duration
|
||||
Specify a
|
||||
.Ar duration ,
|
||||
@@ -284,7 +284,7 @@ Map entries that are tagged with a tag other than
|
||||
will not be processed.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /axx
|
||||
.It Pa /.amd_mnt
|
||||
.It Pa /a
|
||||
directory under which filesystems are dynamically mounted
|
||||
.It Pa /etc/amd.conf
|
||||
default configuration file
|
||||
|
||||
@@ -225,7 +225,7 @@ init_global_options(void)
|
||||
gopt.arch = HOST_ARCH;
|
||||
|
||||
/* automounter temp dir */
|
||||
gopt.auto_dir = "/.amd_mnt";
|
||||
gopt.auto_dir = "/a";
|
||||
|
||||
/* cluster name */
|
||||
gopt.cluster = NULL;
|
||||
|
||||
@@ -195,7 +195,8 @@ be in the
|
||||
database.
|
||||
.Sh SEE ALSO
|
||||
.Xr amd.conf 5 ,
|
||||
.Xr amd 8
|
||||
.Xr amd 8 ,
|
||||
.Xr ctl-amd 8
|
||||
.Sh AUTHORS
|
||||
.An Jan-Simon Pendry Aq [email protected] ,
|
||||
Department of Computing, Imperial College, London, UK.
|
||||
|
||||
@@ -84,7 +84,7 @@ server for the directory containing
|
||||
which defaults to
|
||||
.Pa /hlfs/home .
|
||||
Lookups within that directory are handled by
|
||||
.Nm hlfsd ,
|
||||
.Nm ,
|
||||
which uses the password map to determine how to resolve the lookup. The
|
||||
directory will be created if it doesn't already exist. The symbolic link will
|
||||
be to the accessing user's home directory, with
|
||||
@@ -156,7 +156,7 @@ If no group is provided, and there is no group
|
||||
this feature is disabled.
|
||||
.It Fl h
|
||||
Help. Print a brief help message, and exit.
|
||||
.It Fl i Ar reload-interval
|
||||
.It i Ar reload-interval
|
||||
Map-reloading interval. Each
|
||||
.Ar reload-interval
|
||||
seconds,
|
||||
|
||||
+1
-57
@@ -1,59 +1,3 @@
|
||||
--- 8.2.3-T6B released ---
|
||||
|
||||
1029. [bug] incredibly busy systems could starve handle_needs().
|
||||
|
||||
1028. [protocol] unrecognized TSIG was returning NOERROR (now NOTAUTH).
|
||||
|
||||
1027. [support] INSIST(), ENSURE(), et al, now always have sideeffects.
|
||||
|
||||
1026. [port] some kernels bogusly return tv_usec>1000000 from
|
||||
gettimeofday(). panic and dump core when this happens.
|
||||
|
||||
1025. [proto] NOTIFY messages should have AA.
|
||||
|
||||
1024. [bug] we were unwilling to use the last 10 octets of a
|
||||
response buffer in certain transaction types.
|
||||
|
||||
1023. [port] HP-UX 10.20 was looping inside contrib/dnssigner.
|
||||
|
||||
1022. [port] ensure that all handled signals are unblocked.
|
||||
|
||||
1021. [bug] the "host" command wasn't properly printing SRV RR's.
|
||||
|
||||
1020. [contrib] new "updatehosts" (V1.1.0) contributed by author.
|
||||
|
||||
1019. [port] separate CFLAGS and CPPFLAGS for unusual builds.
|
||||
|
||||
1018. [bug] When maintain_ixfr_base is set to "no" a zones IXFR
|
||||
file was still being written too.
|
||||
|
||||
1017. [doc] resolver(3) was out of date with respect to recent API
|
||||
changes.
|
||||
|
||||
1016. [bug] nslookup wasn't properly printing SIG RR's.
|
||||
|
||||
1015. [bug] when merging group information gr_name and gr_passwd
|
||||
could be left pointing at freed memory.
|
||||
|
||||
1014. [bug] iquery: DoS (potential), information leak.
|
||||
|
||||
1013. [bug] mangled hostent structures returned by
|
||||
gethostbyname_r() and friends.
|
||||
|
||||
1012. [doc] add named-bootconf example to INSTALL.
|
||||
|
||||
1011. [bug] if spawnxfer() fails we should return immediately.
|
||||
|
||||
1010. [bug] bad responses to the initial IXFR/SOA query could
|
||||
result in using an uninitalised variable.
|
||||
|
||||
1009. [port] Add support for darwin / Mac OS X
|
||||
|
||||
1008. [doc] specify allow-query default in named.conf.
|
||||
|
||||
1007. [bug] only set STREAM_AXFRIXFR if the original query is
|
||||
an IXFR.
|
||||
|
||||
--- 8.2.3-T5B (RC3) released ---
|
||||
|
||||
1006. [port] Windows/NT does not have fchown().
|
||||
@@ -94,7 +38,7 @@
|
||||
|
||||
991. [protocol] send A6 glue records in xfr.
|
||||
|
||||
990. [bug] we could loose track of a bottom of zone cut if the
|
||||
990. [bug] we could loose track of a bottom of zone cut is the
|
||||
write buffer filled up at just the correct moment.
|
||||
|
||||
989. [bug] apply to "fetch-glue no;" to notify processing. need
|
||||
|
||||
@@ -6,7 +6,6 @@ Systems it is known to compile and run on:
|
||||
Debian GNU/Linux 2.2.9 ("unreleased")
|
||||
Digital UNIX 3.2C, 4.0, 5.0
|
||||
NetBSD/i386 1.3.2, 1.4
|
||||
Darwin 1.x (Mac OS X)
|
||||
SunOS 5.6 (Solaris 2.6), SunOS 5.7 (Solaris 7)
|
||||
SCO UnixWare 7.0, 7.0.1, 7.1
|
||||
IRIX 6.5
|
||||
@@ -266,11 +265,8 @@ Using the Server
|
||||
there are lots of {curly braces} and it takes some getting used to.
|
||||
You may get a lot more help from the example file (which is
|
||||
bin/named/named.conf) than from the documentation (see ../doc/html).
|
||||
You can convert your named.boot file to a named.conf file using
|
||||
bin/named-bootconf/named-bootconf.
|
||||
|
||||
e.g.
|
||||
named-bootconf < /etc/named.boot > /etc/named.conf
|
||||
You can convert your named.boot file to a named.conf file if you have
|
||||
Perl; see bin/named/named-bootconf.pl.
|
||||
|
||||
All the files that used to be created in /var/tmp, e.g. named.run,
|
||||
will now be created in the directory specified in the options
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Copyright (c) 1993-2000 by Internet Software Consortium, Inc.
|
||||
## Copyright (c) 1993-1999 by Internet Software Consortium.
|
||||
##
|
||||
## Permission to use, copy, modify, and distribute this software for any
|
||||
## purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -19,4 +19,4 @@
|
||||
Tel: 1-888-868-1001 (toll free in U.S.)
|
||||
Tel: 1-650-779-7091
|
||||
Fax: 1-650-779-7055
|
||||
Email: <[email protected]>
|
||||
Email: [email protected]
|
||||
@@ -1 +1 @@
|
||||
8.2.3-T6B
|
||||
8.2.3-T5B
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.28 2000/07/11 06:41:26 vixie Exp $
|
||||
# $Id: Makefile,v 8.27 1999/08/08 17:13:24 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -54,12 +54,11 @@ MARGS = "SYSTYPE=${SYSTYPE}" "SHELL=${SHELL}" "A=${A}" "O=${O}" \
|
||||
"RANLIB=${RANLIB}" "AR=${AR}" "ARPREF=${ARPREF}" "ARSUFF=${ARSUFF}" \
|
||||
"INCL=../${INCL}" "PORTINCL=../${PORTINCL}" "EXE=${EXE}" \
|
||||
"LIBBIND=../${LIBBIND}" "LIBPORT=../${LIBPORT}" \
|
||||
"INSTALL=${INSTALL}" "TOP=../${TOP}" \
|
||||
"INSTALL=${INSTALL}" "CPPFLAGS=${CPPFLAGS}" "TOP=../${TOP}" \
|
||||
"VER=${VER}" "STRIP=${STRIP}" "PS=${PS}" "INSTALL_LIB=${INSTALL_LIB}" \
|
||||
"INSTALL_EXEC=${INSTALL_EXEC}" "BOUNDS=${BOUNDS}"
|
||||
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
SUBDIRS = addr nslookup dig dnsquery host named named-xfer ndc nsupdate \
|
||||
mkservdb irpd dnskeygen named-bootconf
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.26 2000/07/11 06:41:27 vixie Exp $
|
||||
# $Id: Makefile,v 8.25 1999/08/08 17:51:00 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -42,8 +42,7 @@ INSTALL_EXEC=
|
||||
INSTALL_LIB=-o bin -g bin
|
||||
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
PROG= addr
|
||||
SRCS= ${PROG}.c
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.26 2000/07/11 06:41:27 vixie Exp $
|
||||
# $Id: Makefile,v 8.25 1999/08/08 17:51:01 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -42,8 +42,7 @@ INSTALL_EXEC=
|
||||
INSTALL_LIB=-o bin -g bin
|
||||
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
NSLOOKUP_OBJS= \
|
||||
../nslookup/subr.${O} ../nslookup/send.${O} \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef lint
|
||||
static const char rcsid[] = "$Id: dig.c,v 8.42 2000/07/17 07:36:52 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: dig.c,v 8.41 2000/04/20 07:36:04 vixie Exp $";
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -167,7 +167,6 @@ static const char rcsid[] = "$Id: dig.c,v 8.42 2000/07/17 07:36:52 vixie Exp $";
|
||||
|
||||
#include <isc/dst.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
@@ -349,7 +348,6 @@ main(int argc, char **argv) {
|
||||
|
||||
res.id = 1;
|
||||
gettimeofday(&tv1, NULL);
|
||||
assert(tv1.tv_usec >= 0 && tv1.tv_usec < 1000000);
|
||||
|
||||
/*
|
||||
* Main section: once if cmd-line query
|
||||
@@ -850,7 +848,6 @@ main(int argc, char **argv) {
|
||||
if (res.pfcode & RES_PRF_HEAD1)
|
||||
fp_resstat(&res, stdout);
|
||||
(void) gettimeofday(&start_time, NULL);
|
||||
assert(start_time.tv_usec >= 0 && start_time.tv_usec < 1000000);
|
||||
if (keyfile)
|
||||
n = res_nsendsigned(&res, packet, n, &key, answer, sizeof answer);
|
||||
else
|
||||
@@ -875,7 +872,6 @@ main(int argc, char **argv) {
|
||||
}
|
||||
}
|
||||
(void) gettimeofday(&end_time, NULL);
|
||||
assert(end_time.tv_usec >= 0 && end_time.tv_usec < 1000000);
|
||||
|
||||
if (res.pfcode & RES_PRF_STATS) {
|
||||
time_t t;
|
||||
@@ -909,7 +905,6 @@ main(int argc, char **argv) {
|
||||
* batches started at different sites somewhat synchronized.
|
||||
*/
|
||||
gettimeofday(&tv2, NULL);
|
||||
assert(tv2.tv_usec >= 0 && tv2.tv_usec < 1000000);
|
||||
delay = (int)(tv2.tv_sec - tv1.tv_sec);
|
||||
if (delay < wait) {
|
||||
sleep(wait - delay);
|
||||
@@ -954,7 +949,7 @@ where: server,\n\
|
||||
fputs("\
|
||||
notes: defname and search don't work; use fully-qualified names.\n\
|
||||
this is DiG version " VSTRING "\n\
|
||||
$Id: dig.c,v 8.42 2000/07/17 07:36:52 vixie Exp $\n\
|
||||
$Id: dig.c,v 8.41 2000/04/20 07:36:04 vixie Exp $\n\
|
||||
", stderr);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 1.6 2000/07/11 06:41:28 vixie Exp $
|
||||
# $Id: Makefile,v 1.5 1999/08/08 17:51:01 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -44,8 +44,7 @@ INSTALL_LIB=-o bin -g bin
|
||||
|
||||
PS=ps
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
PROG= dnskeygen
|
||||
SRCS= dnskeygen.c
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.25 2000/07/11 06:41:29 vixie Exp $
|
||||
# $Id: Makefile,v 8.24 1999/08/08 17:51:01 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -42,8 +42,7 @@ INSTALL_EXEC=
|
||||
INSTALL_LIB=-o bin -g bin
|
||||
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
PROG= dnsquery
|
||||
SRCS= ${PROG}.c
|
||||
|
||||
@@ -80,12 +80,7 @@ main(int argc, char *argv[]) {
|
||||
case 'p' : res.retrans = atoi(optarg);
|
||||
break;
|
||||
|
||||
case 'h' : if (strlen(optarg) >= sizeof(name)) {
|
||||
fprintf(stderr,
|
||||
"Domain name too long (%s)\n", optarg);
|
||||
exit(-1);
|
||||
} else
|
||||
strcpy(name, optarg);
|
||||
case 'h' : strcpy(name, optarg);
|
||||
break;
|
||||
|
||||
case 'c' : {
|
||||
@@ -163,12 +158,7 @@ main(int argc, char *argv[]) {
|
||||
}
|
||||
}
|
||||
if (optind < argc)
|
||||
if (strlen(argv[optind]) >= sizeof(name)) {
|
||||
fprintf(stderr,
|
||||
"Domain name too long (%s)\n", argv[optind]);
|
||||
exit(-1);
|
||||
} else
|
||||
strcpy(name, argv[optind]);
|
||||
strcpy(name, argv[optind]);
|
||||
|
||||
len = sizeof(answer);
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.25 2000/07/11 06:41:29 vixie Exp $
|
||||
# $Id: Makefile,v 8.24 1999/08/08 17:51:01 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -42,8 +42,7 @@ INSTALL_EXEC=
|
||||
INSTALL_LIB=-o bin -g bin
|
||||
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
PROG= host
|
||||
SRCS= ${PROG}.c
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef lint
|
||||
static const char rcsid[] = "$Id: host.c,v 8.37 2000/07/11 07:06:14 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: host.c,v 8.36 2000/01/25 00:20:21 cyarnell Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -1043,7 +1043,7 @@ pr_rr(const u_char *cp, const u_char *msg, FILE *file, int filter) {
|
||||
cp += sizeof(u_short);
|
||||
cp = (u_char *)pr_cdname(cp, msg, name, sizeof(name));
|
||||
if (doprint)
|
||||
fprintf(file, " %s", name);
|
||||
fprintf(file,"%s",name);
|
||||
break;
|
||||
|
||||
case ns_t_naptr:
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 1.6 2000/07/17 07:15:08 vixie Exp $
|
||||
# $Id: Makefile,v 1.4 2000/05/09 07:02:22 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -46,8 +46,7 @@ STRIP=-s
|
||||
|
||||
PS=ps
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL} -I${TOP}/lib/irs ${DEFS}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL} -I${TOP}/lib/irs ${DEFS}
|
||||
|
||||
VER= LOCAL-`date +%y%m%d.%H%M%S`
|
||||
HOSTNAMECMD= hostname || uname -n
|
||||
@@ -62,8 +61,6 @@ all: ${PROG}${EXE}
|
||||
${PROG}${EXE}: irpd.${O} tmp_version.${O} ${LIBBIND}
|
||||
${CC} ${CDEBUG} ${LDFLAGS} -o ${PROG}${EXE} ${OBJS} tmp_version.${O} \
|
||||
${LIBBIND} ${SYSLIBS}
|
||||
.c.${O}:
|
||||
${CC} ${CPPFLAGS} ${CFLAGS} ${BOUNDS} -c $*.c
|
||||
|
||||
tmp_version.${O}: tmp_version.c
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 1.7 2000/07/11 06:41:30 vixie Exp $
|
||||
# $Id: Makefile,v 1.6 1999/08/08 17:51:01 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -41,8 +41,7 @@ INSTALL_EXEC=
|
||||
INSTALL_LIB=-o bin -g bin
|
||||
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
PROG= mkservdb
|
||||
SRCS= ${PROG}.c
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 1.2 2000/07/11 06:41:33 vixie Exp $
|
||||
# $Id: Makefile,v 1.1 1999/01/07 02:09:37 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -41,8 +41,7 @@ INSTALL_EXEC=
|
||||
INSTALL_LIB=-o bin -g bin
|
||||
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
PROG= named-bootconf
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.30 2000/07/11 06:41:34 vixie Exp $
|
||||
# $Id: Makefile,v 8.29 1999/08/08 17:51:02 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -45,8 +45,7 @@ INSTALL_LIB=-o bin -g bin
|
||||
|
||||
PS=ps
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
NAMED_OBJS= \
|
||||
../named/db_glue.${O} ../named/ns_glue.${O} ../named/tmp_version.${O}
|
||||
|
||||
@@ -131,7 +131,7 @@ char copyright[] =
|
||||
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char sccsid[] = "@(#)named-xfer.c 4.18 (Berkeley) 3/7/91";
|
||||
static const char rcsid[] = "$Id: named-xfer.c,v 8.94 2000/07/11 05:38:27 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: named-xfer.c,v 8.93 2000/04/20 07:33:47 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include "port_before.h"
|
||||
@@ -1216,7 +1216,6 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
|
||||
* the response.
|
||||
*/
|
||||
loop_cnt = 0;
|
||||
bp = NULL;
|
||||
do {
|
||||
u_char *cp4;
|
||||
u_short type, class, dlen;
|
||||
@@ -1228,9 +1227,6 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
|
||||
}
|
||||
tmp += n;
|
||||
|
||||
if (loop_cnt == 0)
|
||||
bp = tmp;
|
||||
|
||||
/* Are type, class, and ttl OK? */
|
||||
cp4 = tmp; /* Leave tmp pointing to type field */
|
||||
if (eom - cp4 < 3 * INT16SZ + INT32SZ) {
|
||||
@@ -1251,6 +1247,7 @@ getzone(struct zoneinfo *zp, u_int32_t serial_no, int port) {
|
||||
break;
|
||||
}
|
||||
if ((methode == ISIXFR) && (loop_cnt == 0)) {
|
||||
bp = tmp;
|
||||
soa_cnt++;
|
||||
badsoa_msg = soa_zinfo(&zp_finish, tmp, eom);
|
||||
if (badsoa_msg)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.50 2000/07/11 06:41:32 vixie Exp $
|
||||
# $Id: Makefile,v 8.49 2000/05/09 07:02:22 vixie Exp $
|
||||
# $FreeBSD$
|
||||
|
||||
DESTDIR=
|
||||
@@ -48,8 +48,7 @@ INSTALL_LIB=-o bin -g bin
|
||||
|
||||
PS=ps
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL} ${DEFS}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL} ${DEFS}
|
||||
|
||||
VER= LOCAL-`date +%Y%m%d.%H%M%S`
|
||||
HOSTNAMECMD= hostname || uname -n
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char sccsid[] = "@(#)db_load.c 4.38 (Berkeley) 3/2/91";
|
||||
static const char rcsid[] = "$Id: db_load.c,v 8.104 2000/07/17 07:48:09 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: db_load.c,v 8.103 2000/04/21 06:54:02 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -530,7 +530,7 @@ db_load(const char *filename, const char *in_origin,
|
||||
ns_warning(ns_log_load,
|
||||
"Zone \"%s\" (file %s): %s",
|
||||
zp->z_origin, filename,
|
||||
"No default TTL ($TTL <value>) set, using SOA minimum instead");
|
||||
"No default TTL set using SOA minimum instead");
|
||||
default_warn = 0;
|
||||
}
|
||||
ttl = (u_int32_t)default_ttl;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* from ns.h 4.33 (Berkeley) 8/23/90
|
||||
* $Id: ns_glob.h,v 8.55 2000/07/20 22:50:38 vixie Exp $
|
||||
* $Id: ns_glob.h,v 8.54 2000/04/21 06:54:07 vixie Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -209,6 +209,7 @@ DECL options server_options INIT(NULL);
|
||||
DECL server_info nameserver_info INIT(NULL);
|
||||
DECL key_info_list secretkey_info INIT(NULL);
|
||||
|
||||
DECL int main_needs_exit INIT(0);
|
||||
DECL ip_match_list bogus_nameservers INIT(NULL);
|
||||
|
||||
DECL log_context log_ctx;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char rcsid[] = "$Id: ns_glue.c,v 8.17 2000/07/17 07:36:52 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ns_glue.c,v 8.16 2000/04/21 06:50:18 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -252,7 +252,6 @@ void
|
||||
gettime(struct timeval *ttp) {
|
||||
if (gettimeofday(ttp, NULL) < 0)
|
||||
ns_error(ns_log_default, "gettimeofday: %s", strerror(errno));
|
||||
INSIST(ttp->tv_usec >= 0 && ttp->tv_usec < 1000000);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char sccsid[] = "@(#)ns_main.c 4.55 (Berkeley) 7/1/91";
|
||||
static const char rcsid[] = "$Id: ns_main.c,v 8.126 2000/07/20 22:50:39 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ns_main.c,v 8.125 2000/04/21 06:54:08 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -163,9 +163,8 @@ static u_int16_t nsid_state2;
|
||||
static int nsid_algorithm;
|
||||
|
||||
typedef void (*handler)(void);
|
||||
static int needs = 0, needs_exit = 0;
|
||||
static int needs = 0;
|
||||
static handler handlers[main_need_num];
|
||||
static void need_waitfunc(evContext, void *, const void *);
|
||||
|
||||
static struct qstream *sq_add(void);
|
||||
static int opensocket_d(interface *),
|
||||
@@ -197,7 +196,7 @@ static void stream_send(evContext, void *, int,
|
||||
static int only_digits(const char *);
|
||||
|
||||
static void init_needs(void),
|
||||
handle_needs(void);
|
||||
handle_need(void);
|
||||
|
||||
#ifndef HAVE_CUSTOM
|
||||
static void custom_init(void),
|
||||
@@ -526,16 +525,21 @@ main(int argc, char *argv[], char *envp[]) {
|
||||
ns_notice(ns_log_default, "Ready to answer queries.");
|
||||
gettime(&tt);
|
||||
prime_cache();
|
||||
while (!needs_exit) {
|
||||
while (!main_needs_exit) {
|
||||
evEvent event;
|
||||
|
||||
ns_debug(ns_log_default, 15, "main loop");
|
||||
if (needs != 0)
|
||||
handle_needs();
|
||||
else if (evGetNext(ev, &event, EV_WAIT) != -1)
|
||||
if (needs != 0) {
|
||||
/* Drain outstanding events; handlers ~block~. */
|
||||
while (evGetNext(ev, &event, EV_POLL) != -1)
|
||||
INSIST_ERR(evDispatch(ev, event) != -1);
|
||||
INSIST_ERR(errno == EINTR || errno == EWOULDBLOCK);
|
||||
handle_need();
|
||||
} else if (evGetNext(ev, &event, EV_WAIT) != -1) {
|
||||
INSIST_ERR(evDispatch(ev, event) != -1);
|
||||
else
|
||||
} else {
|
||||
INSIST_ERR(errno == EINTR);
|
||||
}
|
||||
}
|
||||
ns_info(ns_log_default, "named shutting down");
|
||||
#ifdef BIND_UPDATE
|
||||
@@ -2546,6 +2550,11 @@ deallocate_everything(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ns_exit(void) {
|
||||
main_needs_exit++;
|
||||
}
|
||||
|
||||
static void
|
||||
ns_restart(void) {
|
||||
ns_info(ns_log_default, "named restarting");
|
||||
@@ -2630,7 +2639,7 @@ init_needs(void) {
|
||||
handlers[main_need_zoneload] = loadxfer;
|
||||
handlers[main_need_dump] = doadump;
|
||||
handlers[main_need_statsdump] = ns_stats;
|
||||
handlers[main_need_exit] = wild;
|
||||
handlers[main_need_exit] = ns_exit;
|
||||
handlers[main_need_qrylog] = toggle_qrylog;
|
||||
handlers[main_need_debug] = use_desired_debug;
|
||||
handlers[main_need_restart] = ns_restart;
|
||||
@@ -2639,32 +2648,20 @@ init_needs(void) {
|
||||
}
|
||||
|
||||
static void
|
||||
handle_needs(void) {
|
||||
int need, queued = 0;
|
||||
handle_need(void) {
|
||||
int need;
|
||||
|
||||
ns_debug(ns_log_default, 15, "handle_needs()");
|
||||
block_signals();
|
||||
ns_debug(ns_log_default, 15, "handle_need()");
|
||||
for (need = 0; need < main_need_num; need++)
|
||||
if ((needs & (1 << need)) != 0) {
|
||||
INSIST_ERR(evWaitFor(ev, handle_needs, need_waitfunc,
|
||||
handlers[need], NULL) != -1);
|
||||
queued++;
|
||||
/* Turn off flag first, handlers ~turn~ it back on. */
|
||||
block_signals();
|
||||
needs &= ~(1 << need);
|
||||
unblock_signals();
|
||||
(handlers[need])();
|
||||
return;
|
||||
}
|
||||
needs = 0;
|
||||
unblock_signals();
|
||||
ns_debug(ns_log_default, 15, "handle_needs(): queued %d", queued);
|
||||
if (queued != 0) {
|
||||
INSIST_ERR(evDo(ev, handle_needs) != -1);
|
||||
return;
|
||||
}
|
||||
ns_panic(ns_log_default, 1, "ns_handle_needs: queued == 0", NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
need_waitfunc(evContext ctx, void *uap, const void *tag) {
|
||||
handler hand = (handler) uap;
|
||||
|
||||
(*hand)();
|
||||
ns_panic(ns_log_default, 1, "handle_need() found no needs", NULL);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -2678,8 +2675,6 @@ ns_need(enum need need) {
|
||||
void
|
||||
ns_need_unsafe(enum need need) {
|
||||
needs |= (1 << need);
|
||||
if (need == main_need_exit)
|
||||
needs_exit = 1;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char sccsid[] = "@(#)ns_maint.c 4.39 (Berkeley) 3/2/91";
|
||||
static const char rcsid[] = "$Id: ns_maint.c,v 8.105 2000/07/17 07:25:00 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ns_maint.c,v 8.103 2000/04/23 02:18:58 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -586,12 +586,12 @@ qserial_answer(struct qinfo *qp) {
|
||||
|
||||
if (qs->serial != zp->z_serial)
|
||||
ns_notice(ns_log_xfer_in,
|
||||
"Zone \"%s\" (%s) SOA serial# (%lu) rcvd from [%s] is < ours (%lu)%s",
|
||||
"Zone \"%s\" (%s) SOA serial# (%lu) rcvd from [%s] is < ours (%lu)%s",
|
||||
zp->z_origin, p_class(zp->z_class),
|
||||
(u_long) qs->serial,
|
||||
qs->serial,
|
||||
inet_ntoa(qs->ns_addr.sin_addr),
|
||||
(u_long) zp->z_serial,
|
||||
qp->q_naddr!=1 ? ": skipping" : "");
|
||||
zp->z_serial, qp->q_naddr != 1 ?
|
||||
": skipping" : "");
|
||||
qs->serial = 0;
|
||||
continue;
|
||||
}
|
||||
@@ -834,10 +834,8 @@ startxfer(struct zoneinfo *zp) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((pid = spawnxfer(argv, zp)) == -1) {
|
||||
if ((pid = spawnxfer(argv, zp)) == -1)
|
||||
unlink(tsig_name);
|
||||
return;
|
||||
}
|
||||
|
||||
xferstatus[i].xfer_state = XFER_RUNNING;
|
||||
xferstatus[i].xfer_pid = pid; /* XXX - small race condition here if we
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char sccsid[] = "@(#)ns_req.c 4.47 (Berkeley) 7/1/91";
|
||||
static const char rcsid[] = "$Id: ns_req.c,v 8.119 2000/08/21 05:57:09 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ns_req.c,v 8.113 2000/04/21 06:54:11 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -208,7 +208,6 @@ ns_req(u_char *msg, int msglen, int buflen, struct qstream *qsp,
|
||||
key = find_key(buf, NULL);
|
||||
if (key == NULL) {
|
||||
error = ns_r_badkey;
|
||||
hp->rcode = ns_r_notauth;
|
||||
ns_debug(ns_log_default, 1,
|
||||
"ns_req: TSIG verify failed - unknown key %s",
|
||||
buf);
|
||||
@@ -271,11 +270,7 @@ ns_req(u_char *msg, int msglen, int buflen, struct qstream *qsp,
|
||||
* safely assume these are always 0 when a query
|
||||
* comes in.
|
||||
*/
|
||||
#ifdef BIND_NOTIFY
|
||||
if (hp->opcode != ns_o_notify)
|
||||
#endif
|
||||
hp->aa = 0;
|
||||
hp->ra = 0;
|
||||
hp->aa = hp->ra = 0;
|
||||
ra = (NS_OPTION_P(OPTION_NORECURSE) == 0);
|
||||
|
||||
if (error == NOERROR)
|
||||
@@ -366,7 +361,6 @@ ns_req(u_char *msg, int msglen, int buflen, struct qstream *qsp,
|
||||
hp->ancount = htons(0);
|
||||
hp->nscount = htons(0);
|
||||
hp->arcount = htons(0);
|
||||
cp = msg + HFIXEDSZ;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -464,17 +458,6 @@ req_notify(HEADER *hp, u_char **cpp, u_char *eom, u_char *msg,
|
||||
char dnbuf[MAXDNAME];
|
||||
struct zoneinfo *zp;
|
||||
|
||||
/* valid notify's are authoritative */
|
||||
if (!hp->aa) {
|
||||
ns_debug(ns_log_notify, 1,
|
||||
"FORMERR Notify request without AA");
|
||||
#ifdef not_yet
|
||||
hp->rcode = ns_r_formerr;
|
||||
return (Finish);
|
||||
#endif
|
||||
}
|
||||
hp->aa = 0;
|
||||
|
||||
/* valid notify's have one question */
|
||||
if (ntohs(hp->qdcount) != 1) {
|
||||
ns_debug(ns_log_notify, 1,
|
||||
@@ -573,7 +556,6 @@ req_notify(HEADER *hp, u_char **cpp, u_char *eom, u_char *msg,
|
||||
}
|
||||
noerror:
|
||||
hp->rcode = ns_r_noerror;
|
||||
hp->aa = 1;
|
||||
return (Finish);
|
||||
refuse:
|
||||
hp->rcode = ns_r_refused;
|
||||
@@ -605,6 +587,9 @@ req_query(HEADER *hp, u_char **cpp, u_char *eom, struct qstream *qsp,
|
||||
struct databuf *dp;
|
||||
DST_KEY *in_key = (in_tsig != NULL) ? in_tsig->key : NULL;
|
||||
|
||||
|
||||
|
||||
|
||||
nameserIncr(from.sin_addr, nssRcvdQ);
|
||||
|
||||
nsp[0] = NULL;
|
||||
@@ -742,7 +727,7 @@ req_query(HEADER *hp, u_char **cpp, u_char *eom, struct qstream *qsp,
|
||||
nameserIncr(from.sin_addr, nssRcvdAXFR);
|
||||
hp->rd = 0; /* Recursion not possible. */
|
||||
}
|
||||
*buflenp -= (*msglenp - HFIXEDSZ);
|
||||
*buflenp -= *msglenp;
|
||||
count = 0;
|
||||
founddata = 0;
|
||||
dname = dnbuf;
|
||||
@@ -1161,7 +1146,7 @@ req_query(HEADER *hp, u_char **cpp, u_char *eom, struct qstream *qsp,
|
||||
if (qsp == NULL)
|
||||
return (Finish);
|
||||
else {
|
||||
if (!ixfr_found && type == ns_t_ixfr) {
|
||||
if (!ixfr_found) {
|
||||
qsp->flags |= STREAM_AXFRIXFR;
|
||||
hp->qdcount = htons(1);
|
||||
}
|
||||
@@ -1424,13 +1409,13 @@ req_iquery(HEADER *hp, u_char **cpp, u_char *eom, int *buflenp,
|
||||
GETSHORT(class, *cpp);
|
||||
*cpp += INT32SZ; /* ttl */
|
||||
GETSHORT(dlen, *cpp);
|
||||
if (*cpp + dlen != eom) {
|
||||
*cpp += dlen;
|
||||
if (*cpp != eom) {
|
||||
ns_debug(ns_log_default, 1,
|
||||
"FORMERR IQuery message length off");
|
||||
hp->rcode = ns_r_formerr;
|
||||
return (Finish);
|
||||
}
|
||||
*cpp += dlen;
|
||||
|
||||
/*
|
||||
* not all inverse queries are handled.
|
||||
@@ -1775,7 +1760,7 @@ make_rr(const char *name, struct databuf *dp, u_char *buf,
|
||||
|
||||
/* Replacement */
|
||||
ns_debug(ns_log_default, 1, "Replacement = %s", cp1);
|
||||
n = dn_comp((char *)cp1, cp, buflen, comp_ptrs, edp);
|
||||
n = dn_comp((char *)cp1, cp, buflen, dnptrs, edp);
|
||||
ns_debug(ns_log_default, 1, "dn_comp's n = %u", n);
|
||||
if (n < 0)
|
||||
goto cleanup;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char sccsid[] = "@(#)ns_resp.c 4.65 (Berkeley) 3/3/91";
|
||||
static const char rcsid[] = "$Id: ns_resp.c,v 8.144 2000/07/11 08:26:09 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ns_resp.c,v 8.143 2000/05/09 07:38:38 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -614,8 +614,7 @@ ns_resp(u_char *msg, int msglen, struct sockaddr_in from, struct qstream *qsp)
|
||||
*/
|
||||
if (hp->opcode == NS_NOTIFY_OP) {
|
||||
ns_info(ns_log_notify,
|
||||
"Received NOTIFY answer (%sAA) from %s for \"%s %s %s\"",
|
||||
hp->aa ? "" : "!",
|
||||
"Received NOTIFY answer from %s for \"%s %s %s\"",
|
||||
inet_ntoa(from.sin_addr),
|
||||
*(qp->q_name) ? qp->q_name : ".",
|
||||
p_class(qp->q_class), p_type(qp->q_type));
|
||||
@@ -2368,7 +2367,6 @@ sysquery(const char *dname, int class, int type,
|
||||
hp = (HEADER *) qp->q_msg;
|
||||
hp->id = qp->q_nsid = htons(nsid_next());
|
||||
hp->rd = (qp->q_addr[qp->q_curaddr].forwarder ? 1 : 0);
|
||||
hp->aa = (opcode == NS_NOTIFY_OP);
|
||||
|
||||
/* First check for an already pending query for this data. */
|
||||
for (oqp = nsqhead; oqp != NULL; oqp = oqp->q_link) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char sccsid[] = "@(#)ns_main.c 4.55 (Berkeley) 7/1/91";
|
||||
static const char rcsid[] = "$Id: ns_signal.c,v 8.13 2000/07/11 07:10:12 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ns_signal.c,v 8.12 2000/04/21 06:54:12 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -245,9 +245,6 @@ init_signals(void) {
|
||||
"sigaction failed in set_signal_handler(%d): %s",
|
||||
sighandlers[sh].sig, strerror(errno));
|
||||
}
|
||||
/* Unblock all signals that we expect to handle. */
|
||||
if (sigprocmask(SIG_UNBLOCK, &mask, NULL) < 0)
|
||||
ns_panic(ns_log_os, 1, "sigblock failed: %s", strerror(errno));
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char rcsid[] = "$Id: ns_update.c,v 8.81 2000/07/11 09:25:14 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ns_update.c,v 8.78 2000/04/23 02:19:00 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -286,24 +286,16 @@ printupdatelog(struct sockaddr_in srcaddr,
|
||||
if (fp == NULL)
|
||||
return;
|
||||
|
||||
if (zp->z_maintain_ixfr_base == 1) {
|
||||
ifp = open_ixfr_log(zp);
|
||||
if (ifp == NULL) {
|
||||
(void) close_transaction_log(zp, fp);
|
||||
return;
|
||||
}
|
||||
ifp = open_ixfr_log(zp);
|
||||
if (ifp == NULL) {
|
||||
(void) close_transaction_log(zp, fp);
|
||||
return;
|
||||
}
|
||||
else
|
||||
ifp = NULL;
|
||||
|
||||
sprintf(time, "at %lu", (u_long)tt.tv_sec);
|
||||
fprintf(fp, "[DYNAMIC_UPDATE] id %u from %s %s (named pid %ld):\n",
|
||||
ntohs(hp->id), sin_ntoa(srcaddr), time, (long)getpid());
|
||||
if (ifp)
|
||||
fprintf(ifp,
|
||||
"[DYNAMIC_UPDATE] id %u from %s %s (named pid %ld):\n",
|
||||
ntohs(hp->id), sin_ntoa(srcaddr), time,
|
||||
(long)getpid());
|
||||
fprintf(ifp, "[DYNAMIC_UPDATE] id %u from %s %s (named pid %ld):\n",
|
||||
ntohs(hp->id), sin_ntoa(srcaddr), time, (long)getpid());
|
||||
for (rrecp = HEAD(*updlist); rrecp != NULL; rrecp = NEXT(rrecp, r_link)) {
|
||||
INSIST(zp == &zones[rrecp->r_zone]);
|
||||
switch (rrecp->r_section) {
|
||||
@@ -311,11 +303,9 @@ printupdatelog(struct sockaddr_in srcaddr,
|
||||
fprintf(fp, "zone:\torigin %s class %s serial %u\n",
|
||||
zp->z_origin, p_class(zp->z_class),
|
||||
old_serial);
|
||||
if (ifp)
|
||||
fprintf(ifp,
|
||||
"zone:\torigin %s class %s serial %u\n",
|
||||
zp->z_origin, p_class(zp->z_class),
|
||||
old_serial);
|
||||
fprintf(ifp, "zone:\torigin %s class %s serial %u\n",
|
||||
zp->z_origin, p_class(zp->z_class),
|
||||
old_serial);
|
||||
break;
|
||||
case S_PREREQ:
|
||||
opcode = rrecp->r_opcode;
|
||||
@@ -342,17 +332,15 @@ printupdatelog(struct sockaddr_in srcaddr,
|
||||
while (dp != NULL) {
|
||||
if (dp->d_rcode == 0 &&
|
||||
!was_added(updlist, dp)) {
|
||||
if (ifp) {
|
||||
fprintf(ifp,
|
||||
"update:\t{%s} %s. %u %s %s ",
|
||||
"delete",
|
||||
rrecp->r_dname,
|
||||
dp->d_ttl,
|
||||
p_class(dp->d_class),
|
||||
p_type(dp->d_type));
|
||||
(void) rdata_dump(dp, ifp);
|
||||
fprintf(ifp, "\n");
|
||||
}
|
||||
fprintf(ifp,
|
||||
"update:\t{%s} %s. %u %s %s ",
|
||||
"delete",
|
||||
rrecp->r_dname,
|
||||
dp->d_ttl,
|
||||
p_class(dp->d_class),
|
||||
p_type(dp->d_type));
|
||||
(void) rdata_dump(dp, ifp);
|
||||
fprintf(ifp, "\n");
|
||||
}
|
||||
dp = dp->d_next;
|
||||
}
|
||||
@@ -365,15 +353,13 @@ printupdatelog(struct sockaddr_in srcaddr,
|
||||
dp->d_type != T_SOA &&
|
||||
(dp->d_mark & D_MARK_ADDED) != 0 &&
|
||||
!was_deleted(updlist, dp)) {
|
||||
if (ifp) {
|
||||
fprintf(ifp, "update:\t{%s} %s. ",
|
||||
opcodes[opcode], rrecp->r_dname);
|
||||
fprintf(ifp, "%u ", rrecp->r_ttl);
|
||||
fprintf(ifp, "%s ", p_class(zp->z_class));
|
||||
fprintf(ifp, "%s ", p_type(rrecp->r_type));
|
||||
(void) rdata_dump(dp, ifp);
|
||||
fprintf(ifp, "\n");
|
||||
}
|
||||
fprintf(ifp, "update:\t{%s} %s. ",
|
||||
opcodes[opcode], rrecp->r_dname);
|
||||
fprintf(ifp, "%u ", rrecp->r_ttl);
|
||||
fprintf(ifp, "%s ", p_class(zp->z_class));
|
||||
fprintf(ifp, "%s ", p_type(rrecp->r_type));
|
||||
(void) rdata_dump(dp, ifp);
|
||||
fprintf(ifp, "\n");
|
||||
}
|
||||
/* Update log. */
|
||||
fprintf(fp, "update:\t{%s} %s. ",
|
||||
@@ -412,15 +398,13 @@ printupdatelog(struct sockaddr_in srcaddr,
|
||||
dp->d_type == T_SOA &&
|
||||
(dp->d_mark & D_MARK_ADDED) != 0 &&
|
||||
!was_deleted(updlist, dp)) {
|
||||
if (ifp) {
|
||||
fprintf(ifp, "update:\t{%s} %s. ",
|
||||
opcodes[opcode], rrecp->r_dname);
|
||||
fprintf(ifp, "%u ", rrecp->r_ttl);
|
||||
fprintf(ifp, "%s ", p_class(zp->z_class));
|
||||
fprintf(ifp, "%s ", p_type(rrecp->r_type));
|
||||
(void) rdata_dump(dp, ifp);
|
||||
fprintf(ifp, "\n[END_DELTA]\n");
|
||||
}
|
||||
fprintf(ifp, "update:\t{%s} %s. ",
|
||||
opcodes[opcode], rrecp->r_dname);
|
||||
fprintf(ifp, "%u ", rrecp->r_ttl);
|
||||
fprintf(ifp, "%s ", p_class(zp->z_class));
|
||||
fprintf(ifp, "%s ", p_type(rrecp->r_type));
|
||||
(void) rdata_dump(dp, ifp);
|
||||
fprintf(ifp, "\n[END_DELTA]\n");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -429,8 +413,7 @@ printupdatelog(struct sockaddr_in srcaddr,
|
||||
}
|
||||
fprintf(fp, "\n");
|
||||
(void) close_transaction_log(zp, fp);
|
||||
if (ifp)
|
||||
(void) close_ixfr_log(zp, ifp);
|
||||
(void) close_ixfr_log(zp, ifp);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -564,7 +547,7 @@ process_prereq(ns_updrec *ur, int *rcodep, u_int16_t zclass) {
|
||||
*/
|
||||
if (rdp && (rdp->d_mark & D_MARK_FOUND) != 0) {
|
||||
/* Already processed. */
|
||||
return (1);
|
||||
return (1);
|
||||
}
|
||||
if (ttl != 0) {
|
||||
ns_debug(ns_log_update, 1,
|
||||
@@ -2979,35 +2962,32 @@ incr_serial(struct zoneinfo *zp) {
|
||||
old_serial, serial, checked_ctime(&t));
|
||||
if (close_transaction_log(zp, fp)<0)
|
||||
return (-1);
|
||||
if (zp->z_maintain_ixfr_base) {
|
||||
ifp = open_ixfr_log(zp);
|
||||
if (ifp == NULL)
|
||||
return (-1);
|
||||
dp = findzonesoa(zp);
|
||||
if (dp) {
|
||||
olddp = memget(DATASIZE(dp->d_size));
|
||||
if (olddp != NULL) {
|
||||
memcpy(olddp, dp, DATASIZE(dp->d_size));
|
||||
cp = findsoaserial(olddp->d_data);
|
||||
PUTLONG(old_serial, cp);
|
||||
fprintf(ifp, "update: {delete} %s. %u %s %s ",
|
||||
zp->z_origin, dp->d_ttl,
|
||||
p_class(dp->d_class),
|
||||
p_type(dp->d_type));
|
||||
(void) rdata_dump(olddp, ifp);
|
||||
fprintf(ifp, "\n");
|
||||
memput(olddp, DATASIZE(dp->d_size));
|
||||
}
|
||||
fprintf(ifp, "update: {add} %s. %u %s %s ",
|
||||
ifp = open_ixfr_log(zp);
|
||||
if (ifp == NULL)
|
||||
return (-1);
|
||||
dp = findzonesoa(zp);
|
||||
if (dp) {
|
||||
olddp = memget(DATASIZE(dp->d_size));
|
||||
if (olddp != NULL) {
|
||||
memcpy(olddp, dp, DATASIZE(dp->d_size));
|
||||
cp = findsoaserial(olddp->d_data);
|
||||
PUTLONG(old_serial, cp);
|
||||
fprintf(ifp, "update: {delete} %s. %u %s %s ",
|
||||
zp->z_origin, dp->d_ttl,
|
||||
p_class(dp->d_class), p_type(dp->d_type));
|
||||
(void) rdata_dump(dp, ifp);
|
||||
p_class(dp->d_class), p_type(dp->d_type));
|
||||
(void) rdata_dump(olddp, ifp);
|
||||
fprintf(ifp, "\n");
|
||||
memput(olddp, DATASIZE(dp->d_size));
|
||||
}
|
||||
fprintf(ifp, "[END_DELTA]\n");
|
||||
if (close_ixfr_log(zp, ifp) < 0)
|
||||
return (-1);
|
||||
fprintf(ifp, "update: {add} %s. %u %s %s ",
|
||||
zp->z_origin, dp->d_ttl,
|
||||
p_class(dp->d_class), p_type(dp->d_type));
|
||||
(void) rdata_dump(dp, ifp);
|
||||
fprintf(ifp, "\n");
|
||||
}
|
||||
fprintf(ifp, "[END_DELTA]\n");
|
||||
if (close_ixfr_log(zp, ifp)<0)
|
||||
return (-1);
|
||||
|
||||
/*
|
||||
* This shouldn't happen, but we check to be sure.
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 1.16 2000/07/11 06:41:34 vixie Exp $
|
||||
# $Id: Makefile,v 1.15 1999/08/08 17:51:02 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -44,8 +44,7 @@ INSTALL_LIB=-o bin -g bin
|
||||
PS=ps
|
||||
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL} ${DEFS}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL} ${DEFS}
|
||||
|
||||
PROG= ndc
|
||||
SRCS= ${PROG}.c
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.25 2000/07/11 06:41:35 vixie Exp $
|
||||
# $Id: Makefile,v 8.24 1999/10/13 01:14:46 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -42,9 +42,8 @@ INSTALL_EXEC=
|
||||
INSTALL_LIB=-o bin -g bin
|
||||
|
||||
LDFLAGS=
|
||||
DEFS= -D_PATH_HELPFILE=\"${DESTDIR}${DESTHELP}/nslookup.help\"
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL} ${DEFS}
|
||||
DEFS= -D_PATH_HELPFILE=\"${DESTHELP}/nslookup.help\"
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL} ${DEFS}
|
||||
|
||||
PROG= nslookup
|
||||
CSRCS= main.c getinfo.c debug.c send.c skip.c list.c subr.c
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
#ifndef lint
|
||||
static const char sccsid[] = "@(#)debug.c 5.26 (Berkeley) 3/21/91";
|
||||
static const char rcsid[] = "$Id: debug.c,v 8.16 2000/07/11 05:59:32 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: debug.c,v 8.15 1999/10/13 16:39:16 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -622,15 +622,8 @@ Print_rr(const u_char *ocp, const u_char *msg, const u_char *eom, FILE *file) {
|
||||
case T_KEY:
|
||||
default: {
|
||||
char buf[2048]; /* XXX need to malloc/realloc. */
|
||||
char rrname[NS_MAXDNAME];
|
||||
|
||||
cp2 = p_fqnname(ocp, msg, NS_MAXCDNAME, rrname, sizeof rrname);
|
||||
if (cp2 == NULL) {
|
||||
fprintf(file, "(name truncated?)\n");
|
||||
return (NULL); /* compression error */
|
||||
}
|
||||
|
||||
if (ns_sprintrrf(msg, eom - msg, rrname, (ns_class)class,
|
||||
if (ns_sprintrrf(msg, eom - msg, "?", (ns_class)class,
|
||||
(ns_type)type, rrttl, cp1, dlen, NULL, NULL,
|
||||
buf, sizeof buf) < 0) {
|
||||
perror("ns_sprintrrf");
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
#ifndef lint
|
||||
static const char sccsid[] = "@(#)getinfo.c 5.26 (Berkeley) 3/21/91";
|
||||
static const char rcsid[] = "$Id: getinfo.c,v 8.16 2000/07/11 04:36:26 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: getinfo.c,v 8.15 1999/10/13 16:39:16 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -651,11 +651,11 @@ GetHostInfoByName(nsAddrPtr, queryClass, queryType, name, hostPtr, isServer)
|
||||
* - there is at least one dot, there is no trailing dot,
|
||||
* and RES_DNSRCH is set.
|
||||
*/
|
||||
if ((n == 0 && (res.options & RES_DEFNAMES) != 0) ||
|
||||
(n != 0 && *--cp != '.' && (res.options & RES_DNSRCH) != 0))
|
||||
for (domain = res.dnsrch; *domain != NULL; domain++) {
|
||||
if ((n == 0 && res.options & RES_DEFNAMES) ||
|
||||
(n != 0 && *--cp != '.' && res.options & RES_DNSRCH))
|
||||
for (domain = res.dnsrch; *domain; domain++) {
|
||||
result = GetHostDomain(nsAddrPtr, queryClass, queryType,
|
||||
name, *domain, hostPtr, isServer);
|
||||
name, *domain, hostPtr, isServer);
|
||||
/*
|
||||
* If no server present, give up.
|
||||
* If name isn't found in this domain,
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
## SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.25 2000/07/11 06:41:35 vixie Exp $
|
||||
# $Id: Makefile,v 8.24 1999/08/08 17:51:02 vixie Exp $
|
||||
|
||||
DESTDIR=
|
||||
CC= cc
|
||||
@@ -42,8 +42,7 @@ INSTALL_EXEC=
|
||||
INSTALL_LIB=-o bin -g bin
|
||||
|
||||
LDFLAGS=
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
|
||||
PROG= nsupdate
|
||||
SRCS= ${PROG}.c
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#if !defined(lint) && !defined(SABER)
|
||||
static const char rcsid[] = "$Id: nsupdate.c,v 8.24 2000/07/11 06:32:01 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: nsupdate.c,v 8.23 2000/02/04 07:51:04 vixie Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -168,6 +168,8 @@ main(argc, argv)
|
||||
char *keyfile=NULL, *keyname=NULL, *p, *pp;
|
||||
int file_major, file_minor, alg;
|
||||
|
||||
|
||||
|
||||
progname = argv[0];
|
||||
|
||||
while ((c = getopt(argc, argv, "dsvk:n:")) != -1) {
|
||||
@@ -194,7 +196,7 @@ main(argc, argv)
|
||||
*colon='\0';
|
||||
break;
|
||||
}
|
||||
case 'n':
|
||||
case 'n':
|
||||
keyname=optarg;
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
<A NAME="Syntax"><H3>Syntax</H3></A>
|
||||
|
||||
<PRE>
|
||||
<VAR>address_match_list</VAR> = <VAR>address_match_element</VAR> [ <VAR>address_match_element</VAR> ... ]
|
||||
<VAR>address_match_list</VAR> = 1*<VAR>address_match_element</VAR>
|
||||
|
||||
<VAR>address_match_element</VAR> = [ "!" ] ( <VAR><A HREF="docdef.html">ip_address</A></VAR> / <VAR><A HREF="docdef.html">ip_prefix</A></VAR> / <VAR><A HREF="acl.html">acl_name</A></VAR> / <VAR><A HREF="docdef.html">"key" key_id</A></VAR> / { <VAR>address_match_list</VAR> } ) ;
|
||||
<VAR>address_match_element</VAR> = [ "!" ] (<VAR><A HREF="docdef.html">address_match_list</A></VAR> / <VAR><A HREF="docdef.html">ip_address</A></VAR> / <VAR><A HREF="docdef.html">ip_prefix</A></VAR> / <VAR><A HREF="acl.html">acl_name</A></VAR> / <VAR><A HREF="docdef.html">"key" key_id</A></VAR>) ";"
|
||||
</PRE>
|
||||
|
||||
<HR>
|
||||
@@ -94,7 +94,7 @@ fall through.
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
Last Updated: $Id: address_list.html,v 1.9 1999/12/03 02:20:42 gson Exp $
|
||||
Last Updated: $Id: address_list.html,v 1.8 1999/09/15 20:28:00 cyarnell Exp $
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -11,9 +11,9 @@
|
||||
|
||||
<UL>
|
||||
<LI>DNS Dynamic Updates
|
||||
(<A HREF=http://www.ietf.org/rfc/rfc2136.txt>RFC 2136</A>)</LI>
|
||||
(<A HREF=http://ds.internic.net/rfc/rfc2136.txt>RFC 2136</A>)</LI>
|
||||
<LI>DNS Change Notification
|
||||
(<A HREF=http://www.ietf.org/rfc/rfc1996.txt>RFC 1996</A>)</LI>
|
||||
(<A HREF=http://ds.internic.net/rfc/rfc1996.txt>RFC 1996</A>)</LI>
|
||||
<LI>Completely new configuration syntax</LI>
|
||||
<LI>Flexible, categorized logging system</LI>
|
||||
<LI>IP-address-based access control for queries, zone transfers, and
|
||||
@@ -58,7 +58,7 @@ and generally kind hearted folk such as yourself.
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
Last Updated: $Id: index.html,v 1.6 1999/12/28 10:03:40 cyarnell Exp $
|
||||
Last Updated: $Id: index.html,v 1.5 1998/11/24 01:44:43 marka Exp $
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<P>
|
||||
The Master File Format was initially defined in
|
||||
<A HREF=http://www.ietf.org/rfc/rfc1035.txt>RFC 1035</A>
|
||||
<A HREF=http://ds.internic.net/rfc/rfc1035.txt>RFC 1035</A>
|
||||
and has subsequently been extended.
|
||||
<P>
|
||||
While the Master File Format is class independent all records in a
|
||||
@@ -46,7 +46,7 @@ point.
|
||||
set to that value otherwise the current <CODE>$ORIGIN</CODE> is used.
|
||||
<I>NOTE: The behaviour when <origin> is specified differs from that
|
||||
described in
|
||||
<A HREF=http://www.ietf.org/rfc/rfc1035.txt>RFC 1035</A>.</I>
|
||||
<A HREF=http://ds.internic.net/rfc/rfc1035.txt>RFC 1035</A>.</I>
|
||||
<P>
|
||||
The origin and current domain revert to the values they were prior to the
|
||||
<CODE>$INCLUDE</CODE> once the file has been read.
|
||||
@@ -57,7 +57,7 @@ Set the default Time To Live (TTL) for subsequent records with undefined
|
||||
TTL's. Valid TTL's are of the range 0-2147483647.
|
||||
<P>
|
||||
<CODE>$TTL</CODE> is defined in
|
||||
<A HREF=http://www.ietf.org/rfc/rfc2308.txt>RFC 2308</A>.
|
||||
<A HREF=http://ds.internic.net/rfc/rfc2308.txt>RFC 2308</A>.
|
||||
<H3>BIND Master File Extentions</H3>
|
||||
<H4>$GENERATE</H4>
|
||||
Syntax: <CODE>$GENERATE <range> <lhs> <type> <rhs>
|
||||
@@ -67,7 +67,7 @@ Syntax: <CODE>$GENERATE <range> <lhs> <type> <rhs>
|
||||
that only differ from each other by an iterator. <CODE>$GENERATE</CODE>
|
||||
can be used to easily generate the sets of records required to support
|
||||
sub /24 reverse delegations described in
|
||||
<A HREF=http://www.ietf.org/rfc/rfc2317.txt>RFC 2317: Classless IN-ADDR.ARPA delegation</A>.
|
||||
<A HREF=http://ds.internic.net/rfc/rfc2317.txt>RFC 2317: Classless IN-ADDR.ARPA delegation</A>.
|
||||
|
||||
<PRE>
|
||||
$ORIGIN 0.0.192.IN-ADDR.ARPA.
|
||||
|
||||
@@ -33,7 +33,7 @@ options {
|
||||
[ rfc2308-type1 <VAR><A HREF="docdef.html">yes_or_no</A></VAR>; ]
|
||||
[ use-id-pool <VAR><A HREF="docdef.html">yes_or_no</A></VAR>; ]
|
||||
[ treat-cr-as-space <VAR><A HREF="docdef.html">yes_or_no</A></VAR>; ]
|
||||
[ also-notify { <VAR><A HREF="docdef.html">ip_addr</A></VAR>; [ <VAR><A HREF="docdef.html">ip_addr</A></VAR>; ... ] }; ]
|
||||
[ also-notify { <VAR><A HREF="docdef.html">ip_addr</A></VAR>; [ <VAR><A HREF="docdef.html">ip_addr</A></VAR>; ... ] };
|
||||
[ forward ( only | first ); ]
|
||||
[ forwarders { [ <VAR><A HREF="docdef.html">in_addr</A></VAR> ; [ <VAR><A HREF="docdef.html">in_addr</A></VAR> ; ... ] ] }; ]
|
||||
[ check-names ( master | slave | response ) ( warn | fail | ignore); ]
|
||||
@@ -65,7 +65,7 @@ options {
|
||||
[ statistics-interval <VAR>number</VAR>; ]
|
||||
[ <A HREF="#topology">topology</A> { <VAR>address_match_list</VAR> }; ]
|
||||
[ <A HREF="#sortlist">sortlist</A> { <VAR>address_match_list</VAR> }; ]
|
||||
[ rrset-order { <VAR>order_spec</VAR> ; [ <VAR>order_spec</VAR> ; ... ] }; ]
|
||||
[ rrset-order { <VAR>order_spec</VAR> ; [ <VAR>order_spec</VAR> ; ... ] ] };
|
||||
};
|
||||
</PRE>
|
||||
<HR>
|
||||
@@ -189,10 +189,12 @@ becoming corrupted (at the cost of requiring more work from the client).
|
||||
|
||||
<DT><CODE>has-old-clients</CODE>
|
||||
<DD>
|
||||
Setting the option to <CODE>yes</CODE> is equivalent to setting the following
|
||||
options: <CODE>auth-nxdomain yes;</CODE> and <CODE>rfc2308-type1 no;</CODE>.
|
||||
The use of <CODE>has-old-clients</CODE> with <CODE>auth-nxdomain</CODE>
|
||||
and <CODE>rfc2308-type1</CODE> is order dependent.
|
||||
Setting the option to <CODE>yes</CODE> is equivalent to setting the follow
|
||||
three options <CODE>auth-nxdomain yes;</CODE>, <CODE>maintain-ixfr-base
|
||||
yes;</CODE> and <CODE>rfc2308-type1 no;</CODE>.
|
||||
The use of <CODE>has-old-clients</CODE> with <CODE>auth-nxdomain</CODE>,
|
||||
<CODE>maintain-ixfr-base</CODE> and <CODE>rfc2308-type1</CODE> is order
|
||||
dependant.
|
||||
|
||||
<DT><CODE>host-statistics</CODE>
|
||||
<DD>
|
||||
@@ -806,7 +808,7 @@ request for the root servers to be accepted. Default 2.
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
Last Updated: $Id: options.html,v 1.40 2000/06/01 21:37:46 cyarnell Exp $
|
||||
Last Updated: $Id: options.html,v 1.36 1999/10/13 20:57:05 cyarnell Exp $
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -23,10 +23,10 @@ zone <VAR><A HREF="docdef.html">domain_name</A></VAR> [ ( in | hs | hesiod | cha
|
||||
[ allow-transfer { <VAR><A HREF="address_list.html">address_match_list</A></VAR> }; ]
|
||||
[ dialup <VAR><A HREF="docdef.html">yes_or_no</A></VAR>; ]
|
||||
[ notify <VAR><A HREF="docdef.html">yes_or_no</A></VAR>; ]
|
||||
[ also-notify { <VAR><A HREF="docdef.html">ip_addr</A></VAR>; [ <VAR>ip_addr</VAR>; ... ] }; ]
|
||||
[ also-notify { <VAR><A HREF="docdef.html">ip_addr</A></VAR>; [ <VAR>ip_addr</VAR>; ... ] };
|
||||
[ ixfr-base <VAR><A HREF="docdef.html">path_name</A></VAR>; ]
|
||||
[ pubkey <VAR><A HREF="docdef.html">number</A></VAR> <VAR><A HREF="docdef.html">number</A></VAR> <VAR><A HREF="docdef.html">number</A></VAR> <VAR>string</VAR>; ]
|
||||
};
|
||||
};
|
||||
|
||||
zone <VAR><A HREF="docdef.html">domain_name</A></VAR> [ ( in | hs | hesiod | chaos ) ] {
|
||||
type ( slave | stub );
|
||||
@@ -43,7 +43,7 @@ zone <VAR><A HREF="docdef.html">domain_name</A></VAR> [ ( in | hs | hesiod | cha
|
||||
[ dialup <VAR><A HREF="docdef.html">yes_or_no</A></VAR>; ]
|
||||
[ max-transfer-time-in <VAR>number</VAR>; ]
|
||||
[ notify <VAR><A HREF="docdef.html">yes_or_no</A></VAR>; ]
|
||||
[ also-notify { <VAR><A HREF="docdef.html">ip_addr</A></VAR>; [ <VAR>ip_addr</VAR>; ... ] }; ]
|
||||
[ also-notify { <VAR><A HREF="docdef.html">ip_addr</A></VAR>; [ <VAR>ip_addr</VAR>; ... ] };
|
||||
[ pubkey <VAR><A HREF="docdef.html">number</A></VAR> <VAR><A HREF="docdef.html">number</A></VAR> <VAR><A HREF="docdef.html">number</A></VAR> <VAR>string</VAR>; ]
|
||||
};
|
||||
|
||||
@@ -238,7 +238,7 @@ string representing the key.
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
Last Updated: $Id: zone.html,v 1.24 2000/01/12 01:28:32 cyarnell Exp $
|
||||
Last Updated: $Id: zone.html,v 1.23 1999/09/30 17:58:41 cyarnell Exp $
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -279,7 +279,7 @@ NSUPDATE_OUT = nsupdate.${SYS_OPS_OUT_EXT}
|
||||
# Network library routines manual entries
|
||||
#
|
||||
LIB_NETWORK_BASE = gethostbyname inet_cidr resolver hesiod getnetent \
|
||||
tsig getaddrinfo getnameinfo getipnodebyname
|
||||
tsig getaddrinfo inet_cidr getipnodebyname
|
||||
LIB_NETWORK_SRC_EXT = 3
|
||||
LIB_NETWORK_SRC = gethostbyname.${LIB_NETWORK_SRC_EXT} \
|
||||
inet_cidr.${LIB_NETWORK_SRC_EXT} \
|
||||
|
||||
+19
-34
@@ -50,7 +50,7 @@
|
||||
.\" SOFTWARE.
|
||||
.\" -
|
||||
.\" --Copyright--
|
||||
.\" $Id: host.1,v 8.4 2000/02/29 03:50:47 vixie Exp $
|
||||
.\" $Id: host.1,v 8.2 1997/03/14 02:29:44 vixie Exp $
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd December 15, 1994
|
||||
@@ -194,10 +194,6 @@ Turn off recursion in the request.
|
||||
This means that the name server will return only data it has in
|
||||
its own database. It will not ask other servers for more
|
||||
information.
|
||||
.It Fl d
|
||||
Turn on debugging. Network transactions are shown in detail.
|
||||
.It Fl s
|
||||
Chase signatures back to parent key (DNSSEC).
|
||||
.It Fl t Ar querytype
|
||||
Allows you to specify a particular
|
||||
.Ar querytype
|
||||
@@ -243,35 +239,24 @@ option is particularly useful for filtering information returned by
|
||||
.Ic host ;
|
||||
see the explanation of the
|
||||
.Dq Fl l
|
||||
option, below, for more information.
|
||||
.It Fl a
|
||||
.Dq all ;
|
||||
this is equivalent to
|
||||
.Dq Fl v Fl t Cm any .
|
||||
.It Fl l
|
||||
List a complete domain; e.g.:
|
||||
.Pp
|
||||
.D1 Ic host -l rutgers.edu
|
||||
.Pp
|
||||
will give a listing of all hosts in the rutgers.edu domain. The
|
||||
.Dq Fl t
|
||||
option is used to filter what information is presented, as you
|
||||
would expect. The default is address information, which also
|
||||
include PTR and NS records. The command
|
||||
.Pp
|
||||
.D1 Ic host -l -v -t any rutgers.edu
|
||||
.Pp
|
||||
will give a complete download of the zone data for rutgers.edu,
|
||||
in the official master file format. (However the SOA record is
|
||||
listed twice, for arcane reasons.)
|
||||
.Pp
|
||||
.Sy NOTE:
|
||||
.Dq Fl l
|
||||
is implemented by
|
||||
doing a complete zone transfer and then filtering out the information
|
||||
the you have asked for. This command should be used only if it
|
||||
is absolutely necessary.
|
||||
.El
|
||||
option for more information.
|
||||
.It Fl v
|
||||
Use "verbose" format for printout. This
|
||||
is the official domain master file format, which is documented
|
||||
in the man page for
|
||||
.Xr @INDOT@named @SYS_OPS_EXT@ .
|
||||
Without this option, output still follows
|
||||
this format in general terms, but some attempt is made to make it
|
||||
more intelligible to normal users. Without
|
||||
.Dq Fl v ,
|
||||
any "a", "mx", and "cname" records
|
||||
are written out as "has address", "mail is handled by", and
|
||||
"is a nickname for" (respectively), and TTL and class fields are not shown.
|
||||
.It Fl w
|
||||
This causes
|
||||
.Ic host
|
||||
to wait forever for a response. Normally
|
||||
it will time out after approximate one minute.
|
||||
.Sh CUSTOMIZING HOST NAME LOOKUP
|
||||
In general, if the name supplied by the user does not
|
||||
have any dots in it, a default domain is appended to the end.
|
||||
|
||||
@@ -332,7 +332,7 @@ An example SOA record is as follows:
|
||||
86400 ) ; minimum
|
||||
.Ed
|
||||
.Pp
|
||||
The SOA specifies a serial number, which should be incremented each time the
|
||||
The SOA specifies a serial number, which should be changed each time the
|
||||
master file is changed. Note that the serial number can be given as a
|
||||
dotted number, but this is a
|
||||
.Em very
|
||||
@@ -416,7 +416,6 @@ Toggles logging of all incoming queries via
|
||||
(requires server to have been built with the
|
||||
.Li QRYLOG
|
||||
option).
|
||||
.El
|
||||
.Sh FILES
|
||||
.Bl -tag -width "/var/tmp/named_dump.db (_PATH_DUMPFILE) " -compact
|
||||
.It Pa /etc/named.conf
|
||||
|
||||
@@ -1281,8 +1281,7 @@ may also be specified in the
|
||||
.Ic zone
|
||||
statement, in which case it overrides the
|
||||
.Ic options allow-query
|
||||
statement. If not specified, the default is to allow queries
|
||||
from all hosts.
|
||||
statement. If not specified, the default is
|
||||
|
||||
.Bl -tag -width 1
|
||||
.It Ic allow-recursion
|
||||
@@ -1311,7 +1310,6 @@ Specifies a list of addresses that the server will not accept queries from
|
||||
or use to resolve a query. Queries from these addresses will not be
|
||||
responded to.
|
||||
.El
|
||||
.El
|
||||
|
||||
.Ss Interfaces
|
||||
|
||||
@@ -1759,8 +1757,6 @@ zone \fIdomain_name\fR [ ( in | hs | hesiod | chaos ) ] {
|
||||
[ allow-update { \fIaddress_match_list\fR }; ]
|
||||
[ allow-query { \fIaddress_match_list\fR }; ]
|
||||
[ allow-transfer { \fIaddress_match_list\fR }; ]
|
||||
[ forward ( only | first ); ]
|
||||
[ forwarders { [ \fIip_addr\fR ; [ \fIip_addr\fR ; ... ] ] }; ]
|
||||
[ dialup \fIyes_or_no\fR; ]
|
||||
[ notify \fIyes_or_no\fR; ]
|
||||
[ also-notify { \fIip_addr\fR; [ \fIip_addr\fR; ... ] };
|
||||
@@ -1775,8 +1771,6 @@ zone \fIdomain_name\fR [ ( in | hs | hesiod | chaos ) ] {
|
||||
[ allow-update { \fIaddress_match_list\fR }; ]
|
||||
[ allow-query { \fIaddress_match_list\fR }; ]
|
||||
[ allow-transfer { \fIaddress_match_list\fR }; ]
|
||||
[ forward ( only | first ); ]
|
||||
[ forwarders { [ \fIip_addr\fR ; [ \fIip_addr\fR ; ... ] ] }; ]
|
||||
[ transfer-source \fIip_addr\fR; ]
|
||||
[ max-transfer-time-in \fInumber\fR; ]
|
||||
[ notify \fIyes_or_no\fR; ]
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
.\" --Copyright--
|
||||
.\"
|
||||
.\" @(#)nslookup.8 5.3 (Berkeley) 6/24/90
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd June 24, 1990
|
||||
.Dt NSLOOKUP @SYS_OPS_EXT_U@
|
||||
@@ -518,14 +517,12 @@ initial domain name and name server addresses
|
||||
user's initial options
|
||||
.It Pa /usr/share/misc/nslookup.help
|
||||
summary of commands
|
||||
.El
|
||||
.Sh ENVIRONMENT
|
||||
.Bl -tag -width "HOSTALIASESXXXX" -compact
|
||||
.It Ev HOSTALIASES
|
||||
file containing host aliases
|
||||
.It Ev LOCALDOMAIN
|
||||
overrides default domain
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr @INDOT@named @SYS_OPS_EXT@ ,
|
||||
.Xr resolver @LIB_NETWORK_EXT@ ,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.\" $Id: nsupdate.8,v 8.5 2000/02/29 03:50:48 vixie Exp $
|
||||
.\" $Id: nsupdate.8,v 8.4 1999/10/17 06:26:18 cyarnell Exp $
|
||||
.\"
|
||||
.\"Copyright (c) 1999 by Internet Software Consortium
|
||||
.\"
|
||||
@@ -47,7 +47,6 @@ Debug mode.
|
||||
.It Fl v
|
||||
Virtual circuit - use TCP to communication with server.
|
||||
Default is UDP.
|
||||
.El
|
||||
.Sh INPUT FORMAT
|
||||
.Ic Nsupdate
|
||||
reads input records, one per line,
|
||||
@@ -80,7 +79,7 @@ will be performed.
|
||||
understands the following input record formats:
|
||||
.Pp
|
||||
|
||||
.Bl -hang
|
||||
.Bl -ohang
|
||||
|
||||
.It Ic prereq nxdomain Va domain-name
|
||||
Requires that no RR of any type exists with name
|
||||
@@ -179,7 +178,7 @@ $ nsupdate -k /var/named/keys:mykey
|
||||
.Ed
|
||||
|
||||
.Sh DIAGNOSTICS
|
||||
.Bl -hang
|
||||
.Bl -ohang
|
||||
|
||||
.It Qq send error
|
||||
Typically indicates that the authoritative nameservers could not be reached
|
||||
@@ -197,11 +196,9 @@ being performed. The only way to determine if the update was performed
|
||||
is to use debug mode
|
||||
.Fl ( d )
|
||||
and examine the status field in the nameserver's reply.
|
||||
.El
|
||||
|
||||
.Sh FILES
|
||||
.Bl -hang
|
||||
.It Pa /etc/resolv.conf
|
||||
.El
|
||||
initial domain name and name server addresses
|
||||
.Sh SEE ALSO
|
||||
.Xr @INDOT@named @SYS_OPS_EXT@ ,
|
||||
|
||||
@@ -16,17 +16,17 @@
|
||||
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
.\"
|
||||
.\" @(#)resolver.3 6.5 (Berkeley) 6/23/90
|
||||
.\" $Id: resolver.3,v 8.12 2000/07/11 06:10:55 vixie Exp $
|
||||
.\" $Id: resolver.3,v 8.11 1999/09/13 23:33:24 vixie Exp $
|
||||
.\"
|
||||
.Dd July 4, 2000
|
||||
.Dd October 19, 1998
|
||||
.Dt RESOLVER @LIB_NETWORK_EXT_U@
|
||||
.Os BSD 4
|
||||
.Sh NAME
|
||||
.Nm res_ninit ,
|
||||
.Nm res_ourserver_p ,
|
||||
.Nm res_nisourserver ,
|
||||
.Nm fp_resstat ,
|
||||
.Nm res_npquery ,
|
||||
.Nm res_hostalias ,
|
||||
.Nm res_pquery ,
|
||||
.Nm res_nquery ,
|
||||
.Nm res_nsearch ,
|
||||
.Nm res_nquerydomain ,
|
||||
@@ -36,15 +36,16 @@
|
||||
.Nm res_nmkupdate ,
|
||||
.Nm res_nclose ,
|
||||
.Nm res_nsendsigned ,
|
||||
.Nm res_nsendupdate ,
|
||||
.Nm res_findzonecut ,
|
||||
.Nm dn_comp ,
|
||||
.Nm dn_expand ,
|
||||
.Nm hstrerror ,
|
||||
.Nm res_init ,
|
||||
.Nm res_isourserver ,
|
||||
.Nm fp_nquery ,
|
||||
.Nm p_query ,
|
||||
.Nm hostalias ,
|
||||
.Nm p_nquery ,
|
||||
.Mm p_query ,
|
||||
.Mm hostalias ,
|
||||
.Nm res_query ,
|
||||
.Nm res_search ,
|
||||
.Nm res_querydomain ,
|
||||
@@ -60,10 +61,10 @@
|
||||
.Fd #include <arpa/nameser.h>
|
||||
.Fd #include <resolv.h>
|
||||
.Fn res_ninit "res_state statp"
|
||||
.Fn res_ourserver_p "const res_state statp" "const struct sockaddr_in *addr"
|
||||
.Fn res_nisourserver "const res_state statp" "const struct sockaddr_in *addr"
|
||||
.Fn fp_resstat "const res_state statp" "FILE *fp"
|
||||
.Fn res_npquery "const res_state statp" "const u_char *msg" "int msglen" "FILE *fp"
|
||||
.Fn res_hostalias "const res_state statp" "const char *name" "char *buf" "size_t buflen"
|
||||
.Fn res_pquery "const res_state statp" "const u_char *msg" "int msglen" "FILE *fp"
|
||||
.Fn res_nquery "res_state statp" "const char *dname" "int class" "int type" "u_char *answer" "int anslen"
|
||||
.Fn res_nsearch "res_state statp" "const char *dname" "int class" "int type" "u_char * answer" "int anslen"
|
||||
.Fn res_nquerydomain "res_state statp" "const char *name" "const char *domain" "int class" "int type" "u_char *answer" "int anslen"
|
||||
@@ -74,6 +75,7 @@
|
||||
.Fn res_nclose "res_state statp"
|
||||
.Fn res_nsendsigned "res_state statp" "const u_char *msg" "int msglen" "ns_tsig_key *key" "u_char *answer" "int anslen"
|
||||
.Fn res_findzonecut "res_state statp" "const char *dname" "ns_class class" "int options" "char *zname" "size_t zsize" "struct in_addr *addrs" "int naddrs"
|
||||
.Fn res_nsendupdate "res_state statp" "ns_updrec *rrecp_in" "ns_tsig_key *key" "char *zname" "struct in_addr addr"
|
||||
.Fn dn_comp "const char *exp_dn" "u_char *comp_dn" "int length" "u_char **dnptrs, **lastdnptr"
|
||||
.Fn dn_expand "const u_char *msg, *eomorig, *comp_dn" "char *exp_dn" "int length"
|
||||
.Fn hstrerror "int err"
|
||||
@@ -85,7 +87,7 @@
|
||||
.Fd #include <resolv.h>
|
||||
.Fn res_init "void"
|
||||
.Fn res_isourserver "const struct sockaddr_in *addr"
|
||||
.Fn fp_nquery "const u_char *msg" "int msglen" "FILE *fp"
|
||||
.Fn p_nquery "const u_char *msg" "int msglen" "FILE *fp"
|
||||
.Fn p_query "const u_char *msg" "FILE *fp"
|
||||
.Fn hostalias "const char *name"
|
||||
.Fn res_query "const char *dname" "int class, type" "u_char *answer" "int anslen"
|
||||
@@ -109,7 +111,7 @@ should be set to all zeros prior to the first call to any of these functions.
|
||||
The functions
|
||||
.Fn res_init ,
|
||||
.Fn res_isourserver ,
|
||||
.Fn fp_nquery ,
|
||||
.Fn p_nquery ,
|
||||
.Fn p_query ,
|
||||
.Fn hostalias ,
|
||||
.Fn res_query ,
|
||||
@@ -371,9 +373,11 @@ MUST be big enough to receive a maximum UDP response from the server or
|
||||
parts of the answer will be silently discarded.
|
||||
The default maximum UDP response size is 512 bytes.
|
||||
.Pp
|
||||
The function
|
||||
.Fn res_ourserver_p
|
||||
returns true when
|
||||
The functions
|
||||
.Fn res_nisourserver
|
||||
/
|
||||
.Fn res_isourserver
|
||||
return true when
|
||||
.Fa inp
|
||||
is one of the servers in
|
||||
.Fa statp->nsaddr_list
|
||||
@@ -381,7 +385,9 @@ is one of the servers in
|
||||
.Fa _res.nsaddr_list .
|
||||
.Pp
|
||||
The functions
|
||||
.Fn fp_nquery
|
||||
.Fn res_npquery
|
||||
/
|
||||
.Fn p_nquery
|
||||
/
|
||||
.Fn p_query
|
||||
print out the query and any answer in
|
||||
@@ -390,7 +396,7 @@ on
|
||||
.Fa fp .
|
||||
.Fn p_query
|
||||
is equivalent to
|
||||
.Fn fp_nquery
|
||||
.Fn p_nquery
|
||||
with
|
||||
.Fa msglen
|
||||
set to 512.
|
||||
@@ -423,18 +429,22 @@ The functions
|
||||
take a list of ns_updrec
|
||||
.Fa rrecp_in .
|
||||
Identifies the containing zone for each record and groups the records
|
||||
according to containing zone maintaining in zone order then sends and update
|
||||
request to the servers for these zones. The number of zones updated is
|
||||
returned or -1 on error. Note that
|
||||
.Fn res_nupdate
|
||||
will perform TSIG authenticated dynamic update operations if the key is not
|
||||
NULL.
|
||||
according to containing zone maintaining in zone order then sends and
|
||||
update request to the servers for these zones.
|
||||
The number of zones updated is returned or -1 on error.
|
||||
.Pp
|
||||
The function
|
||||
.Fn res_findzonecut
|
||||
discovers the closest enclosing zone cut for a specified domain name,
|
||||
and finds the IP addresses of the zone's master servers.
|
||||
.Pp
|
||||
The function
|
||||
.Fn res_nsendupdate
|
||||
is used to perform TSIG authenticated dynamic update operations.
|
||||
.Fn res_nsendupdate
|
||||
sends a dynamic update to the specified IP address, authenticating the update
|
||||
if the key is not NULL.
|
||||
.Pp
|
||||
The functions
|
||||
.Fn res_nmkupdate
|
||||
/
|
||||
|
||||
+381
-718
File diff suppressed because it is too large.
Load diff
+113
-886
File diff suppressed because it is too large.
Load diff
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id: assertions.h,v 8.3 2000/07/17 07:53:59 vixie Exp $
|
||||
* $Id: assertions.h,v 8.2 1999/01/08 19:23:01 vixie Exp $
|
||||
*/
|
||||
|
||||
#ifndef ASSERTIONS_H
|
||||
@@ -73,8 +73,8 @@ char *assertion_type_to_text(assertion_type type);
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_require, \
|
||||
#cond, 1), 0)))
|
||||
#else
|
||||
#define REQUIRE(cond) ((void) (cond))
|
||||
#define REQUIRE_ERR(cond) ((void) (cond))
|
||||
#define REQUIRE(cond) ((void) 0)
|
||||
#define REQUIRE_ERR(cond) ((void) 0)
|
||||
#endif /* CHECK_REQUIRE */
|
||||
|
||||
#if CHECK_ENSURE != 0
|
||||
@@ -87,8 +87,8 @@ char *assertion_type_to_text(assertion_type type);
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_ensure, \
|
||||
#cond, 1), 0)))
|
||||
#else
|
||||
#define ENSURE(cond) ((void) (cond))
|
||||
#define ENSURE_ERR(cond) ((void) (cond))
|
||||
#define ENSURE(cond) ((void) 0)
|
||||
#define ENSURE_ERR(cond) ((void) 0)
|
||||
#endif /* CHECK_ENSURE */
|
||||
|
||||
#if CHECK_INSIST != 0
|
||||
@@ -101,8 +101,8 @@ char *assertion_type_to_text(assertion_type type);
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_insist, \
|
||||
#cond, 1), 0)))
|
||||
#else
|
||||
#define INSIST(cond) ((void) (cond))
|
||||
#define INSIST_ERR(cond) ((void) (cond))
|
||||
#define INSIST(cond) ((void) 0)
|
||||
#define INSIST_ERR(cond) ((void) 0)
|
||||
#endif /* CHECK_INSIST */
|
||||
|
||||
#if CHECK_INVARIANT != 0
|
||||
@@ -115,8 +115,8 @@ char *assertion_type_to_text(assertion_type type);
|
||||
((__assertion_failed)(__FILE__, __LINE__, assert_invariant, \
|
||||
#cond, 1), 0)))
|
||||
#else
|
||||
#define INVARIANT(cond) ((void) (cond))
|
||||
#define INVARIANT_ERR(cond) ((void) (cond))
|
||||
#define INVARIANT(cond) ((void) 0)
|
||||
#define INVARIANT_ERR(cond) ((void) 0)
|
||||
#endif /* CHECK_INVARIANT */
|
||||
|
||||
#endif /* ASSERTIONS_H */
|
||||
@@ -13,7 +13,7 @@
|
||||
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
# SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.23 2000/07/11 06:41:36 vixie Exp $
|
||||
# $Id: Makefile,v 8.22 1999/06/08 01:42:57 vixie Exp $
|
||||
|
||||
SUBDIRS = resolv irs isc bsd inet nameser dst cylink dnssafe
|
||||
|
||||
@@ -51,7 +51,7 @@ MARGS = "SYSTYPE=${SYSTYPE}" "SHELL=${SHELL}" "A=${A}" "O=${O}" \
|
||||
"RANLIB=:" "AR=${AR}" "ARPREF=${ARPREF}" "ARSUFF=${ARSUFF}" \
|
||||
"INCL=../${INCL}" "PORTINCL=../${PORTINCL}" "EXE=${EXE}" \
|
||||
"LIBBIND=../${LIBBIND}" "LIBPORT=../${LIBPORT}" \
|
||||
"INSTALL=${INSTALL}" "TOP=../${TOP}" \
|
||||
"INSTALL=${INSTALL}" "CPPFLAGS=${CPPFLAGS}" "TOP=../${TOP}" \
|
||||
"REENTRANT=${REENTRANT}" "INSTALL_LIB=${INSTALL_LIB}" \
|
||||
"INSTALL_EXEC=${INSTALL_EXEC}" "BOUNDS=${BOUNDS}"
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
# SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 1.17 2000/07/11 06:41:39 vixie Exp $
|
||||
# $Id: Makefile,v 1.16 2000/02/29 03:38:21 vixie Exp $
|
||||
|
||||
# these are only appropriate for BSD 4.4 or derivatives, and are used in
|
||||
# development. normal builds will be done in the top level directory and
|
||||
@@ -32,8 +32,7 @@ INCL = ${TOP}/include
|
||||
PORTINCL = ${TOP}/port/${SYSTYPE}/include
|
||||
LIBBIND = ${TOP}/lib/libbind.${A}
|
||||
LIBBINDR = ../${TOP}/lib/libbind_r.${A}
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
LD_LIBFLAGS= -x -r
|
||||
AR= ar cru
|
||||
RANLIB= ranlib
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef LINT
|
||||
static const char rcsid[] = "$Header: /proj/cvs/isc/bind/src/lib/dst/prandom.c,v 1.9 2000/07/17 07:36:53 vixie Exp $";
|
||||
static const char rcsid[] = "$Header: /proj/cvs/isc/bind/src/lib/dst/prandom.c,v 1.8 1999/10/13 16:39:24 vixie Exp $";
|
||||
#endif
|
||||
/*
|
||||
* Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc.
|
||||
@@ -20,7 +20,6 @@ static const char rcsid[] = "$Header: /proj/cvs/isc/bind/src/lib/dst/prandom.c,v
|
||||
|
||||
#include "port_before.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdlib.h>
|
||||
@@ -204,7 +203,6 @@ do_time(dst_work *work)
|
||||
zone = (struct timezone *) tmp;
|
||||
mtime = (struct timeval *)(tmp + sizeof(struct timezone));
|
||||
gettimeofday(mtime, zone);
|
||||
assert(mtime->tv_usec >= 0 && mtime->tv_usec < 1000000);
|
||||
cnt = sizeof(tmp);
|
||||
my_digest(work, tmp, sizeof(tmp));
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifdef RSAREF
|
||||
static const char rcsid[] = "$Header: /proj/cvs/isc/bind/src/lib/dst/rsaref_link.c,v 1.7 2000/07/17 07:36:53 vixie Exp $";
|
||||
static const char rcsid[] = "$Header: /proj/cvs/isc/bind/src/lib/dst/rsaref_link.c,v 1.6 1999/10/13 16:39:24 vixie Exp $";
|
||||
|
||||
/*
|
||||
* Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc.
|
||||
@@ -706,7 +706,6 @@ dst_rsaref_init_random_struct(R_RANDOM_STRUCT * randomstruct)
|
||||
* This must be the FIRST CALL
|
||||
*/
|
||||
gettimeofday(&tv, 0);
|
||||
assert(tv.tv_usec >= 0 && tv.tv_usec < 1000000);
|
||||
R_RandomUpdate(randomstruct, (u_char *) &tv,
|
||||
sizeof(struct timeval));
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
# SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.20 2000/07/11 06:41:40 vixie Exp $
|
||||
# $Id: Makefile,v 8.19 2000/02/29 03:38:22 vixie Exp $
|
||||
|
||||
# these are only appropriate for BSD 4.4 or derivatives, and are used in
|
||||
# development. normal builds will be done in the top level directory and
|
||||
@@ -32,8 +32,7 @@ INCL = ${TOP}/include
|
||||
PORTINCL = ${TOP}/port/${SYSTYPE}/include
|
||||
LIBBIND = ${TOP}/lib/libbind.${A}
|
||||
LIBBINDR = ../${TOP}/lib/libbind_r.${A}
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
LD_LIBFLAGS= -x -r
|
||||
AR= ar cru
|
||||
RANLIB= ranlib
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
# SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.20 2000/07/11 06:41:40 vixie Exp $
|
||||
# $Id: Makefile,v 8.19 2000/02/29 03:38:22 vixie Exp $
|
||||
|
||||
# these are only appropriate for BSD 4.4 or derivatives, and are used in
|
||||
# development. normal builds will be done in the top level directory and
|
||||
@@ -32,8 +32,7 @@ INCL = ${TOP}/include
|
||||
PORTINCL = ${TOP}/port/${SYSTYPE}/include
|
||||
LIBBIND = ${TOP}/lib/libbind.${A}
|
||||
LIBBINDR = ../${TOP}/lib/libbind_r.${A}
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
# -D__BIND_NOSTATIC -Wimplicit
|
||||
LD_LIBFLAGS= -x -r
|
||||
AR= ar cru
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
#if !defined(LINT) && !defined(CODECENTER)
|
||||
static const char rcsid[] = "$Id: gen_gr.c,v 1.22 2000/07/11 05:51:56 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: gen_gr.c,v 1.21 1999/10/13 16:39:29 vixie Exp $";
|
||||
#endif
|
||||
|
||||
/* Imports */
|
||||
@@ -325,7 +325,7 @@ static void
|
||||
grmerge(struct irs_gr *this, const struct group *src, int preserve) {
|
||||
struct pvt *pvt = (struct pvt *)this->private;
|
||||
char *cp, **m, **p;
|
||||
int n, ndst, nnew, memadj;
|
||||
int n, ndst, nnew;
|
||||
|
||||
if (!preserve) {
|
||||
pvt->group.gr_gid = src->gr_gid;
|
||||
@@ -377,7 +377,6 @@ grmerge(struct irs_gr *this, const struct group *src, int preserve) {
|
||||
/* No harm done, no work done. */
|
||||
return;
|
||||
}
|
||||
memadj = cp - pvt->membuf;
|
||||
pvt->membuf = cp;
|
||||
cp += pvt->membufsize;
|
||||
pvt->membufsize += n;
|
||||
@@ -392,10 +391,7 @@ grmerge(struct irs_gr *this, const struct group *src, int preserve) {
|
||||
strcpy(cp, *m);
|
||||
cp += strlen(cp) + 1;
|
||||
}
|
||||
if (preserve) {
|
||||
pvt->group.gr_name += memadj;
|
||||
pvt->group.gr_passwd += memadj;
|
||||
} else {
|
||||
if (!preserve) {
|
||||
pvt->group.gr_name = cp;
|
||||
strcpy(cp, src->gr_name);
|
||||
cp += strlen(src->gr_name) + 1;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
static const char rcsid[] = "$Id: gethostent_r.c,v 8.5 2000/07/11 05:46:35 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: gethostent_r.c,v 8.4 1999/01/18 07:46:52 vixie Exp $";
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <port_before.h>
|
||||
@@ -143,6 +143,7 @@ copy_hostent(struct hostent *he, struct hostent *hptr, HOST_R_COPY_ARGS) {
|
||||
memcpy(cp, he->h_addr_list[i], n);
|
||||
hptr->h_addr_list[i] = cp;
|
||||
cp += n;
|
||||
i++;
|
||||
}
|
||||
hptr->h_addr_list[i] = NULL;
|
||||
ptr++;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
# SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.26 2000/07/11 06:41:41 vixie Exp $
|
||||
# $Id: Makefile,v 8.25 2000/02/29 03:38:23 vixie Exp $
|
||||
|
||||
# these are only appropriate for BSD 4.4 or derivatives, and are used in
|
||||
# development. normal builds will be done in the top level directory and
|
||||
@@ -32,8 +32,7 @@ INCL = ${TOP}/include
|
||||
PORTINCL = ${TOP}/port/${SYSTYPE}/include
|
||||
LIBBIND = ${TOP}/lib/libbind.${A}
|
||||
LIBBINDR = ../${TOP}/lib/libbind_r.${A}
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
# -Wimplicit
|
||||
LD_LIBFLAGS= -x -r
|
||||
AR= ar cru
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
|
||||
#if !defined(LINT) && !defined(CODECENTER)
|
||||
static const char rcsid[] = "$Id: ev_timers.c,v 1.26 2000/07/17 07:36:54 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ev_timers.c,v 1.25 1999/10/07 20:44:04 vixie Exp $";
|
||||
#endif
|
||||
|
||||
/* Import. */
|
||||
@@ -30,7 +30,6 @@ static const char rcsid[] = "$Id: ev_timers.c,v 1.26 2000/07/17 07:36:54 vixie E
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#include <isc/assertions.h>
|
||||
#include <isc/eventlib.h>
|
||||
#include "eventlib_p.h"
|
||||
|
||||
@@ -111,7 +110,6 @@ evNowTime() {
|
||||
|
||||
if (gettimeofday(&now, NULL) < 0)
|
||||
return (evConsTime(0, 0));
|
||||
INSIST(now.tv_usec >= 0 && now.tv_usec < 1000000);
|
||||
return (evTimeSpec(now));
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
|
||||
#if !defined(LINT) && !defined(CODECENTER)
|
||||
static const char rcsid[] = "$Id: ev_waits.c,v 8.11 2000/07/20 18:17:52 vixie Exp $";
|
||||
static const char rcsid[] = "$Id: ev_waits.c,v 8.10 2000/02/04 07:25:50 vixie Exp $";
|
||||
#endif
|
||||
|
||||
#include "port_before.h"
|
||||
@@ -49,7 +49,7 @@ static evWaitList * evGetWaitList(evContext_p *, const void *, int);
|
||||
*/
|
||||
int
|
||||
evWaitFor(evContext opaqueCtx, const void *tag,
|
||||
evWaitFunc func, void *uap, evWaitID *id)
|
||||
evWaitFunc func, void *uap, evWaitID *id)
|
||||
{
|
||||
evContext_p *ctx = opaqueCtx.opaque;
|
||||
evWait *new;
|
||||
@@ -60,10 +60,11 @@ evWaitFor(evContext opaqueCtx, const void *tag,
|
||||
new->uap = uap;
|
||||
new->tag = tag;
|
||||
new->next = NULL;
|
||||
if (wl->last != NULL)
|
||||
if (wl->last != NULL) {
|
||||
wl->last->next = new;
|
||||
else
|
||||
} else {
|
||||
wl->first = new;
|
||||
}
|
||||
wl->last = new;
|
||||
if (id != NULL)
|
||||
id->opaque = new;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
# SOFTWARE.
|
||||
#
|
||||
|
||||
# $Id: Makefile,v 8.20 2000/07/11 06:41:42 vixie Exp $
|
||||
# $Id: Makefile,v 8.19 2000/02/29 03:38:23 vixie Exp $
|
||||
|
||||
# these are only appropriate for BSD 4.4 or derivatives, and are used in
|
||||
# development. normal builds will be done in the top level directory and
|
||||
@@ -34,8 +34,7 @@ INCL = ${TOP}/include
|
||||
PORTINCL = ${TOP}/port/${SYSTYPE}/include
|
||||
LIBBIND = ${TOP}/lib/libbind.${A}
|
||||
LIBBINDR = ../${TOP}/lib/libbind_r.${A}
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
LD_LIBFLAGS= -x -r
|
||||
AR= ar cru
|
||||
RANLIB= ranlib
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
# SOFTWARE.
|
||||
|
||||
# $Id: Makefile,v 8.34 2000/07/11 06:41:42 vixie Exp $
|
||||
# $Id: Makefile,v 8.33 2000/02/29 03:38:24 vixie Exp $
|
||||
|
||||
# these are only appropriate for BSD 4.4 or derivatives, and are used in
|
||||
# development. normal builds will be done in the top level directory and
|
||||
@@ -32,8 +32,7 @@ INCL = ${TOP}/include
|
||||
PORTINCL = ${TOP}/port/${SYSTYPE}/include
|
||||
LIBBIND = ${TOP}/lib/libbind.${A}
|
||||
LIBBINDR = ../${TOP}/lib/libbind_r.${A}
|
||||
CFLAGS= ${CDEBUG}
|
||||
CPPFLAGS= -I${PORTINCL} -I${INCL}
|
||||
CFLAGS= ${CDEBUG} -I${PORTINCL} -I${INCL}
|
||||
# -D__BIND_NOSTATIC
|
||||
LD_LIBFLAGS= -x -r
|
||||
AR= ar cru
|
||||
|
||||
@@ -1293,9 +1293,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
sections against symbols defined externally
|
||||
in shared libraries. We can't do anything
|
||||
with them here. */
|
||||
|| ((input_section->flags & SEC_DEBUGGING) != 0
|
||||
&& (h->elf_link_hash_flags
|
||||
& ELF_LINK_HASH_DEF_DYNAMIC) != 0))))
|
||||
|| (input_section->flags & SEC_DEBUGGING) != 0)))
|
||||
{
|
||||
/* In these cases, we don't need the relocation
|
||||
value. We check specially because in some
|
||||
@@ -1317,17 +1315,14 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
}
|
||||
else if (h->root.type == bfd_link_hash_undefweak)
|
||||
relocation = 0;
|
||||
else if (info->shared && !info->symbolic
|
||||
&& !info->no_undefined
|
||||
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
|
||||
else if (info->shared && !info->symbolic && !info->no_undefined)
|
||||
relocation = 0;
|
||||
else
|
||||
{
|
||||
if (! ((*info->callbacks->undefined_symbol)
|
||||
(info, h->root.root.string, input_bfd,
|
||||
input_section, rel->r_offset,
|
||||
(!info->shared || info->no_undefined
|
||||
|| ELF_ST_VISIBILITY (h->other)))))
|
||||
(!info->shared || info->no_undefined))))
|
||||
return false;
|
||||
relocation = 0;
|
||||
}
|
||||
|
||||
@@ -1,103 +1,3 @@
|
||||
2000-09-07 Larry Jones <[email protected]>
|
||||
|
||||
* Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
|
||||
from autoconf.
|
||||
|
||||
* acconfig.h: Copy HAVE_CRYPT, HAVE_GETSPNAM, REGEX_MALLOC, and
|
||||
_REGEX_RE_COMP from config.h.in to here, where they should have
|
||||
been in the first place.
|
||||
* config.h.in: Regenerated.
|
||||
|
||||
2000-08-30 Larry Jones <[email protected]>
|
||||
|
||||
* NEWS: Note additional history enhancements.
|
||||
|
||||
2000-08-01 Larry Jones <[email protected]>
|
||||
|
||||
* configure.in, config.h.in: Add check for getpassphrase (Solaris).
|
||||
* configure: Regenerated.
|
||||
|
||||
2000-07-11 Larry Jones <[email protected]>
|
||||
|
||||
* configure.in, config.h.in: Add checks for mknod() and st_rdev
|
||||
since some systems (notably Plan 9) don't have them.
|
||||
* configure: Regenerated.
|
||||
|
||||
2000-07-10 Larry Jones <[email protected]>
|
||||
|
||||
* NEWS: Note the new "version" command.
|
||||
|
||||
2000-07-06 Larry Jones <[email protected]>
|
||||
|
||||
* NEWS: Note that admin -t works in client/server.
|
||||
|
||||
2000-06-19 Larry Jones <[email protected]>
|
||||
|
||||
* configure.in (AC_DEFINE): Define REGEX_MALLOC and _REGEX_RE_COMP
|
||||
to configure lib/regex.c the way we want without messing with the
|
||||
code.
|
||||
* config.h.in: Ditto.
|
||||
* configure: Regenerated.
|
||||
|
||||
2000-05-16 Jim Kingdon <[email protected]>
|
||||
|
||||
* TODO (186): Remove paragraph about Eric Raymond's interest.
|
||||
This is still on the future projects on his site, it just seems to
|
||||
brief (and too long ago updated) that I don't really see the need
|
||||
to mention it.
|
||||
|
||||
2000-05-05 Larry Jones <[email protected]>
|
||||
|
||||
* TESTS: Add notes about required tools and where to get them.
|
||||
|
||||
2000-05-02 Donald Sharp <[email protected]>
|
||||
and Larry Jones <[email protected]>
|
||||
|
||||
* NEWS: Note history output format change.
|
||||
|
||||
2000-02-17 Larry Jones <[email protected]>
|
||||
|
||||
* NEWS: Note that PreservePermissions is disabled.
|
||||
* configure.in: Don't define PRESERVE_PERMISSIONS_SUPPORT.
|
||||
* configure: Regenerated.
|
||||
|
||||
2000-02-01 Larry Jones <[email protected]>
|
||||
|
||||
* configure.in: Try again to handle systems that need both libsocket
|
||||
and libnsl.
|
||||
* configure: Regenerated.
|
||||
|
||||
1999-12-09 Larry Jones <[email protected]>
|
||||
|
||||
* configure.in: Correctly handle systems that need both libsocket
|
||||
and libnsl.
|
||||
* configure: Regenerated.
|
||||
|
||||
1999-12-06 Larry Jones <[email protected]>
|
||||
|
||||
* configure.in: Update to autoconf 2.13; use new AC_SEARCH_LIBS
|
||||
to handle getspnam, connect, gethostbyname, and crypt correctly;
|
||||
use new AC_FUNC_FNMATCH instead of doing it by hand.
|
||||
* configure: Regenerated with autoconf 2.13.
|
||||
|
||||
1999-12-06 Larry Jones <[email protected]>
|
||||
|
||||
* INSTALL (Tested platforms): Update info.
|
||||
|
||||
1999-11-04 Jim Kingdon <http://developer.redhat.com/>
|
||||
|
||||
* README (Installation): Yet another prep.ai.mit.edu -> gnu.org
|
||||
change (can't believe we still haven't gotten them all).
|
||||
|
||||
1999-11-04 Karl Fogel <[email protected]>
|
||||
|
||||
* NEWS: added item about anon cvs no longer needing password.
|
||||
|
||||
1999-10-28 Larry Jones <[email protected]>
|
||||
|
||||
* TESTS: Add note about not running as root. Remove note about
|
||||
Solaris sort since sanity.sh was changed to avoid the problem.
|
||||
|
||||
1999-07-12 Larry Jones <[email protected]>
|
||||
|
||||
* TESTS: Remove suspicion that setting LC_COLLATE has fixed the
|
||||
|
||||
Loaded 100 of 3606 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user