Commit Graph

6383 Commits

Author SHA1 Message Date
Derrick Brashear
5f688ff4bd rx don't exit
exiting in library code is antisocial. if rx encounters an error
which cannot be returned and would otherwise indicate a service thread
has gone away, assert.

Reviewed-on: http://gerrit.openafs.org/668
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Tom Keiser <tkeiser@sinenomine.net>
2009-10-21 16:49:41 -07:00
Simon Wilkinson
304f21cb70 Fix fall out from removal of memset casts
In places where we're doing pointer arithmetic, we must cast to (char
*), because pointer arithmetic on a void * isn't permitted by the C
standard. Sadly gcc lets us get away with it 'for convenience'.

Reinstate the necessary casts.

Reviewed-on: http://gerrit.openafs.org/707
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-21 16:35:02 -07:00
Jeffrey Altman
a8a9c3c0f2 Windows: Update MSI installer properties
Reference useful web pages such as docs.openafs.org for help,
www.openafs.org/windows.html for upgrade info, etc.

Reviewed-on: http://gerrit.openafs.org/706
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-21 15:53:14 -07:00
Jeffrey Altman
32b2f18628 Windows: ports in the cache manager are stored in network byte order
When assigning ports from SRV/AFSDB lookups, convert to network
byte order when assigning them to cm_server objects.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/705
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-21 15:44:31 -07:00
Asanka Herath
2a9263a451 Windows: Set the ARPINSTALLLOCATION property when installing
The WiX based Windows Installer package for OpenAFS should set
the ARPINSTALLLOCATION property when installing.  This property
contains the main installation directory for the product and is
necessary for Windows Logo compliance.

Reviewed-on: http://gerrit.openafs.org/704
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-21 15:19:41 -07:00
Simon Wilkinson
b9eaf43bbe Don't cast the pointer past to memset
memset() takes a void * as it's first argument. Don't explicitly cast
what we're passing in to (char *), as this may mask other errors.

Reviewed-on: http://gerrit.openafs.org/701
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-21 11:34:12 -07:00
matt@linuxbox.com
5d5d180716 Make typedefs of AFS_UCRED and AFS_PROC with renaming
Make typedefs of AFS_UCRED and AFS_PROC, with a corresponding name change.
The names afs_ucred_t and afs_proc_t are chosen since these appear to be
the best available choices.  The names cannot actually collide with anything
which POSIX might later introduce.  For UKERNEL, the preprocessor is used
to redirect references.  This seems not easily avoidable at present.

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/645
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-21 11:08:15 -07:00
Andrew Deason
bf9c51a4e1 HPUX: Do not sigwait on critical signals
On HPUX, it is possible for 'critical' signals such as SEGV, ABRT, etc
to be delivered to the softsig thread when we sigwait(). The current
code marks these as 'fatal' and just exit(0)s when they are received,
preventing us from getting cores in the case of a SEGV, ABRT, etc.

To work around this and keep behavior on other platforms the same, just
do not wait on 'critical' signals on HPUX in the softsig thread.

Reviewed-on: http://gerrit.openafs.org/693
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-21 11:05:22 -07:00
Jeffrey Altman
4141bf4084 Windows: Add registry entries for rx_SetMinPeerTimeout, rx_SetMaxRecvWindow, rx_SetMaxSendWindow
Permit the new rx settings to be configured via the registry and
set at startup.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/700
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-21 11:03:43 -07:00
Jeffrey Altman
c4263054a0 Add rx_SetMinPeerTimeout and rx_GetMinPeerTimeout
Permit the minimum peer timeout value to be adjusted at runtime.
The default remains 350ms.

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/699
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-21 10:58:45 -07:00
Simon Wilkinson
54d9c6cb34 Use real names for page lock operations
Call a spade a spade. Don't use macros to rename lock_page as LockPage,
and unlock_page as UnlockPage. Instead use the same names as the kernel,
which makes it a lot easier for people familiar with kernel code to read
ours.

Reviewed-on: http://gerrit.openafs.org/692
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-21 10:52:15 -07:00
Jeffrey Altman
040712a744 Windows: Modify afscreds.exe and afs_config.exe to be UAC compatible
afscreds.exe:
 1. disable the drive mapping and advanced tabs.
 2. on exit, remove the option to stop the service.

afs_config.exe:
 1. disable the drive mapping tab

