summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2012-09-25 20:49:22 +0200
committerJelmer Vernooij <jelmer@samba.org>2012-09-25 20:59:09 +0200
commitfa332b71dc71d23f1475ed6c25a6376934ab652a (patch)
tree1d260e1a86c56bd027ce2c6f2d74ade32ac9bb16
parentc034ff7b1516f827ab4538613ec98daa170d9f25 (diff)
downloadsamba-fa332b71dc71d23f1475ed6c25a6376934ab652a.tar.gz
samba-fa332b71dc71d23f1475ed6c25a6376934ab652a.tar.bz2
samba-fa332b71dc71d23f1475ed6c25a6376934ab652a.zip
s4-python: Override SIGINT handler in scripts only.
Override the SIGINT handler in a few select cases only, rather than doing so in one of the samba Python modules. I've done this where it matters most; we can add this code to other scripts too if necessary. This means that importing the 'samba' module from a third party application does not have side-effects on the state of the signal handlers. Bug: https://bugzilla.samba.org/show_bug.cgi?id=9068
-rwxr-xr-xsource4/scripting/bin/samba-tool7
-rwxr-xr-xsource4/scripting/bin/samba_upgradeprovision6
-rwxr-xr-xsource4/scripting/bin/smbstatus8
-rwxr-xr-xsource4/scripting/bin/subunitrun6
-rw-r--r--source4/scripting/python/pyglue.c7
5 files changed, 26 insertions, 8 deletions
diff --git a/source4/scripting/bin/samba-tool b/source4/scripting/bin/samba-tool
index 8ec6514bbf..bb9662666c 100755
--- a/source4/scripting/bin/samba-tool
+++ b/source4/scripting/bin/samba-tool
@@ -1,6 +1,7 @@
#!/usr/bin/env python
# Unix SMB/CIFS implementation.
+# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008-2012
# Copyright (C) Amitay Isaacs <amitay@gmail.com> 2011
# Copyright (C) Giampaolo Lauria <lauria2@yahoo.com> 2011
#
@@ -23,6 +24,12 @@ import sys
# Find right direction when running from source tree
sys.path.insert(0, "bin/python")
+# make sure the script dies immediately when hitting control-C,
+# rather than raising KeyboardInterrupt. As we do all database
+# operations using transactions, this is safe.
+import signal
+signal.signal(signal.SIGINT, signal.SIG_DFL)
+
from samba.netcmd.main import cmd_sambatool
cmd = cmd_sambatool()
subcommand = None
diff --git a/source4/scripting/bin/samba_upgradeprovision b/source4/scripting/bin/samba_upgradeprovision
index 344d7f56c2..54ffbeab1e 100755
--- a/source4/scripting/bin/samba_upgradeprovision
+++ b/source4/scripting/bin/samba_upgradeprovision
@@ -66,6 +66,12 @@ from samba.upgradehelpers import (dn_sort, get_paths, newprovision,
print_provision_ranges)
from samba.xattr import copytree_with_xattrs
+# make sure the script dies immediately when hitting control-C,
+# rather than raising KeyboardInterrupt. As we do all database
+# operations using transactions, this is safe.
+import signal
+signal.signal(signal.SIGINT, signal.SIG_DFL)
+
replace=2**FLAG_MOD_REPLACE
add=2**FLAG_MOD_ADD
delete=2**FLAG_MOD_DELETE
diff --git a/source4/scripting/bin/smbstatus b/source4/scripting/bin/smbstatus
index 055753b3fa..7ff98df6b3 100755
--- a/source4/scripting/bin/smbstatus
+++ b/source4/scripting/bin/smbstatus
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# provide information on connected users and open files
-# Copyright ǒ Jelmer Vernooij 2008
+# Copyright (c) Jelmer Vernooij 2008
#
# Based on the original in EJS:
# Copyright Andrew Tridgell 2005
@@ -11,6 +11,12 @@
import os, sys
+# make sure the script dies immediately when hitting control-C,
+# rather than raising KeyboardInterrupt. As we do all database
+# operations using transactions, this is safe.
+import signal
+signal.signal(signal.SIGINT, signal.SIG_DFL)
+
sys.path.insert(0, "bin/python")
import optparse
diff --git a/source4/scripting/bin/subunitrun b/source4/scripting/bin/subunitrun
index df46b08801..15a78bf499 100755
--- a/source4/scripting/bin/subunitrun
+++ b/source4/scripting/bin/subunitrun
@@ -28,6 +28,12 @@
import sys
+# make sure the script dies immediately when hitting control-C,
+# rather than raising KeyboardInterrupt. As we do all database
+# operations using transactions, this is safe.
+import signal
+signal.signal(signal.SIGINT, signal.SIG_DFL)
+
# Find right directory when running from source tree
sys.path.insert(0, "bin/python")
diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c
index cc312ba068..c21de46798 100644
--- a/source4/scripting/python/pyglue.c
+++ b/source4/scripting/python/pyglue.c
@@ -244,12 +244,5 @@ void init_glue(void)
PyModule_AddObject(m, "version",
PyString_FromString(SAMBA_VERSION_STRING));
-
- /* one of the most annoying things about python scripts is
- that they don't die when you hit control-C. This fixes that
- sillyness. As we do all database operations using
- transactions, this is also safe.
- */
- signal(SIGINT, SIG_DFL);
}