Commit Graph

873 Commits

Author SHA1 Message Date
wpaul
c0d9518d8d Updates, fixes and cleanups -- oh my.
In ypserv:

yp_svc.c:
- small signal handler tweak (hopefully the last): just use sigemptyset()
to clear sa_mask.

Makefile.yp:
- Let the user specify the location of master.passwd when updating
maps (e.g. make MASTER_PASSWD=/some/path/to/master.passwd). Editing
the file to change the location of master.passwd still works. This
is mostly to let yppassswdd specify the name of the master.passwd
file itself.

In yppasswdd:

yppasswdd.c:
- Roll in some minor changes (mostly casts) from Olaf Kirch's latest
yppasswd package release (version 0.7).
- Use daemon() instead of doing all the deamonizing gruntwork ourselves.
- Call pw_init() after daemonizing ourselves. pw_init() sets up some
resource limits and blocks some signals for us. We used to do this before
every password change, but there's really no point in calling it more
than once during the life of the program.
- Change install_reaper() so that we can use it to de-install the SIGCHLD
handler if we need to (and we do in pw_mkdb() -- this is what I get for
splicing code from two different programs together).
- Use sigemptyset(&act.sa_mask) rather than act.sa_mask = 0: the latter is
decidedly non-portable. (In IRIX, HP-UX and Solaris, sigset_t is an
array of longs, not an int.)

update.c:
- Roll in change from new version (check that we're not modifying an NIS
entry in validate_args()).
- Get rid of call to pw_init() (moved to yppasswdd.c).
- Check return values from pw_util routines and return error status to
yppasswd clients if there's a problem.
- Straighten out password file copying mechanism a little. Keep a grip
on the original password file rather than summarily overwriting it so
that we can restore everything if we fail to fork() a process to update
the NIS maps.
- Pass the name of the password template file (specified with -m or
/etc/master.passwd by default) to the yppwupdate script, which in
turn should now pass it to /var/yp/Makefile.

pw_util.c:
- Nuke the pw_edit() and pw_prompt() functions -- we don't need them.
- Change all warn()s, warnx()s and err()s to syslog()s.
- Make sure we return error status to caller rather than bailing out
in pw_lock() and pw_tmp().
- Don't block SIGTERM in pw_init() (by ignoring SIGTERM, we prevent
yppasswdd from being shut down cleanly).
- Don't let pw_error() exit. (This stuff was stolen from chpass and vipw
which are interactive programs; it's okay to let pw_error() bail out
for these programs, but not in a daemon like yppasswdd).
- Fix signal handling in pw_mkdb (we need to temporarily de-install the
SIGCHLD handler so that we can wait on the pwd_mkdb child ourselves).

pw_copy.c:
- Change all warn()s, warnx()s and err()s to syslog()s.
- Add a bunch of returns() and make pw_copy() return and int ( 0 on success,
-1 on failure) so that update.c can flag errors properly.
- Return -1 after calling pw_error() to signal failures rather than
relying on pw_error() to bail out.
- Abort copying if we discover that we've been asked to change an entry
for a user that exists in the NIS passwd maps but not in the master.passwd
template file. This can happen if the passwd maps and the template file
fall out of sync with each other (or if somebody tries to spoof
us). The old behavior was to create add the entry to the password file,
which yppasswdd should not do under any circumstances.

Makefile:
- update VERSION to 0.7

yppasswdd.8:
- fix typo (forgot a carriage return somewhere)
- remove bogus reference to pwunconv(8) which FreeBSD doesn't have.
- bump version from 0.5 to 0.7
- Reflect changes in password file handling.

yppwupdate:
- Log map rebuilds to /var/yp/ypupdate.log.
- Pass the name of the template password file to /var/yp/Makefile as
$MASTER_PASSWD.
1995-07-19 17:44:41 +00:00
ache
daa31af2a2 Update version info
Reviewed by:
Submitted by:
Obtained from:
1995-07-19 17:01:56 +00:00
ache
54df868824 Sync with bash 1.4.5 version
Check some null pointers before action, cosmetique fixes
Submitted by:
Obtained from:
1995-07-19 17:01:18 +00:00
joerg
78899f53ab Remove my last week's CFLAGS hack from Makefile.inc, and fix
info/Makefile instead to not clobber the settings inherited from
/etc/make.conf.
1995-07-16 10:24:18 +00:00
wpaul
7715d6b5da Some small signal handling tweaks: be sure to keep wait3()ing until all
children are reaped and make sure to block SIGCHLD delivery during handler
execution when installing SIGCHLD handler with sigaction().
1995-07-15 23:27:49 +00:00
wpaul
5322c9c163 Add missing 'break' statement in failure case of ypxfr switch clause. 1995-07-15 17:51:11 +00:00
wpaul
270b119bea server.c: When 'securenets' (actually TCP_WRAPPERS) is enabled, don't
syslog connections unless they were rejected. This helps save wear and
tear on the syslog facility in large networks with many clienst systems.