Removing this functionality by default will address some of the
problems while permitting users that wish to continue using these tools
to do so.   The drive mapping tab can be re-enabled setting the registry
value to be non-zero:

  {HKCU,HKLM}\Software\OpenAFS\Client DWORD "ShowMountTab"

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/663
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-21 10:50:58 -07:00
Jeffrey Altman
ee7399fa37 Windows: Do not permit infinite attempts to obtain a pioctl file handle
The recent change to detect sharing violations and initiate retries
permits infinite attempts.  Change this to a limit of 100 attempts
and increase the sleep period between attempts from 1ms to 100ms.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/697
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-21 07:36:31 -07:00
Jeffrey Altman
2e9dc9ee20 Windows: digital signatures are required for resource dlls
Windows 7 logo requirements state that all dlls including
resource only dlls be digitally signed.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/698
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-21 06:24:22 -07:00
Jeffrey Altman
7673b2450c Windows: Adjust error return values
Do not return STATUS_TIMEOUT to the smb redirector, doing so
results in an undesireable disconnect.

Map RXKADNOAUTH to STATUS_CLOCK_SKEW as that is the most
frequent cause of rx level authorization failures.

Map CM_ERROR_UNKNOWN to access denied since there is no
better error choice.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/661
Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
Tested-by: Asanka Herath <asanka@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-20 21:14:24 -07:00
Derrick Brashear
310cec9933 rx window size increase
window size was previously pushed to 64; push to 128. as this increases memory
use, anything further should be arguably tied to rx-using-program's
resource allocation preferences, e.g. fileserver -LL should be willing to
up this

Reviewed-on: http://gerrit.openafs.org/549
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-20 15:05:37 -07:00
Derrick Brashear
b8e3de897a afscp warnings cleanup
make the copy of afscp in src/tests compile with fewer warnings
(and provide needed prototype for RXAFSCB_ExecuteRequest)

Reviewed-on: http://gerrit.openafs.org/694
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-20 15:02:35 -07:00
Jeffrey Altman
cc112e7a59 prevent rx peer timeout from reaching 0.0 seconds
The rx peer timeout is computed from the round trip time
calculation.  It traditionally has had a lowerbound of 350ms.
The computation in rxi_ComputeRoundTripTime() was incorrect
and instead used 350ms as an upperbound.

rxi_ComputeRoundTripTime() had a second problem wherein if
the actually RTT is shorter than the resolution of the clock
then the RTT would quickly approach 0.0 seconds.  Enforce
a lowerbound of 1ms if the RTT for a given packet appears
to be 0.0 seconds.

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/696
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-20 13:54:19 -07:00
Jeffrey Altman
e7e057346f Rx warning removal
This patch set removes many but not all of the warnings
in the rx library.

 - use AFS_PTR_FMT in dpf debugging output

 - fix many signed vs unsigned warnings

 - on Windows, the first parameter to select() is ignored.
   Passing an osi_socket produces an unnecessary warning.

 - In rx_SlowReadPacket and rx_SlowWritePacket, use 'r' the
   unsigned value for internal computation and 'resid' for
   holding the original value.  This avoids many signed vs
   unsigned warnings.

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/695
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-20 13:53:20 -07:00
Jeffrey Altman
c188acf396 Windows: AFS_PTR_FMT is just 'p'
The printf format specification for a pointer of any size is
just 'p'.  The 'I' is only to be used for [duox].

Reviewed-on: http://gerrit.openafs.org/690
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-20 12:18:46 -07:00
Andrew Deason
840e4d2123 Avoid 'static __inline' on HPUX
'static __inline' functions on HPUX can segfault the /opt/ansic compiler
(unless we lose debugging symbols). So, just use 'static' for those
functions on HPUX. Also revert a9368a6c3d,
so we get a static inline function on other platforms.

Reviewed-on: http://gerrit.openafs.org/691
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-20 10:27:57 -07:00
Simon Wilkinson
a26f10a01a Remove pageoff macro
The pageoff macro is now unused. Remove it.

Reviewed-on: http://gerrit.openafs.org/689
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-20 05:58:38 -07:00
Jeffrey Altman
bd011aeee7 Add server prefix to bumon.xg; avoid rx_call * vs rx_connection * warning
When compiling src/bubasics/bumon.ss.c a warning would be produced
due to an rx_call* being passed into BC_Print which in its client
form requires an rx_connection*.  The server implementation and client
stub each were called BC_Print because there was no server prefix
specified in bumon.xg.  Add prefix 'S' and update bucoord/server.c
to match.

