summaryrefslogtreecommitdiff
path: root/python/vyos
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2019-12-04 17:13:59 +0100
committerChristian Poessinger <christian@poessinger.com>2019-12-04 17:13:59 +0100
commita96ffc33cc63918ba3815f66c506c717a8676621 (patch)
treef883f5976a40f2066f500363931a5e499374b8de /python/vyos
parent26677aa3ce312a5b980ea88d57feebd09e39fd98 (diff)
parentaceb4d7e187a571019e4bc24cd23efc7c2f624fe (diff)
downloadvyos-1x-a96ffc33cc63918ba3815f66c506c717a8676621.tar.gz
vyos-1x-a96ffc33cc63918ba3815f66c506c717a8676621.zip
Merge branch 'current' of github.com:vyos/vyos-1x into equuleus
* 'current' of github.com:vyos/vyos-1x: shutdown: T1826: Modify cancel reboot msg T1801: move escaping of backslashes into configtree vxlan: T1636: remove unused import statements geneve: T1799: remove unused import statements
Diffstat (limited to 'python/vyos')
-rw-r--r--python/vyos/config.py6
-rw-r--r--python/vyos/configtree.py7
-rw-r--r--python/vyos/util.py6
3 files changed, 7 insertions, 12 deletions
diff --git a/python/vyos/config.py b/python/vyos/config.py
index e5963c19a..5bd8fb072 100644
--- a/python/vyos/config.py
+++ b/python/vyos/config.py
@@ -69,7 +69,6 @@ import json
import subprocess
import vyos.configtree
-import vyos.util
class VyOSError(Exception):
@@ -112,11 +111,6 @@ class Config(object):
else:
session_config_text = running_config_text
- # The output of showConfig does not escape backslashes, as is expected
- # by ConfigTree().
- session_config_text = vyos.util.escape_backslash(session_config_text)
- running_config_text = vyos.util.escape_backslash(running_config_text)
-
self._session_config = vyos.configtree.ConfigTree(session_config_text)
self._running_config = vyos.configtree.ConfigTree(running_config_text)
diff --git a/python/vyos/configtree.py b/python/vyos/configtree.py
index 77cffe90b..0274f3573 100644
--- a/python/vyos/configtree.py
+++ b/python/vyos/configtree.py
@@ -18,6 +18,12 @@ import json
from ctypes import cdll, c_char_p, c_void_p, c_int
+def escape_backslash(string: str) -> str:
+ """Escape single backslashes in string that are not in escape sequence"""
+ p = re.compile(r'(?<!\\)[\\](?!b|f|n|r|t|\\[^bfnrt])')
+ result = p.sub(r'\\\\', string)
+ return result
+
def strip_comments(s):
""" Split a config string into the config section and the trailing comments """
INITIAL = 0
@@ -169,6 +175,7 @@ class ConfigTree(object):
self.__destroy.argtypes = [c_void_p]
config_section, comments_section = strip_comments(config_string)
+ config_section = escape_backslash(config_section)
config = self.__from_string(config_section.encode())
if config is None:
msg = self.__get_error().decode()
diff --git a/python/vyos/util.py b/python/vyos/util.py
index 659a702fd..67a602f7a 100644
--- a/python/vyos/util.py
+++ b/python/vyos/util.py
@@ -199,9 +199,3 @@ def is_admin() -> bool:
current_user = getpass.getuser()
(_, _, _, admin_group_members) = grp.getgrnam('sudo')
return current_user in admin_group_members
-
-def escape_backslash(string: str) -> str:
- """Escape single backslashes in string that are not in escape sequence"""
- p = re.compile(r'(?<!\\)[\\](?!b|f|n|r|t|\\[^bfnrt])')
- result = p.sub(r'\\\\', string)
- return result