import socket
import sys
+import os.path
from abc import abstractmethod, ABCMeta
from cStringIO import StringIO
from scapy.utils6 import in6_mactoifaceid
from scapy.layers.inet import IP
from scapy.layers.inet6 import IPv6, IPv6ExtHdrFragment, IPv6ExtHdrRouting,\
IPv6ExtHdrHopByHop
+from scapy.utils import hexdump
from socket import AF_INET6
old_stdout = sys.stdout
sys.stdout = o
print(headline)
+ hexdump(packet)
+ print("")
packet.show()
sys.stdout = old_stdout
return o.getvalue()
socket.inet_pton(socket.AF_INET6, ip6))
-def check_core_path(logger, core_path):
+def get_core_path(tempdir):
+ return "%s/%s" % (tempdir, get_core_pattern())
+
+
+def is_core_present(tempdir):
+ return os.path.isfile(get_core_path(tempdir))
+
+
+def get_core_pattern():
with open("/proc/sys/kernel/core_pattern", "r") as f:
- corefmt = f.read()
- if corefmt.startswith("|"):
- logger.error(
- "WARNING: redirecting the core dump through a"
- " filter may result in truncated dumps.")
- logger.error(
- " You may want to check the filter settings"
- " or uninstall it and edit the"
- " /proc/sys/kernel/core_pattern accordingly.")
- logger.error(
- " current core pattern is: %s" % corefmt)
+ corefmt = f.read().strip()
+ return corefmt
+
+
+def check_core_path(logger, core_path):
+ corefmt = get_core_pattern()
+ if corefmt.startswith("|"):
+ logger.error(
+ "WARNING: redirecting the core dump through a"
+ " filter may result in truncated dumps.")
+ logger.error(
+ " You may want to check the filter settings"
+ " or uninstall it and edit the"
+ " /proc/sys/kernel/core_pattern accordingly.")
+ logger.error(
+ " current core pattern is: %s" % corefmt)
class NumericConstant(object):