Reviewed-on: http://gerrit.openafs.org/686
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 16:42:58 -07:00
Simon Wilkinson
3eec9fa770 Return both error codes for rxfs_fetchInit
The FetchStore refactoring was causing the result from rx_EndCall to
be discarded. This change will cause that to be returned to the caller
if rx_Error() returns 0

Reviewed-on: http://gerrit.openafs.org/687
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 16:40:25 -07:00
Simon Wilkinson
6f2ce4cdc2 Always unlock pages when returning from writepage
Writepage has a return path which returns an error with a locked
page. However, all returns that are not AOP_WRITEPAGE_ACTIVATE must
unlock their pages - using this codepath would leave a stray page lock,
which would eventually hang the machine.

The logic behind the -EIO return was also incorrect. In the Linux page
cache model, truncates simply reduce the size recorded in the inode. If
there are pages pending writeback then they may still have writepage() called
upon them - it's up to the writepage routine to discard the write
request (rather than returning an error)

Reviewed-on: http://gerrit.openafs.org/685
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 16:39:57 -07:00
Andrew Deason
ebf6516db2 Fix a couple more unlink()s in vol-salvage.c
There are a couple more unlink() calls in vol-salvage.c that were using
relative paths. Fix them to use absolute paths and to log a warning if
the unlink() fails.

Reviewed-on: http://gerrit.openafs.org/684
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 14:48:20 -07:00
Asanka Herath
6b0e4039c6 Windows: Add a token status icon to the NIM plug-in
The Network Identity Manager plug-in for OpenAFS replaces
afscreds.exe for token management.  However, unlike afscreds.exe,
the plug-in did not indicate the status of AFS tokens using an
icon in the notification area.

This patch adds a token status icon to the plug-in so that while
the plug-in is used, a familiar padlock icon in the notification
area will indicate the status of tokens as well as the OpenAFS
service.

There are four possible states indicated by the icons:

- No tokens: indicated by a padlock with a bright red 'X' beside
  it.

- At least one valid token: indicated by a normal padlock.

- Service is not running: indicated by a grayed out padlock with
  a black square beside it.

- Service error: indicated by a padlock broken in half.

The 'Service error' state means that the OpenAFS client service
is technically running (as reported by Windows), but is not
responding to requests.

In addition to the icon, hovering the mouse cursor over the icon
will show details about the current state (such as the list of
cells for which valid tokens exist) and the version of OpenAFS
running on the machine.

Reviewed-on: http://gerrit.openafs.org/683
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-19 14:16:50 -07:00
Claudio Bisegni
edbef134b7 AFSPreference Pane Mounts View refresh issue
Resolved the bug that prevented to show the link description after it was added.
Now the table is refreshed at any operation(add/remove).

Reviewed-on: http://gerrit.openafs.org/682
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 11:08:31 -07:00
Claudio Bisegni
e82f3b210e OpenAFS Preference Pane 64bit and Symbolic Link features implemented.
Now the OpenAFS preference pane is compiled with 32 and 64 bit snowleopard support, so the preference
windows is no more restarted in 32 bit mode.
The tab for symbolic link creation has been implemented. Now the user can create and delete link.
For create a link both name and destination path must be set. AFSBackgrounder has been updated to
manager in a separate thread the link creation and destroy operation, according to the vaule of
checkbox "Enable Symbolic Link" in "Mounts" tab.

Reviewed-on: http://gerrit.openafs.org/677
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 05:39:44 -07:00
Andrew Deason
67395a7b6a Prototype encode_krb5_enc_tkt_part for aklog
Prototype encode_krb5_enc_tkt_part in aklog_main.c, since it is a
private interface so we don't get a prototype from the krb5 headers.

Reviewed-on: http://gerrit.openafs.org/680
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 05:35:53 -07:00
Andrew Deason
bb7f31bc3c Fix format warnings in tviced/state_analyzer.c
state_analyzer.c assumes subtracting two char*s will result in an
unsigned int, which can cause warnings. Lacking a portable format
specifier, just use %ld and cast to long.

Reviewed-on: http://gerrit.openafs.org/681
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 05:35:21 -07:00
Andrew Deason
9818e3dce9 Fix a couple of size_t warnings
fsprobe/fsprobe.c and kauth/ka-forwarder.c were trying to print size_t's
without using AFS_SIZET_FMT. Fix that.

