From 263e02d164ba6fbdcba4e90e657ab8f0377d2471 Mon Sep 17 00:00:00 2001
From: Pierre LALET <pierre.lalet@cea.fr>
Date: Sun, 20 Aug 2017 03:19:02 +0200
Subject: [PATCH] Enable loading the tls layer like other layers

---
 scapy/all.py        | 5 -----
 scapy/layers/all.py | 7 +++++--
 scapy/main.py       | 3 ++-
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/scapy/all.py b/scapy/all.py
index 9ad308de..9d6e5b5d 100644
--- a/scapy/all.py
+++ b/scapy/all.py
@@ -38,11 +38,6 @@ from scapy.autorun import *
 from scapy.main import *
 
 from scapy.layers.all import *
-if "tls" in conf.load_layers:
-    try:
-        from scapy.layers.tls.all import *
-    except ImportError:
-        pass
 
 from scapy.asn1.asn1 import *
 from scapy.asn1.ber import *
diff --git a/scapy/layers/all.py b/scapy/layers/all.py
index 561dcc8f..18e8e2a1 100644
--- a/scapy/layers/all.py
+++ b/scapy/layers/all.py
@@ -39,11 +39,14 @@ def _import_star(m):
                 __all__.append(name)
                 globals()[name] = sym
 
+LAYER_ALIASES = {
+    "tls": "tls.all",
+}
+
 for _l in conf.load_layers:
     log_loading.debug("Loading layer %s" % _l)
     try:
-        if _l != "tls":
-            _import_star(_l)
+        _import_star(LAYER_ALIASES.get(_l, _l))
     except Exception as e:
         log.warning("can't import layer %s: %s" % (_l,e))
 
diff --git a/scapy/main.py b/scapy/main.py
index dbe06828..287bcd7d 100644
--- a/scapy/main.py
+++ b/scapy/main.py
@@ -18,6 +18,7 @@ import importlib
 ignored = list(six.moves.builtins.__dict__.keys())
 
 from scapy.error import *
+from scapy.layers.all import LAYER_ALIASES
 
 def _probe_config_file(cf):
     cf_path = os.path.join(os.path.expanduser("~"), cf)
@@ -83,7 +84,7 @@ def load_module(name):
     _load("scapy.modules."+name)
 
 def load_layer(name):
-    _load("scapy.layers."+name)
+    _load("scapy.layers." + LAYER_ALIASES.get(name, name))
 
 def load_contrib(name):
     try:
-- 
GitLab