mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
Keep on hacking on g13. A simple --create and --mount does now work.
A hacked up encfs is required.
This commit is contained in:
parent
9b345f2a8a
commit
536b6ab09f
24 changed files with 1801 additions and 26 deletions
|
@ -1,3 +1,7 @@
|
|||
2009-10-13 Werner Koch <wk@g10code.com>
|
||||
|
||||
* exechelp.c (gnupg_kill_process): New.
|
||||
|
||||
2009-09-29 Werner Koch <wk@g10code.com>
|
||||
|
||||
* exechelp.c (create_inheritable_pipe): Rename to
|
||||
|
|
|
@ -1102,3 +1102,28 @@ gnupg_spawn_process_detached (const char *pgmname, const char *argv[],
|
|||
return 0;
|
||||
#endif /* !HAVE_W32_SYSTEM*/
|
||||
}
|
||||
|
||||
|
||||
/* Kill a process; that is send an appropriate signal to the process.
|
||||
gnupg_wait_process must be called to actually remove the process
|
||||
from the system. An invalid PID is ignored. */
|
||||
void
|
||||
gnupg_kill_process (pid_t pid)
|
||||
{
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
/* Older versions of libassuan set PID to 0 on Windows to indicate
|
||||
an invalid value. */
|
||||
if (pid != (pid_t) INVALID_HANDLE_VALUE && pid != 0)
|
||||
{
|
||||
HANDLE process = (HANDLE) pid;
|
||||
|
||||
/* Arbitrary error code. */
|
||||
TerminateProcess (process, 1);
|
||||
}
|
||||
#else
|
||||
if (pid != (pid_t)(-1))
|
||||
{
|
||||
kill (pid, SIGTERM);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -86,6 +86,12 @@ gpg_error_t gnupg_spawn_process_fd (const char *pgmname,
|
|||
gpg_error_t gnupg_wait_process (const char *pgmname, pid_t pid, int *exitcode);
|
||||
|
||||
|
||||
/* Kill a process; that is send an appropriate signal to the process.
|
||||
gnupg_wait_process must be called to actually remove the process
|
||||
from the system. An invalid PID is ignored. */
|
||||
void gnupg_kill_process (pid_t pid);
|
||||
|
||||
|
||||
/* Spawn a new process and immediatley detach from it. The name of
|
||||
the program to exec is PGMNAME and its arguments are in ARGV (the
|
||||
programname is automatically passed as first argument).
|
||||
|
|
|
@ -1262,22 +1262,22 @@ iobuf_is_pipe_filename (const char *fname)
|
|||
|
||||
|
||||
/* Either open the file specified by the file descriptor FD or - if FD
|
||||
is GNUPG_INVALID_FD - the file with name FNAME. As of now MODE is
|
||||
assumed to be "rb" if FNAME is used. In contrast to iobuf_fdopen
|
||||
the fiel descriptor FD will not be closed during an iobuf_close. */
|
||||
is -1, the file with name FNAME. As of now MODE is assumed to be
|
||||
"rb" if FNAME is used. In contrast to iobuf_fdopen the file
|
||||
descriptor FD will not be closed during an iobuf_close. */
|
||||
iobuf_t
|
||||
iobuf_open_fd_or_name (gnupg_fd_t fd, const char *fname, const char *mode)
|
||||
iobuf_open_fd_or_name (int fd, const char *fname, const char *mode)
|
||||
{
|
||||
iobuf_t a;
|
||||
|
||||
if (fd == GNUPG_INVALID_FD)
|
||||
if (fd == -1)
|
||||
a = iobuf_open (fname);
|
||||
else
|
||||
{
|
||||
gnupg_fd_t fd2;
|
||||
int fd2;
|
||||
|
||||
fd2 = dup (fd);
|
||||
if (fd2 == GNUPG_INVALID_FD)
|
||||
if (fd2 == -1)
|
||||
a = NULL;
|
||||
else
|
||||
a = iobuf_fdopen (fd2, mode);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue