aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Allbery <eagle@eyrie.org>2014-07-15 20:48:35 -0700
committerRuss Allbery <rra@stanford.edu>2014-07-15 21:11:07 -0700
commit4ad7d55ed55b83d7b0df6a408e3c6931725c4a99 (patch)
treefbfe73745bb49804cb463044261be3baea1725ac
parentc2112bf049d193c677335c94b477eb5cadb403ed (diff)
Fix wallet-backend parsing of expires
Fix wallet-backend parsing of the expires command to expect only one argument as the expiration. This was correctly documented in the wallet client man page, but not in wallet-backend, and it accepted two arguments (a date and time). However, Wallet::Server did not and would just ignore the time. Now wallet-backend correctly requires the date and time be passed as a single argument. Change-Id: I8e51a576ea8781502f4eb983462ceca867b002be Reviewed-on: https://gerrit.stanford.edu/1556 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
-rw-r--r--NEWS7
-rw-r--r--client/wallet.pod9
-rwxr-xr-xserver/wallet-backend9
-rwxr-xr-xtests/server/backend-t6
4 files changed, 20 insertions, 11 deletions
diff --git a/NEWS b/NEWS
index d0ac4c3..4cf12b0 100644
--- a/NEWS
+++ b/NEWS
@@ -52,6 +52,13 @@ wallet 1.1 (unreleased)
ACL renames are now recorded in the ACL history.
+ Fix wallet-backend parsing of the expires command to expect only one
+ argument as the expiration. This was correctly documented in the
+ wallet client man page, but not in wallet-backend, and it accepted two
+ arguments (a date and time). However, Wallet::Server did not and
+ would just ignore the time. Now wallet-backend correctly requires the
+ date and time be passed as a single argument.
+
The initial creation and membership of the ADMIN ACL during database
initialization or reinitialization is no longer recorded in the
acl_history table. (This is fallout from making a specific type of
diff --git a/client/wallet.pod b/client/wallet.pod
index d8b99b9..4b58bbf 100644
--- a/client/wallet.pod
+++ b/client/wallet.pod
@@ -274,10 +274,11 @@ If <expires> is not given, displays the current expiration of the object
identified by <type> and <name>, or C<No expiration set> if none is set.
The expiration will be displayed in seconds since epoch.
-If <date> is given, sets the expiration on the object identified by <type>
-and <name> to <date> and (if given) <time>. <date> must be in the format
-C<YYYY-MM-DD> and <time> in the format C<HH:MM:SS>. If <date> is the empty
-string, clears the expiration of the object.
+If <expires> is given, sets the expiration on the object identified by
+<type> and <name> to that date (and optionally time). <expires> must be
+in some format that can be parsed by the Perl Date::Parse module. Most
+common formats are supported; if in doubt, use C<YYYY-MM-DD HH:MM:SS>. If
+<expires> is the empty string, clears the expiration of the object.
Currently, the expiration of an object is not used.
diff --git a/server/wallet-backend b/server/wallet-backend
index a97c8ce..a2e6e6f 100755
--- a/server/wallet-backend
+++ b/server/wallet-backend
@@ -216,7 +216,7 @@ sub command {
check_args (2, 2, [], @args);
$server->destroy (@args) or failure ($server->error, @_);
} elsif ($command eq 'expires') {
- check_args (2, 4, [], @args);
+ check_args (2, 3, [], @args);
if (@args > 2) {
$server->expires (@args) or failure ($server->error, @_);
} else {
@@ -490,9 +490,10 @@ identified by <type> and <name>, or C<No expiration set> if none is set.
The expiration will be displayed in seconds since epoch.
If <date> is given, sets the expiration on the object identified by <type>
-and <name> to <date> and (if given) <time>. <date> must be in the format
-C<YYYY-MM-DD> and <time> in the format C<HH:MM:SS>. If <date> is the
-empty string, clears the expiration of the object.
+and <name> to <date> and (if given) <time>. <date> and <time> must be in
+some format that can be parsed by the Perl Date::Parse module. Most
+common formats are supported; if in doubt, use C<YYYY-MM-DD HH:MM:SS>. If
+<date> is the empty string, clears the expiration of the object.
Currently, the expiration of an object is not used.
diff --git a/tests/server/backend-t b/tests/server/backend-t
index f3c926a..2ed8404 100755
--- a/tests/server/backend-t
+++ b/tests/server/backend-t
@@ -3,13 +3,13 @@
# Tests for the wallet-backend dispatch code.
#
# Written by Russ Allbery <eagle@eyrie.org>
-# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
# The Board of Trustees of the Leland Stanford Junior University
#
# See LICENSE for licensing terms.
use strict;
-use Test::More tests => 1314;
+use Test::More tests => 1311;
# Create a dummy class for Wallet::Server that prints what method was called
# with its arguments and returns data for testing.
@@ -244,7 +244,7 @@ my %commands = (autocreate => [2, 2],
comment => [2, 3],
create => [2, 2],
destroy => [2, 2],
- expires => [2, 4],
+ expires => [2, 3],
get => [2, 2],
getacl => [3, 3],
getattr => [3, 3],