mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-18 14:17:03 +01:00
gpg: Allow to freeze faked system time.
* g10/gpg.c (main): If the parameter for --faked-system-time ends with a '!', freeze time at the specified point. * common/gettime.c (gnupg_set_time): Allow to freeze the time at an arbitrary time instead of only the current time. * doc/gpg.texi: Update documentation for --faked-system-time. -- This patch allows the user to modify the behavior of the --faked-system-time option: by appending a '!' to the parameter, time in GnuPG will be frozen at the specified time, instead of advancing normally from that time onward. Signed-off-by: Damien Goutte-Gattat <dgouttegattat@incenp.org>
This commit is contained in:
parent
55c9212a23
commit
3daeef702b
@ -133,7 +133,7 @@ gnupg_set_time (time_t newtime, int freeze)
|
|||||||
else if (freeze)
|
else if (freeze)
|
||||||
{
|
{
|
||||||
timemode = FROZEN;
|
timemode = FROZEN;
|
||||||
timewarp = current;
|
timewarp = newtime == (time_t)-1 ? current : newtime;
|
||||||
}
|
}
|
||||||
else if (newtime > current)
|
else if (newtime > current)
|
||||||
{
|
{
|
||||||
|
@ -2748,6 +2748,9 @@ forth to @var{epoch} which is the number of seconds elapsed since the year
|
|||||||
1970. Alternatively @var{epoch} may be given as a full ISO time string
|
1970. Alternatively @var{epoch} may be given as a full ISO time string
|
||||||
(e.g. "20070924T154812").
|
(e.g. "20070924T154812").
|
||||||
|
|
||||||
|
If you suffix @var{epoch} with an exclamation mark (!), the system time
|
||||||
|
will appear to be frozen at the specified time.
|
||||||
|
|
||||||
@item --enable-progress-filter
|
@item --enable-progress-filter
|
||||||
@opindex enable-progress-filter
|
@opindex enable-progress-filter
|
||||||
Enable certain PROGRESS status outputs. This option allows frontends
|
Enable certain PROGRESS status outputs. This option allows frontends
|
||||||
|
14
g10/gpg.c
14
g10/gpg.c
@ -3493,10 +3493,20 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
case oFakedSystemTime:
|
case oFakedSystemTime:
|
||||||
{
|
{
|
||||||
time_t faked_time = isotime2epoch (pargs.r.ret_str);
|
size_t len = strlen (pargs.r.ret_str);
|
||||||
|
int freeze = 0;
|
||||||
|
time_t faked_time;
|
||||||
|
|
||||||
|
if (len > 0 && pargs.r.ret_str[len-1] == '!')
|
||||||
|
{
|
||||||
|
freeze = 1;
|
||||||
|
pargs.r.ret_str[len-1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
faked_time = isotime2epoch (pargs.r.ret_str);
|
||||||
if (faked_time == (time_t)(-1))
|
if (faked_time == (time_t)(-1))
|
||||||
faked_time = (time_t)strtoul (pargs.r.ret_str, NULL, 10);
|
faked_time = (time_t)strtoul (pargs.r.ret_str, NULL, 10);
|
||||||
gnupg_set_time (faked_time, 0);
|
gnupg_set_time (faked_time, freeze);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user