Browse Source

add missing guards around `preexec_fn=ignore_sigint`

valtron 1 week ago
parent
commit
cea7744276
2 changed files with 4 additions and 2 deletions
  1. 2 1
      src/borg/legacyremote.py
  2. 2 1
      src/borg/remote.py

+ 2 - 1
src/borg/legacyremote.py

@@ -32,6 +32,7 @@ from .legacyrepository import LegacyRepository
 from .version import parse_version, format_version
 from .version import parse_version, format_version
 from .checksums import xxh64
 from .checksums import xxh64
 from .helpers.datastruct import EfficientCollectionQueue
 from .helpers.datastruct import EfficientCollectionQueue
+from .platform import is_win32
 
 
 logger = create_logger(__name__)
 logger = create_logger(__name__)
 
 
@@ -276,7 +277,7 @@ class LegacyRemoteRepository:
             logger.debug("SSH command line: %s", borg_cmd)
             logger.debug("SSH command line: %s", borg_cmd)
             # we do not want the ssh getting killed by Ctrl-C/SIGINT because it is needed for clean shutdown of borg.
             # we do not want the ssh getting killed by Ctrl-C/SIGINT because it is needed for clean shutdown of borg.
             self.p = Popen(
             self.p = Popen(
-                borg_cmd, bufsize=0, stdin=PIPE, stdout=PIPE, stderr=PIPE, env=env, preexec_fn=ignore_sigint
+                borg_cmd, bufsize=0, stdin=PIPE, stdout=PIPE, stderr=PIPE, env=env, preexec_fn=None if is_win32 else ignore_sigint
             )  # nosec B603
             )  # nosec B603
             self.stdin_fd = self.p.stdin.fileno()
             self.stdin_fd = self.p.stdin.fileno()
             self.stdout_fd = self.p.stdout.fileno()
             self.stdout_fd = self.p.stdout.fileno()

+ 2 - 1
src/borg/remote.py

@@ -39,6 +39,7 @@ from .repository import Repository
 from .version import parse_version, format_version
 from .version import parse_version, format_version
 from .checksums import xxh64
 from .checksums import xxh64
 from .helpers.datastruct import EfficientCollectionQueue
 from .helpers.datastruct import EfficientCollectionQueue
+from .platform import is_win32
 
 
 logger = create_logger(__name__)
 logger = create_logger(__name__)
 
 
@@ -577,7 +578,7 @@ class RemoteRepository:
             logger.debug("SSH command line: %s", borg_cmd)
             logger.debug("SSH command line: %s", borg_cmd)
             # we do not want the ssh getting killed by Ctrl-C/SIGINT because it is needed for clean shutdown of borg.
             # we do not want the ssh getting killed by Ctrl-C/SIGINT because it is needed for clean shutdown of borg.
             self.p = Popen(
             self.p = Popen(
-                borg_cmd, bufsize=0, stdin=PIPE, stdout=PIPE, stderr=PIPE, env=env, preexec_fn=ignore_sigint
+                borg_cmd, bufsize=0, stdin=PIPE, stdout=PIPE, stderr=PIPE, env=env, preexec_fn=None if is_win32 else ignore_sigint
             )  # nosec B603
             )  # nosec B603
             self.stdin_fd = self.p.stdin.fileno()
             self.stdin_fd = self.p.stdin.fileno()
             self.stdout_fd = self.p.stdout.fileno()
             self.stdout_fd = self.p.stdout.fileno()