From d11ca53be7d80096c21b777ec04e1874bed870d9 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Wed, 30 Dec 2009 11:44:39 -0500 Subject: [PATCH] Make DAFS 'bos salvage' work in restricted mode bosserver currently has code to specifically allow 'bos salvage'-initiated salvages to run when in restricted mode. This only specifically tests for running salvager, though, and so fails when 'bos salvage' is run against a DAFS fileserver and tries to run 'salvageserver -client' instead. Test for 'salvageserver -client' as well, so we can run 'bos salvage' for DAFS fileservers in restricted mode. Change-Id: I27052a440ea8d6347a9d86e4a1f1a7131a277b0b Reviewed-on: http://gerrit.openafs.org/1048 Tested-by: Andrew Deason Reviewed-by: Derrick Brashear --- src/bozo/bosoprocs.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bozo/bosoprocs.c b/src/bozo/bosoprocs.c index 66e10f54cb..90e935045c 100644 --- a/src/bozo/bosoprocs.c +++ b/src/bozo/bosoprocs.c @@ -775,10 +775,16 @@ SBOZO_CreateBnode(struct rx_call *acall, char *atype, char *ainstance, goto fail; } if (bozo_isrestricted) { + const char *salvpath = AFSDIR_CANONICAL_SERVER_SALVAGER_FILEPATH; + /* for DAFS, 'bos salvage' will pass "salvageserver -client" instead */ + const char *salsrvpath = AFSDIR_CANONICAL_SERVER_SALSRV_FILEPATH " -client "; + + /* still allow 'bos salvage' to work */ if (strcmp(atype, "cron") || strcmp(ainstance, "salvage-tmp") || strcmp(ap2, "now") - || strncmp(ap1, AFSDIR_CANONICAL_SERVER_SALVAGER_FILEPATH, - strlen(AFSDIR_CANONICAL_SERVER_SALVAGER_FILEPATH))) { + || (strncmp(ap1, salvpath, strlen(salvpath)) + && strncmp(ap1, salsrvpath, strlen(salsrvpath)))) { + code = BZACCESS; goto fail; }