Commit Graph

107 Commits

Author SHA1 Message Date
Andrey A. Chernov
a74de56d07 Fix sgetrune/sputrune arg type: was unsigned int instead of size_t 1996-04-18 07:13:42 +00:00
Bill Paul
94c53e1fb5 NIS cleanups and fixes, the next generation.
getnetgrent.c:

- Catch one bogon that snuck by: in _listmatch(), check for '\0'
  rather than '\n'; strings returned from yp_match() are terminated
  with a nul, not a newline.

getpwent.c:

- Rip out all of the +inclusion/-exclusion stuff from before and
  replace it with something a little less grotty. The main problem
  with the old mechanism was that it wasted many cycles processing
  NIS entries even after it already knew they were to be exlcuded
  (or not included, depending on your pointof view). The highlights
  of these changes include:

  o Uses an in-memory hash database table to keep track of all the
    -@netgroup, -user, and -@group exclusions.

  o Tries harder to duplicate the behavior normally obtained when using
    NIS inclusions/exclusions on a flat /etc/passwd file (meaning things
    come out in much the same order).

  o Uses seperate methods for handling getpwent() and getpwnam()/getpwuid()
    operations instead of trying to do everything with one general
    function, which didn't work as well as I thought it would.

  o Uses both getnetgrent() and innetgr() to try to save time where
    possible.

  o Use only one special token in the local password database
    (_PW_KEYYPBYNUM) instead of seperate tokens to mark + and -
    entries (and stop using the counter tokens too). If this new
    token doesn't exist, the code will make due with the standard
    _PW_KEYBYNUM token in order to support older databases that
    won't have the new token in them.

  All this is an attempt to make this stuff work better in environments
  with large NIS passwd databases.
1996-04-16 00:22:41 +00:00
Andrey A. Chernov
f905bd5001 Slightly simplify inlined functions 1996-03-25 13:46:21 +00:00
Paul Richards
65bfae763d Fix incorrect parameter types for ftell and fgets. 1996-03-24 15:51:45 +00:00
Jordan K. Hubbard
7a532e559d Don't reference ndbm(3) manpage. Everything is covered by db(3). 1996-03-03 09:04:40 +00:00
Paul Traina
90fd5bdfbf Fix conflicts and merge into mainline (this may get cvs admined out and redone properly by Peter later) 1996-02-27 19:42:44 +00:00
Bill Paul
2a781cb86e Add structure and procedure definitions for NIS v1. (This information
was reverse-engineered using the <rpcsvc/ypv1_prot.h> file supplied
with SunOS 4.1.3 as a guide.)
1996-02-26 02:22:53 +00:00
Peter Wemm
34cc74ea41 Add prototype for rfork(). 1996-02-23 19:45:46 +00:00
Garrett Wollman
2f8ed7833f Don't install netns, it doesn't exist any more. 1996-02-14 15:17:53 +00:00
Garrett Wollman
d24ceb93d8 Don't install netccitt and netiso, they are going away. 1996-02-06 20:42:46 +00:00
Jeffrey Hsu
128443c87b Remove unnecessary typedef. All inclusions of <rpc/auth.h> in the source
tree are preceded by an inclusion of <rpc/types.h>, so the 32-bit fixed sized
type u_int32_t is already available to us.
1996-01-31 08:02:11 +00:00
Mike Pritchard
71d9c7815e Fix a bunch of spelling errors in the comment fields
of a bunch of system include files.
1996-01-30 23:33:04 +00:00
Mike Pritchard
c2dc2eab50 Add a missing "chmod 755 /usr/include/ufs" when copies of the include
files are installed instead of symlinks.
1996-01-23 15:56:43 +00:00
Julian Elischer
2c2eb19365 Submitted by: john birrel
Obtained from: uthread package

thrreads definitions
1996-01-22 00:24:56 +00:00
Julian Elischer
f70177e76e Reviewed by: julian and (hsu?)
Submitted by:	 John Birrel(L?)

