1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

w32: Move socketdir to LOCAL_APPDATA

* common/homedir.c (is_gnupg_default_homedir): Use standard_homedir
instead of the constant which makes a difference on Windows.
(_gnupg_socketdir_internal) [W32]: Move the directory to LOCAL_APPDATA.
(gnupg_cachedir): Remove unsued function.

* common/sysutils.c (gnupg_rmdir): New.
* tools/gpgconf.c (main): s/rmdir/gnupg_rmdir/.
--

That is actually a more correct directory than APPDATA.  This fixes
a problem with installations where the APPDATA is non a network drive
and the resulting socket filename is truncated in our socket helper
function (because we use sockaddr also for our local socket
emulation on Windows).

LOCAL_APPDATA is expected to be on the local box and thus in the
majority of cases the resulting socket file name will be short enough.

GnuPG-bug-id: 5537
Signed-off-by: Werner Koch <wk@gnupg.org>
Backport-from-master: 0802cbb59b
This commit is contained in:
Werner Koch 2021-08-11 11:50:41 +02:00
parent 013f2e4672
commit 4dfa951a0a
No known key found for this signature in database
GPG key ID: E3FDFF218E45B72B
5 changed files with 160 additions and 77 deletions

View file

@ -903,7 +903,7 @@ main (int argc, char **argv)
log_info ("ignoring request to remove non /run/user socket dir\n");
else if (opt.dry_run)
;
else if (rmdir (socketdir))
else if (gnupg_rmdir (socketdir))
{
/* If the director is not empty we first try to delet
* socket files. */
@ -929,7 +929,7 @@ main (int argc, char **argv)
gnupg_remove (p);
xfree (p);
}
if (rmdir (socketdir))
if (gnupg_rmdir (socketdir))
gc_error (1, 0, "error removing '%s': %s",
socketdir, gpg_strerror (err));
}