This patch applies all of the work done to add persistent cache support,
cache manager debugging, and a variety of bug fixes. A full description
will be committed within doc/txt/winnotes as part of a later commit.
(cherry picked from commit 0b90d69f8a44e6c7ba20553cfb7d5cf7072bab57)
* Fixed DNS lookups to work consistently throughout the OpenAFS
product instead of just from within the afsd_service.exe
* Added a runtime check to ensure that AFS Client Service SMB
Server is accepting connections before attempting to mount
global drives.
* Read IP addresses for volume servers out of the CellServDB
file if gethostbyname() on the hostname fails.
* Fix getcellconfig() to populate both the Hostnames as well
as IP addresses when loading cell data via DNS
* Increase the Connection Dead Time to 50 from 20 seconds
Increase the Hard Dead Time to 120 from 40 seconds
(matches the Unix values)
* Fixed an assertion validating the number of allocated NCBs
* Fixed the build environment to consistently build for
Windows 2000 and above. (APPVER = 5.0)
* Fixed rx_debug to properly validate the receipt in incoming
data with select() and recvfrom(). Do not copy data out of
the socket buffer unless success is indicated.
TICKET 2618
flexelint patches for prototype handling from Joe Beuhler
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
This patch adds a bunch of missing prototypes, makes various
corrections to global prototypes, and removes global declarations that
are not needed.
One set of added prototypes is commented out because it applies to
some printf-like functions that are implemented the way it used to be
done before varargs existed, and they need to be unprototyped or the
code will fail to compile. (There are a number of functions in the
OpenAFS code that need to be converted to use varargs...)
There is one place of note in src/WINNT/afsd/fs.c where typedefs for
afs_int32 and afs_uint32 conflict with afs/stds.h. I just added a
note to that effect.
Prototypes in src/WINNT/afsd/fs.c are incorrect for Windows NT. I
don't know whether the return type involved changes from platform to
platform -- they come from .xg files.
Some prototypes are now commented out or #ifdef'd to match the code
that uses them.
Some global variables conflict between modules and have been made static.
The bufferBlock variable was of two completely different types...
In src/config/stds.h, I changed the declaration of afs_intmax_t to
reflect the fact that the Windows platform supports 64 bit integers.
This may be incorrect semantically, but I believe it is needed for the
%llx format to match afs_intmax_t arguments (for printing of inodes
mainly, I believe).
There were two different declarations for the rxkad_stats structure --
I synced them up.
- Joe
Removed the conflicting typedefs from src/WINNT/afsd/fs.c
Removed the changes to src/config/stds.h. Added declaration of
AFS_64BIT_CLIENT to src/config/NTMakefile.i386_nt40 instead.
Do not remove unused variables which are defintions of data type
values. Instead comment them out to avoid space utilization and
warnings.
This patch covers bugs found by running flexelint on
the CVS code on Windows NT.
- incorrect enum used in al_creds.cpp and various other files
- use of local after it goes out of scope in al_wizard.cpp
- uninitialized class members in afsclass/*
- cm_config.c looks like it has code commented out accidentally
- useless statement in alert.cpp
- no default case handling in problems.cpp
- strange use of & on booleans in set_clone.cpp
- fgets() and fclose() on closed stream in cellconfig.c
- memory leak in cellconfig.c
- *scanf into variables of unknown length in cellconfig.c
- incorrect pointer passed to getAFSServer() in cellconfig.c
- possible buffer overflows in userok.c
- address of array in bos.c
- too many arguments for printf() in commands.c
- return code not saved in bucoord/main.c
- bad types for argv arrays in bucoord/main.c
- probably incorrect initializer list in ol_verify.c
- extra argument to TLog() in lwps.c
- memory leak in cmd/cmd.c
- lack of typecast on malloc() in a couple files
- lower-case L for long constant in touch.c (is it a 1 or an l...)
- parentheses nesting error in util_cr.c
- apparently invalid case fall-through in util_cr.c
- various memory leaks in util_cr.c
- macro missing parens in crypt.c
- macro missing parens in quad_cksum.c
- null pointer deref in kpasswd.c (CVS work in progress?)
- Print_bos_ProcessState_p() code does not look correct
- extra argument to printf() in kas.c
- typo in vsprocs.c
- macro missing parens in iomgr.c
- address of array in threadname.c
- storing result of getch() in char type in waitkey.c (may not match EOF constant)
- storing pointer to local car in global in ptserver.c (benign -- it is in main())
- address of array in rx_lwp.c
- macro missing parens in rx_packet.h
- impossible == (signed vs. unsigned?) in rxdebug.c
- bogus constants in xdr.c and xdr_array.c (possible security implications?)
- incorrect test of fd for open file in update/server.c
- dangerous unparenthesized macro in get_krbrlm.c
- buffer overrun in regex.c
- missing comma causes string concat and bad array init in vlclient.c
- comparison of string < 0 in ntops.c
- default case has no code in vos.c
--
Joe Buehler
>>>>
Comments: Several comments for FIXME left in the code - unaddressed
This patch addresses a number of problems with printf-like functions.
Most of them are %x formats applied to pointers (which could be a
problem depending on the architecture I would assume). There is a
%p format for pointers on many machines but I don't know if it
applies to all supported OpenAFS platforms so I didn't go that route.
There is a buffer overflow fix to ktime.c
There are a couple places where incorrect format characters were used.
One call had two arguments swapped.
Other fixes include the use of PrintInode() and %s formats for
printing inode numbers. The code was inconsistent in this regard -- sometimes
PrintInode() was used, sometimes it was side-stepped.
There is one place where a local shadowed another variable, so I renamed
the local.
The last segment points out that an fdset need not be anything printable
with an integer format.
--
Joe Buehler
Comments - The fdset comment relates to a WinSock only file on which
the size is a pointer to int. Modified the source to use a %p instead
of %x as it is supported on Windows.
Added an assert(p != NULL) to src/rx/rx_packet.c
This massive patch contains changes in several significant areas for Windows:
- the ability to specify the mount point to be something other than /afs
- functionality to assist debugging of the NT Services
- support for languages other than English (NTLang.bat)
- revisions to the Build system to support separate trees for src, obj,
dest and free or checked; allow any MS compiler to be used
- updates to NSIS installer build
- mutex locking added to critical locations
- updates to IS5 directory tree creation
- update to afswsNetscape_config.sh
include unified afs error support for winnt. removed dup'd code.
supports building an installer with NSIS
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
include unified afs error support for winnt. removed dup'd code.
supports building an installer with NSIS
remove orphaned osi_malloc header ref
====================
more updates. make libadmin build, fix dependancies for unified_afs,
copy rxstat header out during build
====================
fix NSIS installer build paths
clean up base64 support for nt
clean up int64 support in volser
====================
more updates. make libadmin build, fix dependancies for unified_afs,
copy rxstat header out during build
FIXES 1774
thanks to nneul@umr.edu for providing a script to do this.
gnu indent 2.2.9 options:
-npro -nbad -bap -nbc -bbo -br -ce -cdw -brs -ncdb -cp1 -ncs -di2 -ndj -nfc1
-nfca -i4 -lp -npcs -nprs -psl -sc -nsob -ts8
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
FIXES 1774
fix subst mistake
FIXES 1488
It adds:
- the binary version of the file version/productversion, which the MSI
engine sort of want files in MSI packages to all have. This requires
another variable to be maintained in NTMakefile.i386_nt40 (Please don't
change the value from 1,2,910,0 to 1,2,9,1 or something like that. The last
number group in the version is considered completely insignificant by some
things)
- some file typing, which I don't know if anything cares about
- Some new items in the stringfileinfo table, (InternalName and
OriginalFilename) without which explorer won't show use the version info in
constructing tooltip text.
- Actually setting ProductVersion and FileVersion to something real
- Language codes, which the MSI engine also wants
support for V6.0 and .Net complier, compile from either NT4.0 or XP
Source and object are separated into different directories. The directory
tree would look as follows:
Base from %AFSROOT% environment variable
%AFSROOT%\src\... - all source and generated source
%AFSROOT%\obj\checked\... objects from a checked build
%AFSROOT%\obj\free\... objects from a free build
%AFSROOT%\obj\dest\checked\... DEST folder from a checked build
%AFSROOT%\obj\dest\free\.... DEST folder from a free build
Before you start the build, you must build an object tree by issuing the
following:
nmake -f NTMAKEFILE mkdir
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
support for V6.0 and .Net complier, compile from either NT4.0 or XP
Source and object are separated into different directories. The directory
tree would look as follows:
hopefully last of the lwp fun
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
make it build on the bsds
====================
nope. this time for sure (more lwp createprocess casting)
====================
clean up osi_UFSOpen prototyping
====================
aix gets bitter at this
====================
fix missed argument
====================
again, aix doesn't like this. so, we don't do it
====================
yup, aix still hates this
====================
dux compiler doesn't like this (i think this one is actually my fault)
====================
already prototyped in rxkad_prototypes.h
====================
causes multiple inclusion of protosw.h which isn't safe on irix.
====================
for some reason you just can't declare the same thing the same way twice
====================
make dux compiler happy. oops.
based on comments and suggestion from Srikanth Vishwanathan <vsrikanth@in.ibm.com>
avoid deadlock. send back variable length list. allocate what we need to, and
be care to clean up after ourselves if there's an error. whether this
should be variable length is arguable but it's pretty clear no one was using
this before.
based on report from lha@stacken.kth.se
include vlops in the "published" interface
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
based on report from lha@stacken.kth.se
remove from vlserver.p.h
1) Removal of unused variables
2) some NT ifdef cleanup
3) use of size_t rather than int to store the result of strlen()
4) some bugs that really only occured when errors occured.
5) some functions were implicitly declared as 'int' but doing a
"return;" Some I declared as 'void' and prototyped them; some I
just returned a value.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
put symbol in an ifndef for winnt
====================
change erroneous void to int
====================
technically the cmdprocs return int
====================
update function to be void
according to jeff:
- Renames the top-level 'install' target to 'build'. This should be
transparent, since no one should be using that.
- Improves on Sam's dirpath patches, by splitting out server binaries
into separate bin, sbin, and libexec directories in GCS mode (these
are all /usr/afs/bin in Transarc mode).
- Updates the top-level 'all' target so that it builds the software
but does not generate a dest tree. Top-level 'lib' and 'include'
directories are generated to hold the intermediate libraries and headers
used during the build.
- Adds a new top-level 'install' target, which installs things in the
appropriate directories under ${DESTDIR}, based on configure's install
directories plus the extras added by Sam's patch.
- Adds a new top-level 'dest' target, which creates an old-style dest
directory under ${DEST}. The ${DEST} variable defaults to the
traditional value of ${SRCDIR_PARENT}/${SYS_NAME}/dest. Note that
this variable used to be called ${DESTDIR}; it was renamed to avoid
conflicts with the de facto standard usage of ${DESTDIR}.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
fix missed makefile
====================
update another missed file
====================
eliminate bogus escaping
====================
get rid of another bogus escape
====================
remove unused include directory
====================
get rid of no longer used libdir
====================
remove unused incdir
====================
fix up some problems for make compatibility and missing trailing /
====================
put afs.exp in the right place
====================
remove bogus afssrvdir reference
====================
update dest version of output
====================
update ref to libexecdir
====================
kill refs to afssrvdir
====================
convert missed LIBDIR to TOP_LIBDIR
====================
remove explicit INSTALL and use makefile.@sys value instead
====================
except it's helpful to actually include makefile.@sys
====================
convert LIBDIR to TOP_LIBDIR
get rid of cases where we'd end up with two / because of DESTDIR pasting
macroize calls to rm
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
get rid of another case of bogus trailing quoting
clean up all the makefiles to remove bogus targets, eliminate trailing /
requirement from DESTDIR, avoid needing to pass things like DESTDIR around
between makefiles
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
remove bogus quoting
bcopy, bcmp, bzero, index, rindex, you're all cut.
memcpy, memcmp, memset, strchr, strrchr, show us how it's done
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
fix reference to memset the right thing
====================
make change to arguments globally and not just for e.g. linux/darwin/fbsd
====================
fix a minor flub in how this was done
====================
correct another bad memcpy coversion
====================
fix up more inadvertant turds
====================
fix two errors found by chas williams
convert rest of source to afsconfig; include rcsid macros
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
remove bogus if/define/endif triple
====================
revert non-rcsid and afsconfig portion of patch
Windows 95/98 port from IBM Almaden
documentation and build support
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
Windows 95/98 port from IBM Almaden
changes to cache manager
====================
Windows 95/98 port from IBM Almaden
makefile changes
====================
Windows 95/98 port from IBM Almaden
osi changes to support 95/98
====================
Windows 95/98 port from IBM Almaden
installer for 95/98 client
====================
Windows 95/98 port from IBM Almaden
win95/98 panel app
====================
Windows 95/98 port from IBM Almaden
win95/98 panel app help
====================
Windows 95/98 port from IBM Almaden
makefile changes plus dns implementation
====================
Windows 95/98 port from IBM Almaden
makefile changes plus changes for compat with dos line conventions
====================
Windows 95/98 port from IBM Almaden
config for 95/98
====================
Windows 95/98 port from IBM Almaden
makefile changes plus support for 95/98 env
====================
Windows 95/98 port from IBM Almaden
ms compiler changes
====================
Windows 95/98 port from IBM Almaden
makefile changes
====================
Windows 95/98 port from IBM Almaden
lwp changes
to support 95/98 port
====================
Windows 95/98 port from IBM Almaden
rx changes to support 95/98 port