changes for threadsafe operations
1996-01-22 00:02:33 +00:00
Peter Wemm
25c570d8a8 Update resolver include files to bind-4.9.3-rel level 1996-01-07 05:01:52 +00:00
Peter Wemm
6065a0be11 This commit was generated by cvs2svn to compensate for changes in r13122,
which included commits to RCS files with non-trunk default branches.
1995-12-30 19:02:48 +00:00
Peter Wemm
a5b996a7ec recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
Bill Paul
898daf2b5b *groan* Fix yet _ANOTHER_ discrepancy between the NIS protocol definition
and real life. YPPUSHPROC_XFRRESP is supposed to return void and take
an argument of type yppushresp_xfr, not the other way around as yp.x seems
to imply. (I spent two hours today staring intensely at my prototype ypxfr
code and scratching my head before I finally figured this out.)
1995-12-22 04:08:28 +00:00
Bill Paul
d888004745 *sigh* Yet another bogosity: the YPPROC_FIRST procedure is listed as
taking an argument of type ypresp_key. This is incorrect: it should be
ypresp_nokey. (yp_first() is supposed to return the first key in a
given map; the server doesn't need any client-specified key to handle
such a request.)
1995-12-09 08:34:04 +00:00
Bill Paul
04228afa84 "What? He's modifying the NIS protocol definition!?"
No, not really. There are just a couple of long-standing bogosities here
that I feel compelled to fix. :)

There are two small changes here:

1) yp.x actually contains _three_ protocol definitions: YPPROG (standard
   NIS client/server procedures), YPPUSH_XFRRESPPROG (callback handler
   for the YPPROC_XFR service, aka ypxfr/yppush) and YPBINDPROG (for ypbind,
   ypset & friends). The problem is that when you run yp.x through rpcgen(1),
   it generates client and server stubs with hooks for all three services.
   This makes it impossible to actually use the rpcgen-erated code in a
   program that only deals with _one_ of these services (ypserv, ypbind,
   etc...) without manually removing the unneeded stubs (either by hand
   editing or by committing unspeakable horrors with sed). This defeats
   the whole purpose of using rpcgen and is generally annoying.

   What I've done is to insert a few #ifndefs and #endifs to allow a
   programmer to selectively blot out those functions that aren't needed
   for a particular program. For instance, if you do 'rpcgen -DYPSERV_ONLY',
   you'll get only the necessary client/server stubs to implement the
   standard yp client and server functions. If you do 'rpcgen -DYPBIND_ONLY',
   you get only what you need for ypbind. If you don't #define anything,
   you get the whole mess, just like before, so existing programs won't
   notice the difference. (Note that the -D flag is not supported by our
   existing crufty version of rpcgen, but I intend to update it soon.)

2) The definition for the ypresp_key_val structure is actually incorrect
   with respect to reality: the key and val members are specified in the
   wrong order. It should be val/key rather than key/val. For whatever
   the reason, Sun's actual NIS implementation contradicts the protocol
   definition in this case. Again, accounting for this bogosity here is
   cleaner and easier than mangling the output from rpcgen.
1995-12-08 17:58:50 +00:00
Mark Murray
985200a17e Removed reference to missing mp.h in comment. We have GNU MP now. 1995-11-12 19:29:08 +00:00
Andrey A. Chernov
15b31aa05a Fix isspecial/isphonogram, they was swapped
Remove EOF hack, now it is recognized per ANSI/POSIX
Add upper bounds check
Handle all negative chars inside locale functions
1995-11-03 12:25:14 +00:00
Julian Elischer
2ef81f4909 Submitted by: john hay
add a link in /usr/include to /sys/netipx
1995-10-27 06:51:02 +00:00
Andrey A. Chernov
b8643b5a1b Due conflict to some obsoleted applications (dump/restore) rename
_PATH_LOCK to _PATH_UUCPLOCK
Pointed-by: bde
1995-09-23 15:14:25 +00:00
Andrey A. Chernov
fa78e67a41 Add _PATH_LOCK: /var/spool/lock/
Suggested-by: bde
1995-09-20 13:01:04 +00:00
Peter Wemm
d58a9efd01 Update the resolver include files to bind-4.9.3-beta24 level (from beta9p1)
Note: this was done by selective patching from diffs by hand, in order
to not conflict with the 4.4BSD base code.  Beta9 was done the same way.

