InterlockedAdd() is not supported on all the platforms we wish to
support. However, InterlockedExchangeAdd() is. The two
functions are semantically similar with the exception that
InterlockedExchangeAdd() returns the initial value of the object
being modified while InterlockedAdd() returns the resulting
value. Since the return value of the rx_MutexAdd() macro is
unused, this is irrelevant.
Reviewed-on: http://gerrit.openafs.org/98
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reported by Marcus Watts
Pointer arithmetic is inappropriate when attempting to output
one of the elements of an array or C-string.
LICENSE IPL10
Reviewed-on: http://gerrit.openafs.org/90
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reported by Marcus Watts
ListCellsRPC calls RXAFSCB_GetCellServDB which takes a serverList
and not an array of afs_int32. Add the serverList and copy the
resulting server addresses into the array of afs_int32 address
values.
Include afs/afscbint.h instead of afs/afsint.h in order to obtain
prototypes for RXAFSCB_ functions.
Reviewed-on: http://gerrit.openafs.org/89
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reported by Marcus Watts
The next field of struct volinfo is supposed to be a pointer
to a struct volinfo.
LICENSE IPL10
Reviewed-on: http://gerrit.openafs.org/87
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reported by Marcus Watts.
principal_hton() is used to copy butc_principal structs.
Passing in a ktc_principal as source and destination will
result in beyond the end of the ktc_principal.
LICENSE IPL10
Reviewed-on: http://gerrit.openafs.org/86
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reported by Marcus Watts. Two calls to ctime() in the same
fprintf() statement will result in only one of the times being
printed twice. This is due to the fact that ctime() returns
a static buffer.
LICENSE IPL10
Reviewed-on: http://gerrit.openafs.org/85
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
For many years the Windows Build System has incorrectly mixed
some Pthread and LWP code. One of the side effects of this
mixing was the need for the EXT2 extern macro definition in
src/rx/rx_globals.h which permitted the LWP compiled routines
to link with the Pthreaded afsrpc library.
This commit creates or modifies multi-threaded versions of various
libraries including mtafsubik.lib, mtafsutil.lib, mtafsvldb.lib,
and mtafsvol.lib.
All of the threaded servers now make use of these libraries.
This reduces the number of times that many source files were
recompiled for each server directory.
util_GetInt32 was defined in both src/util/volparse.c and
src/WINNT/afsd/fs_utils.c. Now that mtafsutil.lib is being
used within src/WINNT/afsd there is no need to maintain the
duplicate copy.
The export list for afsauthent.def now includes all of the
ubik_PR_xxxx function variants and afsrpc.def now include
rxi_CallError as it is linked to outside the rx library.
The top-level NTMakefile has been modified to permit the
tree to build with the new header and library dependencies.
The threaded volserver which never built before now does.
LICENSE MIT
Reviewed-on: http://gerrit.openafs.org/77
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
Verified-by: Asanka Herath <asanka@secure-endpoints.com>
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Replaced some references to the Authentication Database with Kerberos.
Removed text about obsolete tools like rcp, inetd, and rlogin.
Corrected references to AFS Product support by replacing them with links
to the OpenAFS Support page. Added warnings about using the wrong fsck binary
with inode and namei-based fileserver binaries. Removed an obsolete paragraph
about ThisCell and how it interacts with the Authentication Database.
LICENSE BSD
FIXES 124931
Reviewed-on: http://gerrit.openafs.org/10
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Within cm_MergeStatus() cm_FindVolumeByID() was called with
a NULL pointer instead of a valid cm_req_t object pointer
in the case where the data version for an object received
from the file server is smaller than the value already stored
in the cache. This results in a NULL pointer dereference.
Allocate a cm_req_t object on the stack and initialize it
before calling cm_FindVolumeByID() in this case.
LICENSE MIT
Reviewed-on: http://gerrit.openafs.org/83
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Generate the correct paths when building transarc style paths.
Remove the redundant dirpath shell script that was generated by the
afs-newcell script. Update the run-tests driver to use the build
time generated dirpaths.
FIXES 124976
Reviewed-on: http://gerrit.openafs.org/80
Reviewed-by: Russ Allbery <rra@stanford.edu>
Verified-by: Russ Allbery <rra@stanford.edu>
Prototypes and warning fixes for the cache manager when built as
part of libuafs
Reviewed-on: http://gerrit.openafs.org/73
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Capabilities are defined in the .xg file as being an array of
unsigned integers. Implement them as such on Windows, too.
This is a Windows version of the fix in
7191005e4d
Reviewed-on: http://gerrit.openafs.org/76
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Add a util_GetHumanInt32 function for parsing numbers human-readable
units using single-character, uppercase suffixes for indicating orders
of magnitude (e.g. 'M', 'G').
Use this function to parse human readable values for all arguments
that previously accepted a value in kilobytes: fs setquota, fs
setcachesize, vos setfields, and vos create.
Reviewed-on: http://gerrit.openafs.org/66
Verified-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Link the PAM modules against libafsauthent_pic and libafsrpc_pic instead
of the large collection of LWP AFS libraries so that they are always
built PIC, even on platforms that don't normally build everything PIC.
This also uses the pthread-aware version of the AFS routines on platforms
that support it, avoiding conflict problems between LWP in PAM modules
and pthread in a calling application.
Build a separate copy of ktc.krb.o in the pam directory for pam_afs.krb
since there is no AFS_KERBEROS_ENV-aware version of libafsauthent.
Enable the PAM module build by default on x86_64-linux now that it's
properly built PIC and can compile.
Stop ignoring build failures in the PAM modules if they're configured to
build. On platforms where they should not be built, they should be
excluded in acinclude.m4.
Reviewed-on: http://gerrit.openafs.org/65
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
ktc_curpag isn't specific to a Kerberos v4 environment, so move it outside
the AFS_KERBEROS_ENV #ifdef. Add it to the auth.h header and to the
exports from the shared libafsauthent.
Reviewed-on: http://gerrit.openafs.org/64
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Capabilities are defined in the .xg file as being an array of unsigned
ints. Implement them as such.
Reviewed-on: http://gerrit.openafs.org/72
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Remove some unused variables and isolate items that are demand attach only
Reviewed-on: http://gerrit.openafs.org/71
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Other functions included in libafsauthent and libafsrpc are using strlcpy
and strlcat, so include those objects in the libraries so that they stay
self-contained.
strlcat and strlcpy shouldn't be part of the public API for the libraries,
for various reasons including the fact that they're not built on all
platforms. Therefore, don't add the functions to the library exports and
include them separately in each library.
Reviewed-on: http://gerrit.openafs.org/63
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Verified-by: Derrick Brashear <shadow@dementia.org>
Fix a problem introduced by the recent parallel make patches - the
resulting kernel module was not getting copied to the install or
dest location.
Copy some of the code from the COMPDIRS target for INSTDIRS and
DESTDIRS. We still have to call into the lower level make and have it
install the module.
Reviewed-on: http://gerrit.openafs.org/67
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
There are a number of places in the tree which are missing system
headers such as <unistd.h> <ctype.h> and <dirent.h>. Add these.
Reviewed-on: http://gerrit.openafs.org/62
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
With the old print format quota and used values became one large
number for quotas in the terabyte range.
Fix alignment of the "no limit" string in the Windows fs command
for volumes with no quota.
Reviewed-on: http://gerrit.openafs.org/34
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Give functions that need them return values
Add prototyping for server_proc and rx_ts_tinfo_init
Make debug functions only build when RXDEBUG is enabled
Reviewed-on: http://gerrit.openafs.org/61
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Verified-by: Derrick Brashear <shadow@dementia.org>
The vlcient.h header file just provides definitions for functions that
are now protoyped elsewhere by rxgen. It is only referenced by
vlclient.c which was already including the rxgen header. So, nuke
vlcient.h, and references to it.
Reviewed-on: http://gerrit.openafs.org/60
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Verified-by: Derrick Brashear <shadow@dementia.org>
Testing turned up a few more errors with parallel builds:
- Linux: Apply a similar fix for "make dest" to the one in the previous
patch for "make install". Avoid conflict between DESTDIRS and COMPDIRS,
which also prevents unneeded duplicate work.
- Fix a couple of cases where we have 2 targets in a single rule with a
command that generates both of them. Two parallel jobs can run this
command at the same time, with missing or corrrupted files as a result.
The workaround: make one of the targets build the files, and make the
second target depend on the other one.
Reviewed-on: http://gerrit.openafs.org/57
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/venus/test/fulltest.c wants to use getcwd and expects HAVE_GETCWD to
be defined, but we weren't probing for it in configure.
Reviewed-on: http://gerrit.openafs.org/51
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
The fasttime functions are used regardles of whether we're using
pthreads or LWP. Previously, lwp.h only provided their prototypes
if LWP was in use. Change this so these prototypes are always provided,
by refactoring the header a little. In the process, remove some
duplicate header includes.
Reviewed-on: http://gerrit.openafs.org/56
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Fixes several problems with parallel makes in the current source:
- Add '+' prefix to many top-level Makefile commands. This informs make that
the following command should be treated as a sub-make and propagates the -jN
flag.
- Add a few missing dependencies
- Tweak some Makefiles that work with generated header files to prevent cases
where we attempt to use the file while it's being generated
- For the Linux kernel build, eliminate duplicated effort between COMPDIRS
and INSTDIRS, which also prevents conflict between the two in a
parallel situation.
FIXES 125031
Reviewed-on: http://gerrit.openafs.org/3
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Refer to srcdir, not SYS, for syscall.s
Don't build fc_test for all (libsys doesn't exist yet)
Include needed header for Fd_t in xfs_size_check
Reviewed-on: http://gerrit.openafs.org/41
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
struct clock contains signed seconds and signed microseconds.
The format specification should be %d.%06d in all cases.
LICENSE MIT
Reviewed-on: http://gerrit.openafs.org/55
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
rx packet resends were being double counted.
rx data packets sent were one more per send list than it
should have been.
LICENSE MIT
Reviewed-on: http://gerrit.openafs.org/54
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
A very small amount of code cleanup to add prototypes, ANSIfy,
and remove warnings from the fms.c file
Reviewed-on: http://gerrit.openafs.org/53
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Some confusion had ensued about the usage of our printf cast helper
functions. Rename these to attempt to allay that confusion, and restore
the functions themselves to their original definitions.
Essentially, afs_printable_int32_ld() and friends are helpers to go
from afs specifc types to things that can be emitted by printf without
causing compiler warnings.
Also clean up some additional warnings from type mismatches between
escapes in printf format strings and the variables being printed.
Reviewed-on: http://gerrit.openafs.org/50
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Where we can, include headers from the include directory
Resolve a load of const char* /char * issues
Mark some Windows only variables as such
Fix prototypes
Reviewed-on: http://gerrit.openafs.org/49
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Now that butm is sharing its prototype, further cleanup, ansification
and warnings reduction for butc.
Reviewed-on: http://gerrit.openafs.org/46
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Add exported header for the butm directory so it can be used
elsewhere
Reviewed-on: http://gerrit.openafs.org/45
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Other modules need prototypes from the budb directory, so we need
to export this header. However it contains lots of internal functions.
So, split the header into budb_prototypes.h and budb_internal.h, and
reference the internal.h header locally.
Reviewed-on: http://gerrit.openafs.org/44
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Add afs/vol_prototypes.h to src/vol/NTMakefile so
it will be installed in the public include directory.
LICENSE MIT
Reviewed-on: http://gerrit.openafs.org/42
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Replace all uses of strcpy and strcat in src/vol/namei_ops.c with either
strlcpy/strlcat or afs_snprintf as appropriate.
Reviewed-on: http://gerrit.openafs.org/29
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Verified-by: Derrick Brashear <shadow@dementia.org>
The change in b210152420 broke
systems without posix regexes by removing, rather than
conditionalising the 'ccode' variable
Reviewed-on: http://gerrit.openafs.org/40
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
src/util/netutils.c must include rx/rx.h in order to avoid
warnings due to the lack of prototypes for rx functions.
src/rx depends on src/util being built in order to properly
compile. Add a rx_headers build rule to the top level
NTMakefile to permit rx headers to be installed before
src/util is built.
LICENSE MIT
Reviewed-on: http://gerrit.openafs.org/38
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
A first pass at prototyping and warning reduction for the kauth
directory. kauth is plagued by the des key type problems, and
no attempt to remedy this has been made. Some other complex
warnings remain - it didn't seem worth the effort to do this
in too much detail, as it's dying soon.
Reviewed-on: http://gerrit.openafs.org/23
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Rework prototyping in the bucoord directory so that bucoord_prototypes.h
can be used by others who need definitions of the dlq_* types.
Add additional prototyping and header includes so these types work correctly
No Windows specific changes are required, as the NTMakefile doesn't have
header dependencies
Reviewed-on: http://gerrit.openafs.org/35
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Prototyping and warning message reduction for the volser directory.
Adds physio.h and dumpstuff.h as internal header files,
Many error code variables are changed from being afs_int32, to the
'Error' typedef, to remove signed comparison errors.
Reviewed-on: http://gerrit.openafs.org/19
Reviewed-by: Russ Allbery <rra@stanford.edu>
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>