OpenAFS Master Repository branch, master, updated. BP-openafs-stable-1_8_x-539-g091e8e9
Gerrit Code Review
gerrit@openafs.org
Thu, 12 Mar 2020 23:51:33 -0400
The following commit has been merged in the master branch:
commit 091e8e9ca52e408c52e3310588d6c959a517a15c
Author: Andrew Deason <adeason@sinenomine.net>
Date: Fri Aug 23 12:21:54 2019 -0500
ubik: Introduce ubik_CallRock
In OpenAFS 1.0, the way we made dbserver RPC calls was to pass the
relevant RPC and arguments to ubik_Call()/ubik_Call_New(), which
coerced all of the RPC arguments into 'long's. To make this more
typesafe, in commit 4478d3a9 (ubik-call-sucks-20060703) most callers
were converted to use ubik_RPC_name()-style calls, which used
functions autogenerated by rxgen.
This latter approach, however, only lets us use the ubik_Call-style
site selection code with RPCs processed by rxgen; we can't insert
additional code to run before or after the relevant RPC.
To make our dbserver calls more flexible, but avoid coercing all of
our arguments into 'long's again, move back to the ubik_Call()-style
approach, but use actual typed arguments with a callback function and
a rock. Call it ubik_CallRock().
With this commit rxgen still generates the ubik_RPC_name()-style
stubs, but the stubs just call ubik_CallRock with a generated callback
function, instead of spitting out the equivalent of ubik_Call() in the
generated code itself.
To try to ensure that this commit doesn't incur any unintended extra
changes, make ubik_CallRock consist of the generated code that was
inside rxgen before this commit. This is almost identical to
ubik_Call, but not quite; consolidating these two functions can happen
in a future commit if desired.
Change-Id: I0c3936e67a40e311bff32110b2c80696414b52d4
Reviewed-on: https://gerrit.openafs.org/13987
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/libafsauthent/afsauthent.def | 1 +
src/libafsauthent/libafsauthent.la.sym | 1 +
src/rxgen/rpc_parse.c | 201 +++++++++++++++----------------
src/ubik/ubik.p.h | 9 ++
src/ubik/ubikclient.c | 120 +++++++++++++++++++
5 files changed, 228 insertions(+), 104 deletions(-)
--
OpenAFS Master Repository