Obtained from:	Paul Vixie <paul@vix.com>
1995-08-20 19:59:28 +00:00
Joerg Wunsch
df57976dbc Install the headers and sample files with 444 perms (as opposed to
555).

Submitted by:	graichen@sirius.physik.fu-berlin.de (Thomas Graichen)
1995-08-15 20:06:50 +00:00
Bruce Evans
48cfb668fc Change install' to ${INSTALL}' so that default install flags can be
specified in the top level Makefiles.

Previously I missed dozens of Makefiles that skip the install after
using `cmp -s' to decide that the install isn't necessary.
1995-08-06 12:24:38 +00:00
Garrett Wollman
cffeb06206 Don't install bogus tzfile.h. In fact, don't install any tzfile.h. 1995-08-05 20:24:32 +00:00
Rodney W. Grimes
38d29ffcd6 Remove NOOBJ, we now need it.
Remove JUST_TELL_ME hack, let the newvers.sh output fall into the
obj dir, and add CLEANFILES= to clean up after it.
1995-07-13 10:04:11 +00:00
Rodney W. Grimes
5e92b09f4f Add a sprinkling of ${.CURDIR} to some paths so that this works
in the presence of an obj dir (though NOOBJ is set now, that shall
change in the near future.)
1995-07-13 09:57:34 +00:00
Garrett Wollman
827d45ce27 Fix a bug I didn't manage to trigger until after committing previous
fix to header installation.
1995-06-29 19:45:46 +00:00
Garrett Wollman
5a497e0c63 Make this include installation conform to the standard of all the rest:
- Don't do mkdir/chown/chmod
	- Do `cmp -s' before attempting to install a header

This should fix the obnoxious problem of yp programs wanting to
rebuild every time.
1995-06-29 19:43:00 +00:00
Bruce Evans
943c18018b Fix standards conformance bugs in <signal.h>:
include/signal.h:
There was massive namespace pollution from including <sys/types.h>.
POSIX functions were declared even when _ANSI_SOURCE is defined.

sys.sys/signal.h:
NSIG was declared even if _ANSI_SOURCE or _POSIX_SOURCE is defined.
sig_atomic_t wasn't declared if _POSIX_SOURCE is defined.
Declare a typedef for signal handling functions and use it to
unobfuscate declarations and to avoid half-baked function types
that cause unwanted compiler warnings at certain warning levels.
Fix confusing comment about SA_RESTART.

sys/i386/include/signal.h:
This has to be included to get the declaration of sig_atomic_t even
when _ANSI_SOURCE is defined, so be more careful about polluting
the ANSI namespace.

Uniformize idempotency ifdefs.
1995-06-28 02:14:13 +00:00
Doug Rabson
a62dc40654 Changes to support version 3 of the NFS protocol.
The version 2 support has been tested (client+server) against FreeBSD-2.0,
IRIX 5.3 and FreeBSD-current (using a loopback mount).  The version 2 support
is stable AFAIK.
The version 3 support has been tested with a loopback mount and minimally
against an IRIX 5.3 server.  It needs more testing and may have problems.
I have patched amd to support the new variable length filehandles although
it will still only use version 2 of the protocol.

Before booting a kernel with these changes, nfs clients will need to at least
build and install /usr/sbin/mount_nfs.  Servers will need to build and
install /usr/sbin/mountd.

NFS diskless support is untested.