Reviewed-on: http://gerrit.openafs.org/678
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 05:33:27 -07:00
Andrew Deason
3dbee6f66d Prototype ka_log
Prototype ka_log in kauth/kalog.h to prevent warnings. While we're at
it, only prototype kalog_log and kalog_Init when they actually get
implemented.

Reviewed-on: http://gerrit.openafs.org/679
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-19 05:27:54 -07:00
Simon Wilkinson
9bbe16d330 Fix warnings in tviced
Prototype hpr_Initialize and hpr_End to remove warnings in the tviced
build.

Reviewed-on: http://gerrit.openafs.org/675
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-18 07:36:04 -07:00
Andrew Deason
c9dc69afae Log error messages in volser i/o errors
Currently, in various places in src/volser/, we log/print an error
message when some disk i/o error occurs, but we don't log what error was
returned. Log that little bit more info to make debugging easier in some
cases.

Reviewed-on: http://gerrit.openafs.org/671
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-18 07:32:19 -07:00
Simon Wilkinson
c4f190ca60 More warning fixes for kauth
Resolve more minor warnings from the kauth directory.

*) kaux_read takes an unsigned for the number of failures
*) The COUNT_REQ macro generates an unused variable (this_op)
*) kas is missing some headers
*) Add some more prototypes to kauth_internal.h
*) Add the standard boilerplate to kauth_internal.h
*) recvfrom takes a socklen_t * as its 6th argument

This make kaprocs.c, kaauxdb.c, kas.c, klog.c, and ka-forwarder.c
warning clean. Mark them as such.

Reviewed-on: http://gerrit.openafs.org/673
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-18 06:14:13 -07:00
Simon Wilkinson
3064879c8d Update warning management
This change tidies up after the recent slew of warning reduction. It
updates README.WARNINGS to reflect the current state of the tree,
disables warnings for a couple of files that are now warning clean,
and ensures that the libuafs and libafsrpc Makefiles match the state
of the rest of the tree in terms of which warnings are enabled.

Reviewed-on: http://gerrit.openafs.org/672
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-18 06:13:58 -07:00
Simon Wilkinson
7de8be52f5 Use ranlib -c for Mac OS X Leopard
Building with --enable-demand-attach-fs requires that ranlib -c be
used on Leopard (it is already the default for Tiger)

Reviewed-on: http://gerrit.openafs.org/676
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-18 05:55:15 -07:00
Simon Wilkinson
20a5b58e23 afs_Conn must be called within the analyze loop
afs_Analyze calls afs_PutConn, so each pass through the
afs_Analyze loop must call afs_Conn to get a new connection handle.

afs_CacheStoreVCache (part of the fetchstore refactoring) wasn't doing
this, and so producing garbage data upon retries.

Reviewed-on: http://gerrit.openafs.org/674
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-17 16:19:14 -07:00
Jeffrey Altman
f3d5b94f2e Windows: Always compute time remaining in cm_Analyze
In cm_Analyze, the time remaining for processing the request
is used to determine if a retry should requested upon return.
If the request's CM_REQ_NORETRY flag is set, cm_Analyze can
still permit a retry if a new rx connection is to be forced.
This cannot happen if the time remaining is not calculated
when the CM_REQ_NORETRY flag is set.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/670
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-16 22:15:22 -07:00
Jeffrey Altman
2285341b5f Windows: mark volume status online during cm_MergeStatus
During cm_MergeStatus, if the volume status is not vl_online
mark it vl_online.  The volume must be online because an
AFSFetchStatus was just processed.  This change reduces the
amount of work that must be performed by the daemon thread's
volume status check.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/669
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-16 22:14:43 -07:00
Marc Dionne
3abc87a5a9 Linux: kmem_cache_create fix and cleanup
Fix the kmem_cache constructor function to match the current
expected prototype, and cleanup related code.  This has been wrong
for a while, but since we were just passing extra parameters the
only effect was to generate a warning.

- Add a new configure test to detect the new constructor function
signature
- Define the older versions of the constructor in osi_compat.h,
making them call the current version
- Move a few compatibility #defines to osi_compat.h