yp_svc.c: Be a little smarter about using sigaction() -- set the SA_RESTART
flag.

svc_run: Be doubly paranoid about killing off child processes. Do a flag
chack and a pid check before letting child 'threads' self-destruct.
1995-07-14 01:56:51 +00:00
rgrimes
ac48d7123c Make ld's error messages consistent with gcc when no input files
are given on the command line.

Submitted by:	Thomas Graichen <graichen@omega.physik.fu-berlin.de>
1995-07-13 08:30:07 +00:00
bde
a7d94821dd Fix dependencies for regex.texi. It is constructed by merging a C header
file with an info source file.
1995-07-12 19:02:06 +00:00
bde
6084d1328b Fix dependencies for gcc.info and reno.info. `make depend' doesn't handle
info files although texinfo supports @include.
1995-07-12 18:57:21 +00:00
wpaul
7fafe87077 ypserv performance improvements:
- There are two cases where the server can potentially block for a long
  time while servicing a request: when handling a yp_all() request, which
  could take a while to complete if the map being transfered is large
  (e.g. 'ypcat passwd' where passwd.byname has 10,000 entries in it),
  and while doing DNS lookups when in SunOS compat mode (with the -dns
  flag), since some DNS lookups can take a long time to complete. While
  ypserv is blocked, other clients making requests to the server will
  also block. To fix this, we fork() ypall and DNS lookups into subprocesses
  and let the parent ypserv process go on servicing other incoming
  requests.

  We place a cap on the number of simultaneous processes that ypserv can
  fork (set at 20 for now) and go back to 'linear mode' if it hits the
  limit (which just means it won't fork() anymore until the number of
  simultaneous processes drops under 20 again). The cap does not apply
  to fork()s done as a result of ypxfr calls, since we want to do our
  best to insure that map transfers from master servers succeed.

  To make this work, we need our own special copy of svc_run() so that
  we can properly terminate child processes once the RPC dispatch
  functions have run.

  (I have no idea what SunOS does in this situation. The only other
  possibility I can think of is async socket I/O, but that seems
  like a headache and a half to implement.)

- Do the politically correct thing and use sigaction() instead of
  signal() to install the SIGCHLD handler and to ignore SIGPIPEs.

- Doing a yp_all() is sometimes slow due to the way read_database() is
  implemented. This is turn is due to a certain deficiency in the DB
  hash method: the R_CURSOR flag doesn't work, which means that when
  handed a key and asked to return the key/data pair for the _next_
  key in the map, we have to reset the DB pointer to the start of the
  database, step through until we find the requested key, step one
  space ahead to the _next_ key, and then use that. (The original ypserv
  code used GDBM has a function called gdbm_nextkey() that does
  this for you.) This can get really slow for large maps. However,
  when doing a ypall, it seems that all database access are sequential,
  so we can forgo the first step (the 'search the database until we find
  the key') since the database should remain open and the cursor
  should be positioned at the right place until the yp_all() call
  finishes. We can't make this assumption for arbitrary yp_first()s
  and yp_next()s however (since we may have requests from several clients
  for different maps all arriving at different times) so those we have
  to handle the old way.

  (This would be much easier if R_CURSOR really worked. Maybe I should
   be using something other than the hash method.)
1995-07-12 16:28:13 +00:00
ats
bb114085bf Fix two typos in a comment. 1995-07-08 21:42:59 +00:00
ats
887812a0a8 Makefile:
Fix the use of /usr/X386 to ${X11BASE}. Fix the pathname /usr/bin/chess
to /usr/games/chess.
XCircle.c:
Fix the comment after an ifdef to make it a real comment to silent gcc.
std.h:
Comment out a private definition of sys_errlist.
1995-07-08 21:40:01 +00:00
joerg
c4a6c7b333 I added a few lines of code to the latest info browser in the
texinfo-3.6 distribution to enable the use of the cursor keys.
Since there is an open problem report (gnu/289) for this it might be
of interest for (some of) you.

I (Joerg) have also added a minor hack that makes info recognizing a
window size change while it has been suspended.

Submitted by:	thomas@ghpc8.ihf.rwth-aachen.de (Thomas Gellekum)
1995-07-08 16:46:13 +00:00
dfr
f602814c3c Define CPLUSPLUSLIB so that bsd.lib.mk will add c++rt0.o to call
constructors and destructors.
Add -lgcc_pic to LDADD for the shared library since C++ code uses stuff from
libgcc and we no longer have a shared libgcc.  Should this be done by
CPLUSPLUSLIB?
1995-07-05 15:04:47 +00:00
wpaul
310bc7086f Oh fer cryin' out loud... While playing with the ypserv code on a different
platform, I discovered the following: if you use ypcat (or anything that
does a yp_all() for that matter) to dump out a map and then hit ^C before
it finishes, ypserv gets hit with a SIGPIPE and dies. (The ypall() service
is implemented using TCP.)

Fix: ignore SIGPIPEs.
1995-07-04 21:58:38 +00:00
bde
0a7517cef3 Add a dependency on the .x source file and avoid copying it.
bootparam_prot.x was changed for nfsv3 but bootparamd and callbootd
kept using the old version which fortunately failed at build time.
Copying hasn't been necessary since path handling was fixed in
rpcgen/rpc_main.c some time ago.
1995-07-04 08:39:27 +00:00
wpaul
77efe4f862 Small touchups in open_database():
- Use one sprintf() to put together the path to the map database instead
  of strcat()s and strcpy()s.

- Make the 'error opening database' Perror()  statement sane.
1995-07-02 18:48:21 +00:00
dfr
6da3ef3223 Change ld.so to correctly load dependant libraries for dlopen and unload them
on dlclose.  Also correctly call constructors and destructors for libraries
linked with /usr/lib/c++rt0.o.
Change interpretation of dlopen manpage to call _init() rather than init()
for dlopened objects.
Change c++rt0.o to avoid using atexit to call destructors, allowing dlclose to
call destructors when an object is unloaded.
Change interface between crt0 and ld.so to allow crt0 to call a function on
exit to call destructors for shared libraries explicitly.

These changes are backwards compatible.  Old binaries will work with the new
ld.so and new binaries will work with the old ld.so.  A version number has
been introduced in the crt0-ld.so interface to allow for future changes.

Reviewed by:	GAWollman, Craig Struble <cstruble@singularity.bevc.blacksburg.va.us>
1995-06-27 09:53:27 +00:00
bde
8d95a8ac3e Remove bogus references to /usr/ucb. 1995-06-26 06:40:23 +00:00
bde
f0ca90235f Improve the handling of large minor numbers:
cpio/copyout.c:
Don't output a file if the major, minor or totality of its rdev would be
truncated.  Print a message about the skipped files to stderr but don't
report the error in the exit status.  cpio's abysmal error handling doesn't
allow continuing after an error, and the rdev checks had to be misplaced
to avoid the problem of returning an error code from routines that return
void.

pax/pax.h:
Use the system macros for major(), minor() and makedev().

pax already checks _all_ output conversions for overflow.  This has the
undesirable effect that failure to convert relatively useless fields
such as st_dev for regular files causes files not to be output.  pax
doesn't report exactly which fields couldn't be converted.

tar/create.c:
Don't output a file if the major or minor its rdev would be truncated.
Print a message about the skipped files to stderr and report the error
in the exit status.

tar/tar.c:
For not immediately fatal errors, exit with status 1, not the error count
(mod 256).

All:
Minor numbers are limited to 21 bits in pax's ustar format and to 18
bits in archives created by gnu tar (gnu tar wastes 3 bits for padding).
pax's and cpio's ustar format is incompatible with gnu tar's ustar
format for other reasons (see cpio/README).
1995-06-26 06:24:48 +00:00
joerg
fd01f43e65 Convert the colon after (send-pr) into a period, so the info file can
be actually found.

Suggested by:  someone on the bugs (or -hackers) list, whose name i forgot
1995-06-24 17:11:56 +00:00
asami
62d154d210 Add an "-m" flag to merge instead of replace the entries. We can
now safely add a line like

ldconfig -m ${PREFIX}/lib

in ports' Makefiles and packing lists without throwing away some
directories the user may have added.

Submitted by:   Mostly by Paul Kranenburg <pk@cs.few.eur.nl>
1995-06-24 10:08:44 +00:00
wpaul
32fda3f3ae Fixed awk scripts for 'netgroup,' 'ethers.*' and 'bootparams' targets so that
corresponding map databases are created correctly.

This fixes the problem Ken Wilcox noted on the freebsd-bugs list.
1995-06-18 16:08:15 +00:00
joerg
dbe3013fc1 Make `ld' properly honoring the umask setting when chmod'ing the
output file for the `x' bits.

This is a Posix requirement.
1995-06-14 06:25:09 +00:00
rgrimes
1b1ee55538 Merge RELENG_2_0_5 into HEAD 1995-06-11 19:33:05 +00:00
rgrimes
2ad6f3dee6 Remove trailing whitespace. 1995-05-30 05:05:38 +00:00
ats
0575dd0190 Added a NOMAN= macro as this subdir doesn't have a manpage yet. 1995-05-28 21:21:26 +00:00
ats
4c3abf163b Replaced the whole former Makefile with a more BSD conformant Makefile. 1995-05-28 21:20:30 +00:00
ats
96e4c12ad4 Reviewed by: with the allowance of Rod :-).
Add a NOMAN= . It doesn't have a manual page yet.

Please don't cry :-). I ask Rod first. the whole isdn subdir is not
used in the moment and is only dead source code in the tree.
1995-05-28 21:18:20 +00:00
ache
3c248cf0af Add link to sperl4.036, needed for suid scripts and pgms
which use sperl$]
1995-05-28 19:40:18 +00:00
ache
211a7d9f9a Make link to tperl4.036, needed for suid scripts and other stuff
which use tperl$]
1995-05-28 19:38:59 +00:00
ache
e4c9343d9d Fix $] variable value (version number), close PR 449
Submitted by: Bill Fenner <fenner@parc.xerox.com>
1995-05-28 19:21:54 +00:00
jkh
c8aeb3cc9c Don't make TAB and BACK-TAB destroy field contents incorrectly.
Submitted by:	gibbs
1995-05-28 03:36:05 +00:00
adam
c88727cf79 eliminate coredump for readline(NULL) case 1995-05-22 13:32:29 +00:00
jmz
582eb7ce21 configuration files are in /etc/uucp and spool files are in /var/spool/uucp 1995-05-20 21:25:25 +00:00
ache
9c78f8a3ae Don't chdir to subdirs before formatting, non-native manpages
assume it for .so directive
Submitted by: Wolfram Schneider <wosch@cs.tu-berlin.de>
1995-05-20 19:02:53 +00:00
rgrimes
822ee59bc8 Make error message for no input files specified consistent across all
three compilers.

Submitted by:	Thomas Graichen <graichen@sirius.physik.fu-berlin.de>
1995-05-17 01:03:56 +00:00
ache
a42dff69c2 Remove extra argument from mesgbox 1995-05-16 10:17:13 +00:00
ache
7918fd9c8d Call mesgbox instead of msgbox for long descriptions 1995-05-16 06:09:28 +00:00
jkh
9de827c980 Changes to support the new dialog_dselect() features required to fix
pkg_install.  dialog_dselect() wasn't very useful before.
Submitted by:	Marc van Kempen <wmbfmk@urc.tue.nl>
1995-05-16 01:31:40 +00:00
ache
042ea47697 Fix draw shadow bug, when shadow reaches end of the screen,
bringed by devmenu or tzsetup f.e.
1995-05-15 16:40:02 +00:00
rgrimes
1e7f876bc0 This patch teaches info to read gzipped files (emacs info already
works) so one can gzip files in /usr/share/info and save a few
megabytes diskspace.

Submitted by:	Kai Vorma <vode@snakemail.hut.fi>
1995-05-14 17:54:44 +00:00
ache
492dcc2fc3 Install uuconv/uuchk with right permissions 1995-05-14 17:01:07 +00:00
ache
c44bccb7ff Update other Makefiles to reflect uuconv/uuchk install place change 1995-05-13 12:57:44 +00:00
ache
2177a2ea4f Install uuconv/uuchk to /usr/sbin 1995-05-13 12:30:17 +00:00
ache
9c36abb627 Add missing include 1995-05-12 19:21:46 +00:00
rgrimes
55cfac0c2c Submitted by: Charles Henrich <henrich@fubar.cl.msu.edu>
Quite up man when directories in MANPATH do not exist.  If you want
it to tell you about problems use man -d.
1995-05-12 04:56:28 +00:00
rgrimes
0b1bcecfed Submitted by: gj
Delete suspicious looking chunk of code that was partially commented out.
1995-05-09 13:59:22 +00:00
rgrimes
7156cd0fdd Fix nested comments for -Wcomment warnings. 1995-05-09 12:58:53 +00:00