summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
65bded9)
* src/plugins/pgpcore/pgp_viewer.c
Kill gpg after 5 seconds wait
+2006-10-07 [colin] 2.5.3cvs20
+
+ * src/plugins/pgpcore/pgp_viewer.c
+ Kill gpg after 5 seconds wait
+
2006-10-07 [colin] 2.5.3cvs19
* src/plugins/pgpcore/pgp_viewer.c
2006-10-07 [colin] 2.5.3cvs19
* src/plugins/pgpcore/pgp_viewer.c
( cvs diff -u -r 1.1.2.28 -r 1.1.2.29 src/plugins/pgpcore/sgpgme.c; ) > 2.5.3cvs17.patchset
( diff -u /dev/null src/plugins/pgpcore/pgp_viewer.c; diff -u /dev/null src/plugins/pgpcore/pgp_viewer.h; ) > 2.5.3cvs18.patchset
( cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpcore/pgp_viewer.c; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpcore/pgp_viewer.h; ) > 2.5.3cvs19.patchset
( cvs diff -u -r 1.1.2.28 -r 1.1.2.29 src/plugins/pgpcore/sgpgme.c; ) > 2.5.3cvs17.patchset
( diff -u /dev/null src/plugins/pgpcore/pgp_viewer.c; diff -u /dev/null src/plugins/pgpcore/pgp_viewer.h; ) > 2.5.3cvs18.patchset
( cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpcore/pgp_viewer.c; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpcore/pgp_viewer.h; ) > 2.5.3cvs19.patchset
+( cvs diff -u -r 1.1.2.2 -r 1.1.2.3 src/plugins/pgpcore/pgp_viewer.c; ) > 2.5.3cvs20.patchset
MICRO_VERSION=3
INTERFACE_AGE=0
BINARY_AGE=0
MICRO_VERSION=3
INTERFACE_AGE=0
BINARY_AGE=0
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
#include <stddef.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <stddef.h>
#include <glib.h>
#include <glib/gi18n.h>
+#include <sys/types.h>
+#include <sys/wait.h>
#include "version.h"
#include "common/sylpheed.h"
#include "version.h"
#include "common/sylpheed.h"
#ifndef G_OS_WIN32
gchar *cmd = g_strdup_printf("gpg --recv-keys %s", sig->fpr);
int res = 0;
#ifndef G_OS_WIN32
gchar *cmd = g_strdup_printf("gpg --recv-keys %s", sig->fpr);
int res = 0;
+
+ pid = fork();
+ if (pid == -1) {
+ res = -1;
+ } else if (pid == 0) {
+ /* son */
+ res = system(cmd);
+ _exit(res);
+ } else {
+ int status = 0;
+ time_t start_wait = time(NULL);
+ res = -1;
+ do {
+ if (waitpid(pid, &status, WNOHANG) == 0 || !WIFEXITED(status)) {
+ usleep(200000);
+ } else {
+ res = WEXITSTATUS(status);
+ break;
+ }
+ if (time(NULL) - start_wait > 5) {
+ debug_print("SIGTERM'ing gpg\n");
+ kill(pid, SIGTERM);
+ }
+ if (time(NULL) - start_wait > 6) {
+ debug_print("SIGKILL'ing gpg\n");
+ kill(pid, SIGKILL);
+ break;
+ }
+ } while(1);
+ }
if (res == 0) {
TEXTVIEW_INSERT(_(" This key has been imported to your keyring.\n"));
} else {
if (res == 0) {
TEXTVIEW_INSERT(_(" This key has been imported to your keyring.\n"));
} else {