Reviewed-on: http://gerrit.openafs.org/657
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-16 14:05:24 -07:00
Andrew Deason
508bcd69b5 Fix rxgen-generated warnings
Prevent rxgen from generating code that produces warnings at compile
time.

 * Add print_ifarg_with_cast().  Used within print_ifstat() to generate
   a member in an argument list complete with a type cast.  The type
   cast may be a pointer to the type or the type depending on the value
   of the 'ptr_to' parameter.

 * When print_ifstat() generates the output for an opaque vector, cast
   the object to 'caddr_t' as xdr_opaque() accepts an argument of type
   'caddr_t'.

 * When print_ifstat() generates the output for an opaque array, cast
   the object to 'char **' because xdr_bytes() accepts an argument of
   type 'char **'.

 * When print_ifstat() generates the output for any array that is not
   opaque or string, cast the object to 'caddr_t' because all of the
   xdr_XXX() functions other than xdr_opaque and xdr_bytes accept an
   argument of type 'caddr_t'.

 * When print_ifstat() generates the output for an alias, cast the
   output to a pointer to the specified type because xdr_<type> accepts
   an argument of type '<type> *'.

This addresses warnings generated when compiling fsint/Kvice.xdr.c and
fsint/afsint.xdr.c.

Reviewed-on: http://gerrit.openafs.org/664
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-16 13:11:02 -07:00
Derrick Brashear
fe68604f11 exit less
start cleanup of calls to exit scatter into library code. ugen_ callers handle
error returns correctly; rmtsys already deals with errors; and rx_pthread can
already deal with errors in the case that's fixed

Reviewed-on: http://gerrit.openafs.org/667
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-16 10:37:44 -07:00
Derrick Brashear
50313a72a9 snowleopard 64 bit warning death
make all errors from warnings when compiling on snowleopard die

as a note, the ukernel pid, and pthread self as id changes, probably
should be revisited, but for now i have changed nothing. it should
be a separate change.

Reviewed-on: http://gerrit.openafs.org/666
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-16 05:54:46 -07:00
Andrew Deason
58628eb745 Detect and use %zu for size_t when available
Commit db949b7fad was incorrect and
generated warnings on many platforms; we cannot determine the correct
format string for a size_t at compile-time. Instead use the %z length
modifier when we can detect that it is safe to use. Otherwise, fall back
to just %lu on Unix, since it is reasonable to assume
sizeof(size_t) == sizeof(unsigned long) on Unix.

Reviewed-on: http://gerrit.openafs.org/647
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-15 12:15:38 -07:00
Andrew Deason
1fa650cee2 Fix unitialized variable warning in cfghost.c
Initialize cellentry. It does not appear to be possible to actually hit
code that references an uninitialized cellentry, but the compiler can
still complain.

Reviewed-on: http://gerrit.openafs.org/665
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-15 05:03:29 -07:00
Jeffrey Altman
862390a987 Windows: AFSVolSync creationDate based readonly volume versioning
Implement readonly volume versioning based upon the .readonly
volume creation date as reported in the AFSVolSync output
parameter of every RXAFS RPC.

Whenever a new callback is obtained for an object stored within
a .readonly volume, the volume creation date is recorded in the
cm_volume object along with the callback expiration time and
a reference to the server that issued it.  These values are
used to determine if a callback is present when the cm_scache
object's volume creation date matches the cm_volume object's
volume creation date.  If there is no match, the cm_scache
object's individual callback information is used to determine
whether a callback has been registered.

This mechansism ensures that the whole-volume callback issued
in response to a RXAFS_FetchStatus request against a .readonly
volume can be applied to all objects that are cached from the
same version of the .readonly volume instance.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/654
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
Tested-by: Asanka Herath <asanka@secure-endpoints.com>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
2009-10-15 04:41:52 -07:00
Jeffrey Altman
0468b18058 Windows does not provide sys/wait.h
sys/wait.h was added to butm/file_tm.c by
patch set 789580d135
(gerrit 635)

Reviewed-on: http://gerrit.openafs.org/662
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-10-14 20:20:21 -07:00
Simon Wilkinson
2588289987 Fix checked builds with gcc4.2
Recent change sets removed the 'ignore-all-warnings' mode from a
number of files, in favour of using the implicit-function-declaration
pragma. Sadly, that pragma isn't available in gcc 4.2. Revert the
Makefile changes such that ignore all warnings is turned back on
for the affected files, and note this in README.WARNINGS

Reviewed-on: http://gerrit.openafs.org/639
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-14 17:09:26 -07:00