diff options
Diffstat (limited to 'package/pptp/patches/100-signal_cleanup.patch')
-rw-r--r-- | package/pptp/patches/100-signal_cleanup.patch | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/package/pptp/patches/100-signal_cleanup.patch b/package/pptp/patches/100-signal_cleanup.patch deleted file mode 100644 index cb3a94f2a..000000000 --- a/package/pptp/patches/100-signal_cleanup.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- a/pptp.c -+++ b/pptp.c -@@ -60,6 +60,7 @@ - int syncppp = 0; - int log_level = 1; - int disable_buffer = 0; -+pid_t callmgr_pid = 0; - - struct in_addr get_ip_address(char *name); - int open_callmgr(struct in_addr inetaddr, char *phonenr, int argc,char **argv,char **envp, int pty_fd, int gre_fd); -@@ -115,6 +116,8 @@ sigjmp_buf env; - /*** signal handler ***********************************************************/ - void sighandler(int sig) - { -+ fprintf(stderr, "Got signal, pid=%d\n", callmgr_pid); -+ fflush(stderr); - siglongjmp(env, 1); - } - -@@ -330,6 +333,14 @@ int main(int argc, char **argv, char **e - parent_pid = 0; /* don't kill pppd */ - } - -+ if (sigsetjmp(env, 1)!= 0) goto shutdown; -+ -+ signal(SIGINT, sighandler); -+ signal(SIGTERM, sighandler); -+ signal(SIGKILL, sighandler); -+ signal(SIGCHLD, sighandler); -+ signal(SIGUSR1, sigstats); -+ - do { - /* - * Open connection to call manager (Launch call manager if necessary.) -@@ -360,13 +371,6 @@ int main(int argc, char **argv, char **e - if (rc != 0) perror("prctl"); - #endif - inststr(argc, argv, envp, buf); -- if (sigsetjmp(env, 1)!= 0) goto shutdown; -- -- signal(SIGINT, sighandler); -- signal(SIGTERM, sighandler); -- signal(SIGKILL, sighandler); -- signal(SIGCHLD, sighandler); -- signal(SIGUSR1, sigstats); - - /* Do GRE copy until close. */ - pptp_gre_copy(call_id, peer_call_id, pty_fd, gre_fd); -@@ -375,6 +379,8 @@ shutdown: - /* on close, kill all. */ - if(launchpppd) - kill(parent_pid, SIGTERM); -+ if (callmgr_pid) -+ kill(callmgr_pid, SIGTERM); - close(pty_fd); - close(callmgr_sock); - exit(0); -@@ -407,7 +413,7 @@ int open_callmgr(struct in_addr inetaddr - struct sockaddr_un where; - const int NUM_TRIES = 3; - int i, fd; -- pid_t pid; -+ pid_t pid = 0; - int status; - /* Open socket */ - if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { -@@ -434,6 +440,7 @@ int open_callmgr(struct in_addr inetaddr - launch_callmgr(inetaddr, phonenr, argc, argv, envp); - } - default: /* parent */ -+ callmgr_pid = pid; - waitpid(pid, &status, 0); - if (status!= 0) - fatal("Call manager exited with error %d", status); |