Andrew Deason [Fri, 11 Jun 2010 22:40:18 +0000 (17:40 -0500)]
vol: break callbacks when needsCallback is set
The needsCallback vol header field indicates that a volume has been
altered by a non-fileserver program somehow, and that callbacks for
the volume should be broken. So, when we attach a volume that has this
flag set, break callbacks if we can. If we are not the fileserver,
tell the fileserver over FSSYNC to break callbacks if we can.
Derrick Brashear [Sat, 19 Jun 2010 15:26:49 +0000 (11:26 -0400)]
afsd -dynroot-sparse mode for hushed cells
if an admin specifies -dynroot-sparse (instead of dynroot) come up
with just local cell and cell aliases showing. cell list
is configured as normal. fs newcell works as normal.
Andrew Deason [Fri, 11 Jun 2010 22:39:32 +0000 (17:39 -0500)]
salvaged: Break volume callbacks on vol change
The salvager code can change a volume in many ways as it fixes errors.
We should break callbacks on the volume whenever we change it, as
clients may have callbacks on whatever we changed. So, for the
salvageserver, send an FSSYNC command to the fileserver to tell it to
break callbacks for that volume.
Ben Kaduk [Sun, 20 Jun 2010 22:54:26 +0000 (18:54 -0400)]
Simplify preprocessor logic in afs_pioctl
We had identical code in two branches of an if/elif/else path.
Merge them together.
This allows two DARWIN80_ENV blocks to be coalesced; reindent
them correctly while we're here.
Andrew Deason [Mon, 21 Jun 2010 22:28:10 +0000 (17:28 -0500)]
vldb_check: ntohs ubik header size
The 'size' field in the ubik header is only 16-bits wide. So, we must
use ntohs to convert it, not ntohl. Without this, vldb_check would
emit false-positive "Ubik header size is 0" warnings.
Andrew Deason [Mon, 21 Jun 2010 20:47:06 +0000 (15:47 -0500)]
ubik: Do not hide ReplayLog errors
For some reason, the ReplayLog code was printing encountered errors in
the replay log as debug messages. Print them out as regular log
messages instead, since these are errors that at least warrant
visibility, if not more action.
Andrew Deason [Fri, 18 Jun 2010 22:20:22 +0000 (17:20 -0500)]
ubik: ntohl on reading the replay log
When attempting to read the replay log, ubik was not ntohl'ing all
integers that were read in from the log, causing the log to appear
invalid on little-endian systems. Fix it.
This problem manifests as apparent corruption in the database on top
of ubik when a commit is occurring when we are shut down, or a disk
error is encountered during a commit.
Ben Kaduk [Thu, 17 Jun 2010 04:27:51 +0000 (00:27 -0400)]
Fix aklog segfault
In auth_to_cell(), we only strdup() into the linkedcell argument
if there is a linkedCell in the current cellconf. However, in
main(), we free linkedcell if it is non-NULL, but it is allocated
on the stack and could contain garbage. free() chokes on such
garbage, causing aklog to abort().
If we copy nothing into linkedcell, set it to NULL so that we
do not attempt to free the bogus pointer.
Russ Allbery [Wed, 16 Jun 2010 01:59:22 +0000 (18:59 -0700)]
Remove configure remnants of Digital UNIX / Tru64 client
Remove the configure flag to specify the location of the Digital
UNIX kernel headers and some setup for the kernel module build.
Note in README that Digital UNIX / Tru64 is supported for servers
only.
Chaz Chandler [Mon, 14 Jun 2010 04:21:50 +0000 (00:21 -0400)]
IRIX: Implement makesname()
makesname() make a semaphore name for use in <sys/sema.h>-type routines on
IRIX. It takes as input a pointer to an allocated string buffer (sname) of
size METER_NAMSZ, a string prefix (prefix), and a vnode number (v_number).
When complete, sname is returned, pointing to the beginning of a
NULL-terminated string containing the new name, with a maximum of
(METER_NAMSZ-1) characters plus the NULL. The name is a concatenation of
the string at 'prefix' and the ASCII representation of the number in
'v_number'.
Note: Due to IRIX's use of uint64 to represent vnumber_t and a maximum
semaphore name length of 15 (METER_NAMSZ-1), this function cannot be
guaranteed to produce a name which uniquely describes a vnode.
makesname() is already called from afs_vcache.c but not (or no longer)
available / implemented elsewhere.
Andrew Deason [Tue, 15 Jun 2010 17:19:25 +0000 (12:19 -0500)]
Do not assume non-valid addrs in addr hash table
As part of host state verification, we were calling
h_stateVerifyAddrHash to verify that all addresses for a host were in
the address hash table. The problem with this is that interface
addresses that are not marked as 'valid' are intentionally not in the
addr hash table. So, any time there was a non-'valid' interface
address in the host state, we stood a very good chance to fail to
verify the state.
Instead, if we have a non-'valid' address, try to verify that it is
_not_ in the addr hash table (or at least, is not pointing at the host
with the non-'valid' interface addr), since they're not supposed to be
in there.
Andrew Deason [Tue, 15 Jun 2010 15:58:58 +0000 (10:58 -0500)]
Make h_stateVerifyAddrHash log port on errors
When h_stateVerifyAddrHash logs that an error in state verification
occurs, it was only logging the address of the host causing the
problem. Log the port, too, since there could be multiple hosts with
the same address.
Russ Allbery [Fri, 4 Jun 2010 02:50:14 +0000 (19:50 -0700)]
Fix aklog warnings when building with Heimdal
Fix various warnings in the aklog and klog code when building with
Heimdal. Use krb5_get_init_creds_opt_alloc if it's available rather
than allocating the struct off the stack, since the _opt_init
function is deprecated.
Russ Allbery [Wed, 26 May 2010 03:19:14 +0000 (22:19 -0500)]
Rework the Kerberos Autoconf probes
Previously, building with Kerberos support required either passing a
flag to configure giving the location of a krb5-config script, or
manually setting variables specifying the Kerberos libraries and
header path. Replace that code with code that checks for Kerberos
libraries automatically and builds the Kerberos code if any were
found, with support for doing direct library probing if there is no
krb5-config script.
Add several platform-specific overrides directly into the configure
support, so we should be able to build out of the box on Mac OS X 10.3,
HP-UX, and AIX Kerberos with the new probes.
The Kerberos Autoconf macros are now the versions that come with
rra-c-util and are tested with multiple other packages, so both
OpenAFS and those packages will be able to benefit from further
portability improvements.
Update README for the new building instructions, documenting how to
configure the Kerberos probes if they can't automatically figure out
the location and flags for Kerberos on your system.
Andrew Deason [Tue, 8 Jun 2010 22:28:39 +0000 (17:28 -0500)]
GetVolume: do not wait for offlining volumes
In non-DAFS GetVolume, previously we waited for a volume with
vp->goingOffline set to go offline before we return. However, the
fileserver afsfileprocs.c case can treat the "going offline" case and
the "is offline" case identically, so there is no reason to wait. So
make the fileserver call a new GetVolume variant that does not wait.
Without this, all of the threads in the fileserver can potentially be
tied up by waiting for a volume to go offline, if the volume is taking
a long time to go offline due to an offline request following a client
slowly accessing the volume.
Change-Id: I58ae11e585852130154389d8df0567432cd0c2df
Reviewed-on: http://gerrit.openafs.org/2124 Reviewed-by: Derrick Brashear <shadow@dementia.org> Reviewed-by: Tom Keiser <tkeiser@sinenomine.net> Tested-by: Derrick Brashear <shadow@dementia.org>
Andrew Deason [Tue, 15 Jun 2010 17:33:48 +0000 (12:33 -0500)]
afscp: Correctly advertise local addresses
afscp was reporting its local address list in net-byte order, and then
giving that list as a response to RXAFSCB_WhoAreYou. Instead, convert
the addresses to host-byte order, since XDR takes care of endianness
foo.
Andrew Deason [Mon, 14 Jun 2010 18:28:37 +0000 (13:28 -0500)]
Fix tptserver and tvlserver install rules
Commit 00c37e8634b97dba3431804cea467a046be525d5 introduced a few
usages of 'ifeq' in cross-platform Makefiles, breaking the build when
not using GNU make. Fix this by making the tptserver and tvlserver
'install' and 'dest' targets behave more like the 'ptserver' and
'vlserver' ones, and correct the ptserver 'install' target while we
are here.
Change-Id: Ia3fd9149c0f18a96a9899a5dfde41e53a45102b7
Reviewed-on: http://gerrit.openafs.org/2160 Tested-by: Andrew Deason <adeason@sinenomine.net> Tested-by: Benjamin Kaduk <kaduk@mit.edu> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> Reviewed-by: Derrick Brashear <shadow@dementia.org> Tested-by: Derrick Brashear <shadow@dementia.org>
Russ Allbery [Mon, 14 Jun 2010 22:28:20 +0000 (15:28 -0700)]
Build util tests properly with make check
If one runs make check without previously running make at the top
level first, it didn't build the util test programs properly.
Recurse into subdirectories for make check as well, and add the
check, test, and tests targets to tests/util/Makefile.in
Andrew Deason [Thu, 20 May 2010 20:22:11 +0000 (15:22 -0500)]
ubik: add interface for reading during write locks
Add ubik_BeginTransReadAnyWrite, which allows for reading from the
database, even while there is a conflicting ubik write lock. Reads are
still blocked while the local database is updating due to a write
transaction commit.
Derrick Brashear [Thu, 10 Jun 2010 18:37:39 +0000 (14:37 -0400)]
rx mtu ping handling
engage mtu pings. only occur while a call is active but results are
cached per-peer. requires idle dead time to be in use, or does not
activate. (needed to time out the call, otherwise, keepalives will
succeed and the call will thus not hit regular "down server" timeout)
Derrick Brashear [Thu, 10 Jun 2010 15:41:23 +0000 (11:41 -0400)]
path mtu don't track nonsequenced packets
for the purpose of mtu discovery, we need a sequence number to
correlate if a large packet is acked. don't track sequence number
0 packets. a later change adds the mechanics needed for MTU pings
Simon Wilkinson [Sat, 12 Jun 2010 09:42:43 +0000 (10:42 +0100)]
libadmin: Don't dereference NULL pointer in cmd
If DoBosHostList ends up being called without the -server argument
in its command structure, then a printf will attempt to dereference
a NULL pointer to the -server field.
Simon Wilkinson [Sat, 12 Jun 2010 09:35:34 +0000 (10:35 +0100)]
fs: Can't use store behind data if pioctl errored
If the call to a pioctl returns an error, it's possible to reach
the end of the storebehind function and try and print an old, or
bogus, value from the pioctl data block.
Simon Wilkinson [Sat, 12 Jun 2010 09:26:09 +0000 (10:26 +0100)]
viced: CopyOnWrite2 shouldn't return undefined val
Unless CopyOnWrite2 encounters the condition where
(rdlen != length) || (wrlen !=length) it will never set a value
for the 'rc' return code, and so return with an undefined value.
Looking at the code, it looks like rc should be 0 in all other
situations, so this patch provides a default value.
Simon Wilkinson [Fri, 11 Jun 2010 23:23:22 +0000 (00:23 +0100)]
vol: open() needs mode if called with O_CREAT
If open() is called with a the O_CREAT flag, then it requires a
3rd argument, containing the mode with which to create the file.
On DARWIN (when we always use O_CREAT), and on other platforms
where the first call to open returned E_NOENT, we weren't doing this,
and so were presumably getting a random mode of whatever garbage was
on the stack.
Russ Allbery [Sat, 12 Jun 2010 23:07:52 +0000 (16:07 -0700)]
Avoid off-by-one error when saving the password in klog
When klog saved the password entered by the user to allow attempts
at multiple AFS principals without reprompting, it copied the whole
buffer according to the declared reply length into local storage.
This was done without regard to the local allocated storage size,
and was then nul-terminated without regard to the allocated storage
size. Both klog and Heimdal use a size of BUFSIZ for the reply
buffer by default, which meant that klog on Heimdal was writing past
the end of the allocated structure when nul-terminating the password.
Store our allocated buffer size in the struct and only copy at most
one fewer than that many characters, and then nul-terminate
accordingly.
(The assumption that BUFSIZ is always long enough is still bogus,
but that's larger surgery.)
Marc Dionne [Sun, 13 Jun 2010 00:43:25 +0000 (20:43 -0400)]
Linux s390x: replace AFS_64BIT_KERNEL with AFS_LINUX_64BIT_KERNEL
The s390x param.h file defines AFS_64BIT_KERNEL, but this looks to
be AIX specific, and some Linux headers expect AFS_LINUX_64BIT_KERNEL.
This causes many errors because we end up trying to use struct flock64
instead of struct flock.
Simon Wilkinson [Sun, 13 Jun 2010 00:44:27 +0000 (01:44 +0100)]
bucoord: Use mkstemp properly
Use mkstemp wherever we have it available, to silence warnings
about mktemp's safety.
When we do use mkstemp, use it properly. It doesn't return void,
it returns an open filehandle. Convert this filehandle into a FILE *,
rather than throwing it away, and leaking an open file descriptor.
Simon Wilkinson [Fri, 11 Jun 2010 22:50:29 +0000 (23:50 +0100)]
libadmin: Don't use undefined value
If IsValidCellHandle returns false, then we can jump to
fail_pts_GroupMemberRemove, and end up using a value for
ids.idlist_val which hasn't been defined. Fix this.
Simon Wilkinson [Fri, 11 Jun 2010 22:49:34 +0000 (23:49 +0100)]
Add support for clang compiler attributes
Rearrange the way that we define compiler attributes so that we
can define them for clang, too. Don't assume that clang will support
all of the attributes that gcc does, so split them up into separate
sections.
Simon Wilkinson [Fri, 11 Jun 2010 22:46:29 +0000 (23:46 +0100)]
Add AFS_NORETURN macro and use it
Add the AFS_NORETURN macro which can be used with gcc compatible
compilers to indicate that a particular funciton prototype will
not return control to the caller. This both improves code quality,
and helps with static analysis.
Use this to flag afsmon_Exit, db_panic, osi_Panic, Abort, Exit
and the error handlers for osi_Assert and our local assert fn
all as being noreturn.
Simon Wilkinson [Fri, 11 Jun 2010 22:33:07 +0000 (23:33 +0100)]
rxgen: Remove inlist from autogenerated code
The 'inlist' variable is only used by code that is #if 0, and never
emitted by the rxgen source. Remove the definition, and assignment,
to this variable.
Simon Wilkinson [Fri, 11 Jun 2010 21:25:35 +0000 (22:25 +0100)]
Changes to build with clang on Mac OS 10.5
clang defines __x86_64__ and doesn't define __i386__ when building
on a 64bit Leopard machine. Change the defines in param.h so we
can build on this platform.
Simon Wilkinson [Sat, 12 Jun 2010 21:59:23 +0000 (22:59 +0100)]
Linux: Fix set_cr_group_info and cr_group_info
Commit dc85abca renamed set_cr_group_info to afs_set_cr_group_info
and cr_group_info to afs_cr_group_info, but didn't catch all call
sites. In particular, those in the NFS translator, in non-keyring
code paths, and in the 2.4 code, were missed.
Thanks to Adam Megacz for the bug report on openafs-info.
Andrew Deason [Thu, 10 Jun 2010 16:51:57 +0000 (11:51 -0500)]
Do not set inUse for non-fileserver non-DAFS
Setting inUse in a volume header to anything besides 1 is a
DAFS-specific change. For non-DAFS, non-fileserver programs do not
touch inUse. Since inUse is not cleared for non-fileserver non-DAFS,
make sure not to set it for non-fileserver non-DAFS.
Andrew Deason [Fri, 11 Jun 2010 21:51:02 +0000 (16:51 -0500)]
vlclient: work with non-space whitespace
Make vlclient work with non-space whitespace separating arguments.
This also makes it cope with a trailing newline that fgets() gives us,
making this more intuitive to use.
Matt Benjamin [Thu, 27 May 2010 23:14:20 +0000 (19:14 -0400)]
windows cm_BeginDirOp add flags (nobuildtree)
Add a flags argument to cm_BeginDirOp, and define a flag
CM_DIROP_FLAG_NOBUILDTREE which asserts that the operation
being synchronized does not require scp->dirPlus to be
constructed.
Simon Wilkinson [Fri, 11 Jun 2010 09:48:37 +0000 (10:48 +0100)]
RX: Can't assert a void result
We can't assert(MUTEX_DESTROY(blah) == 0) when the MUTEX_DESTROY
macro already returns void (and asserts), as it does in the
pthread case. This fixes the build failure introduced by 53c9258cd7300c03be3f3e50003cad3dfc59baf3
Matt Benjamin [Tue, 8 Jun 2010 22:29:13 +0000 (18:29 -0400)]
rx service specific data
Adds rx_GetServiceSpecific and rx_SetServiceSpecific to the rx_service interface,
conforming to the equivalent calls in the rx_connection interface.
For consistency, the implementation strategy is the same. The intended
use is to more cleanly support server multiplexing within an RPC-based
test dispatch library.
Andrew Deason [Thu, 22 Oct 2009 03:16:38 +0000 (22:16 -0500)]
Break origin's callback for RXAFS_Rename target
When we RXAFS_Rename something, the status of the renamed FID can
sometimes change, and thus we break callbacks on it. Currently, however,
we do not break the callback for the originating client, even though the
status of the target changes and we do not return an AFSFetchStatus to
the caller.
Since the callback is not always broken for the target, it may not be
immediately obvious to client implementations to implicitly break the
target's callback. Since we do not have an explicit protocol
specification saying that the callback is implicitly broken, break the
callback for the origin client as well, to be safe.
Andrew Deason [Wed, 9 Sep 2009 20:56:26 +0000 (15:56 -0500)]
Avoid unnecessarily updating .. in SAFSS_Rename
Currently the .. entry for a directory is always recreated on a Rename
operation, even if the parent directory does not change. Now, avoid
altering the directory at all (including no COW nor DV bump nor vnode
modify time update) when we don't need to.
Jeffrey Altman [Wed, 9 Jun 2010 17:55:14 +0000 (13:55 -0400)]
Windows: Revise SMB QuerySecurityInfo for MS10-020
MS10-020 (http://support.microsoft.com/kb/980232) has caused
many problems for implementors of SMB 1.0 servers and applications
that call GetFileSecurity() without checking the return code to
determine if the call succeeded. The gist of the vulnerability
was that the SMB redirector would pass any buffer it received
to the application regardless of whether or not it was valid.
MS10-020 protects the applications by strictly validating the
SMB response data structure and the data in the security descriptor
that is returned.
The problem for SMB 1.0 server implementors is that there have
been at least three different protocol descriptions for
NT_TRANSACT_QUERY_SECURITY_DESC published over the last decade
and all of them are incomplete. Therefore, just about no one but
Microsoft has an SMB 1.0 server implementation that produces the
exact out that they are expecting to validate.
The end result is that in an attempt to protect applications from
crashing due to invalid input being passed in directly caused
dozens of applications to crash by not returning any security
descriptor data at all. Even when the applications didn't crash
they might not have been able to save their data. Cisco WAAS
and NetApp DataOnTap systems were most adversely affected and
they have had CIFS protocol licenses for many many years.
To fix OpenAFS here is what needed to be done:
1. Instead of returning a security descriptor that gives ownership
to the NUL SID, give it to the Everyone SID and set the flag
that states that everyone has full access.
2. Validate the input parameters. In particular, check to ensure
that the SMB file descriptor is valid and the file has not
been deleted.
3. Enforce the maximum output data and parameter counts.
4. Handle buffer overflow and buffertoosmall conditions
in the manner that Microsoft expects them to be handled.
In particular, note that the parameter data which is returned
in the SMB Data Region is not counted in the Data Count.
Even if MaxData is 0, we can still return parameters values
as long as MaxParm is large enough.
Andrew Deason [Fri, 21 May 2010 16:47:42 +0000 (11:47 -0500)]
Install pthreaded ptserver and vlserver
When --enable-pthreaded-ubik is specified, install the pthreaded
versions of ptserver and vlserver instead of the non-pthreaded
versions. Previously, the pthreaded versions were getting built but
not installed with 'make dest' or 'make install'.
Andrew Deason [Fri, 21 May 2010 16:19:53 +0000 (11:19 -0500)]
Move FreeBlock prototype to vlserver_internal.h
FreeBlock is only used in internal vlserver code and should not be
called by anything else; it should not be prototyped in a public
header. Move its prototype to go along with the other vlserver
internal prototypes.
Russ Allbery [Wed, 9 Jun 2010 01:40:11 +0000 (18:40 -0700)]
Add okv function to the TAP test library
Add an okv() varient of the ok() function that takes the arguments as
a va_list instead of as a variable argument list. This makes it easier
to reuse ok() when writing other tests.
Jeffrey Altman [Mon, 7 Jun 2010 22:18:39 +0000 (18:18 -0400)]
Windows: Detect if AFSCache is memory mapped to a new address
The Windows AFSCache paging file contains pointer addresses
that are only valid if the file is memory mapped at a specific
memory address. If the file is mapped at a new address, the
pointer values will be invalid and the service will crash with
an invalid memory access.
Check for address consistency and force the cache to be rebuilt
if the consistency is lost.
Andrew Deason [Tue, 8 Jun 2010 15:38:07 +0000 (10:38 -0500)]
Solaris: lookup "" like "."
At least on some versions of solaris, we can get passed an empty
string to afs_lookup, if the root directory is in AFS (e.g. after a
chroot). Interpret this as the same as looking up the "." entry;
otherwise we return ENOENT, implying that the "/" directory does not
exist, even if its subdirectories do.
FIXES 127356
Change-Id: I84283e78fbf33b946afaf3c80ef4a1a679e8fc93
Reviewed-on: http://gerrit.openafs.org/2096 Tested-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk> Reviewed-by: Derrick Brashear <shadow@dementia.org> Tested-by: Derrick Brashear <shadow@dementia.org>
Andrew Deason [Tue, 18 May 2010 16:39:21 +0000 (11:39 -0500)]
libafs: consistently hold vnode refs
Make all common libafs code call AFS_FAST_HOLD to hold an afs vnode
reference, instead of sometimes calling VN_HOLD(AFSTOV(tvc)) directly.
Make AFS_FAST_HOLD always call osi_vnhold, and have each platform
define osi_vnhold for their platform-specific quirks (as it was doing
before).
This way, if a platform has an osi_vnhold that is special somehow (on
solaris, we bump a VFS refcount if the vnode refcount goes from 0->1),
it will always be called on vnode references.
Andrew Deason [Mon, 7 Jun 2010 16:42:02 +0000 (11:42 -0500)]
AIX: make osi_procname a stub
'curproc', 'curthread', or other such conveniences do not exist on
AIX, so the current osi_procname implementation breaks the build.
Determining the current process name on AIX is, while possible,
difficult and error-prone. Since we only need the process name for
informational messages to users, don't bother trying to determine it,
and just return the empty string so we can build.
Andrew Deason [Mon, 7 Jun 2010 17:18:53 +0000 (12:18 -0500)]
Make lib/afs.exp in sys_depinstall
The AIX libafs uses lib/afs.exp to build, and libafs depends on
sys_depinstall. So, make lib/afs.exp in addition to
include/afs/afs.exp in sys_depinstall.
Jeffrey Altman [Thu, 3 Jun 2010 16:04:15 +0000 (12:04 -0400)]
Windows: Update fs newcell and add VIOCNEWCELL2
The Windows version of "fs newcell" did not accept any parameters
and behaved quite differently from the Unix version. Instead of
permitting new cell information to be added, the Windows version
simply forced the existing cell information to be reacquired.
This update adds a new pioctl, VIOCNEWCELL2, to support the
implementation of a Unix-style "fs newcell". The functionality
added here differs from the Unix version in the following ways:
1. "fs newcell" with no arguments is still accepted
in order to maintain compatibility with prior Windows
behavior.
2. "fs newcell -cell <cell> -dns" instructs the cache manager
to add the new cell but obtain the vldb server info from
DNS.
3. "fs newcell -cell <cell> ... -registry" instructs the cache
manager to add the new cell and also save the cell configuration
data in the registry for use the next time the service restarts.
4. The -vlport and -fsport options are accepted although the
-fsport value is currently unsupported by the cache manager.
Jeffrey Altman [Thu, 3 Jun 2010 15:59:45 +0000 (11:59 -0400)]
Windows: Freelance Import CellServDB
Add a new registry option that permits automatic generation of
Freelance mountpoints for every cell listed in the CellServDB info
(file and registry). "FreelanceImportCellServDB". This functionality
is only triggered when the afsd_service is started. The operation
is performed in the background by the daemon thread after the firewall
configuration is set.
Russ Allbery [Sat, 29 May 2010 21:45:04 +0000 (16:45 -0500)]
Comprehensive edit of Admin Guide chapter two (first 20%)
Update and revise chapter two (Issues in Cell Configuration and
Administration) of the Administration Guide for current AFS and current
computing concepts.
Remove references to an AFS-provided login utility and discuss local login
configuration for Kerberos more generically. Further clarify the role of
ssh in ensuring the user has access to files in AFS during remote login.
Improve the inode and namei discussion slightly. Update the setuid
discussion for the new default of disabling setuid for cells and for the
known security flaws in enabling setuid. Modernize terminology for DNS
around cell naming and remove the descriptions of TLDs. We can now assume
our target audience knows this stuff.
Move index terms into the appropriate section for what's being indexed in
a few more cases.
Lots of other, more minor wording changes and updates.
this code makes us work in the face of a sub1500 mtu network.
a subsequent commit is needed to make it more effective: attempts
to grow the mtu must be scheduled so we aren't forced to heavily
brute-force on failure to discover the exact mtu immediately;
for performance, we do want to grow to the real mtu.
Asanka Herath [Fri, 4 Jun 2010 03:58:42 +0000 (23:58 -0400)]
Windows: Support building a lite-client installer
If LITECLIENT is defined when invoking the WiX based MSI installer
build, we will build a light-weight client installer MSI. This
minimizes the size of the installer for users who only need client
functionality from OpenAFS.
The light-weight client excludes:
- Server components
- Control center components
- Administration utilities
- Debug symbols
Lite-client installer can also be built by invoking target wix-lite
from the root NTMakefile.
"fs checkservers" during cache creation can crash client
Many pioctl calls pass as soon as the afs_resourceinit_flag is set,
which happens relatively early, alas before the cell name is set.
PCheckServers and others need the latter and dereference NULL.
Easiest: set the cell name as soon as it is known and the dynroot initialisation
piggy-backed to it can be done.
Jeffrey Altman [Thu, 3 Jun 2010 15:54:04 +0000 (11:54 -0400)]
Windows: Fix usage of cm_FreeServerList
cm_FreeServerList will set the input variable to NULL if the
contents of the list could in fact be freed. If they could not
be freed, the individual entries are marked for deletion and will
not be subsequently used. Do not set the list variable to NULL
after calling cm_FreeServerList otherwise memory can be leaked.