Obtained from: Rick Macklem <rick@snowhite.cis.uoguelph.ca>
1995-06-27 11:07:30 +00:00
Doug Rabson
82aaeb09ad 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
Rodney W. Grimes
4399be3cbd Remove trailing whitespace. 1995-05-30 05:05:38 +00:00
Bill Paul
fa238a7175 Add prototype for ypbinderr_string(). 1995-04-21 18:07:34 +00:00
Bruce Evans
67c54240cd Don't declare rune_t, putenv() or setenv() if _POSIX_SOURCE is declared.
Previously they were only guarded by `#ifndef _ANSI_SOURCE'.  They are
neither ANSI nor POSIX nor std and should never have been declared here.

Declare functions like abs() as having attribute `__pure2'.  Declaring them
as having type `__pure' has been a no-op for some time.

Delete obsolete comment about stub locale functions.

Use consistent formatting for the rand48 functions.  These and about 30
other functions should never have been declared here either.
1995-04-15 23:48:16 +00:00
Garrett Wollman
3688be0eeb Add err_set_file() and err_set_exit() functions to make it possible for
programs which use err(3) to work nicely in a wider range of environments
(e.g., dialog).
1995-04-13 18:04:11 +00:00
Bruce Evans
18c34920f8 Reviewed by: ache and wollman (long ago)
Fix numerous ANSI conformance bugs and other nits.

ctype.h:
o There were no prototypes behind the macros (conformance bug).
o isascii() didn't have enough parentheses (plain bug).
o tolower() and toupper were always static inline (conformance
  bug?  You could undef them and take their address, but this
  gave different addresses in different modules.  You couldn't
  undef them and declare them (correctly) again).  <stdio.h>'s
  treatment of putc() shows one way to handle this problem,
  but it only works because the putc() macro is allowed to
  reevaluate its args.  I used a hack controlled by
  _EXTERNALIZE_CTYPE_INLINES_ to get <ctype.h> to generate the
  code (the previous hack involving _ANSI_LIBRARY_ goes away).
  This has the advantage that the core of the functions is only
  written down once and the disadvantage that another layer of
  functions is required.  The extra layer goes away if inline
  functions are used, leaving only the problem of understanding
  why there are functions named toupper(), __toupper and
  ___toupper() as well as a macro named toupper.
o Nothing seems to define _USE_CTYPE_LIBRARY_.  Eliminate it
o Let the user set _USE_CTYPE_INLINE_ and _DONT_USE_CTYPE_INLINE_
  for full control over inlining.
o The args for the inline functions didn't have enough
  underscores (conformance bug).
o The formatting and ordering was inconsistent (style bug).
o TODO: fix conformance bugs brought by including <runetype.h>.
1995-04-07 11:43:40 +00:00
Andrey A. Chernov
ead39f6e45 Move inline args out of user namespace.
Obtained from: 1.x
1995-04-07 09:56:10 +00:00
Jordan K. Hubbard
03060874ed Add a necessary include file for the catgets* routines.
Obtained from: NetBSD
1995-03-30 12:47:56 +00:00
Jordan K. Hubbard
7f5473b3cc add strhash.h for libc's new string hashing function. 1995-03-26 10:12:53 +00:00
Bill Paul
e13e2475dc Add a couple of extra #defines for special keys to be embedded in the
password databases:

#define _PW_KEYPLUSBYNUM        '5'     /* special +@netgroup entries */
#define _PW_KEYMINUSBYNUM       '6'     /* special -@netgroup entries */
#define _PW_KEYPLUSCNT          '7'     /* number of +@netgroup entries */
#define _PW_KEYMINUSCNT         '8'     /* number of -@netgroup entries */

This is to help getpwent.c in libc build the +@netgroup/-@netgroup
caches.
1995-03-23 00:08:00 +00:00
Poul-Henning Kamp
d7e1495a33 A little fix related to libm/msun migration.
Reviewed by:	phk
Submitted by:	rgrimes
1995-03-22 07:29:58 +00:00
Rodney W. Grimes
1a96efa2b8 Comment out declaration of kvm_uread until it can be fixed correctly. 1995-03-20 16:35:11 +00:00
Rodney W. Grimes
15f7fc2caa Change u_long to unsigned long to be consistent. 1995-03-20 16:17:50 +00:00
Joerg Wunsch
cb0b0e16cd libkvm exports kvm_uread(), so do declare it in the header file.
Got apparent by Philippe's -Wall patch for /usr/bin.
1995-03-19 13:36:49 +00:00