# Path: dizzy/tools.py
# def check_root(text):
#     if hasattr(os, 'geteuid'):
#         if os.geteuid() != 0:
#             print_dizzy("You must be root to " + text + ".")
#             exit(1)
#     else:
#         if ctypes.windll.shell32.IsUserAnAdmin() != 1:
#             print_dizzy("You must be Admin to " + text + ".")
#             exit(1)
# 
# Path: dizzy/log.py
# def print_dizzy(value, level=NORMAL):
#     if print_level >= level:
#         with print_lock:
#             print(print_colors[level], end='')
#             print(value)
#             if isinstance(value, Exception):
#                 ex_type, ex, tb = exc_info()
#                 print_tb(tb)
#             print(ENDC, end='')
# 
# VERBOSE_1 = 3
# 
# VERBOSE_2 = 4


from threading import Thread
from time import sleep
from dizzy.tools import check_root
from dizzy.log import print_dizzy, VERBOSE_1, VERBOSE_2
            import pcapy
#       * Redistributions of source code must retain the above copyright
#         notice, this list of conditions and the following disclaimer.
#       * Redistributions in binary form must reproduce the above
#         copyright notice, this list of conditions and the following disclaimer
#         in the documentation and/or other materials provided with the
#         distribution.
#       * Neither the name of the  nor the names of its
#         contributors may be used to endorse or promote products derived from
#         this software without specific prior written permission.
#
#       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#       "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#       LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#       A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
#       OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#       SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#       LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#       DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#       THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#       (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
#       OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



class Pcap(Thread):
    def __init__(self, config, filename):
        Thread.__init__(self)
        try:
            self.pcap = pcapy
        except:

# Path: dizzy/tools.py
# def check_root(text):
#     if hasattr(os, 'geteuid'):
#         if os.geteuid() != 0:
#             print_dizzy("You must be root to " + text + ".")
#             exit(1)
#     else:
#         if ctypes.windll.shell32.IsUserAnAdmin() != 1:
#             print_dizzy("You must be Admin to " + text + ".")
#             exit(1)
# 
# Path: dizzy/log.py
# def print_dizzy(value, level=NORMAL):
#     if print_level >= level:
#         with print_lock:
#             print(print_colors[level], end='')
#             print(value)
#             if isinstance(value, Exception):
#                 ex_type, ex, tb = exc_info()
#                 print_tb(tb)
#             print(ENDC, end='')
# 
# VERBOSE_1 = 3
# 
# VERBOSE_2 = 4


# Path: dizzy/pcap.py
from threading import Thread
from time import sleep
from dizzy.tools import check_root
from dizzy.log import print_dizzy, VERBOSE_1, VERBOSE_2
            import pcapy

#       * Redistributions of source code must retain the above copyright
#         notice, this list of conditions and the following disclaimer.
#       * Redistributions in binary form must reproduce the above
#         copyright notice, this list of conditions and the following disclaimer
#         in the documentation and/or other materials provided with the
#         distribution.
#       * Neither the name of the  nor the names of its
#         contributors may be used to endorse or promote products derived from
#         this software without specific prior written permission.
#
#       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#       "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#       LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#       A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
#       OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#       SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#       LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#       DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#       THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#       (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
#       OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



class Pcap(Thread):
    def __init__(self, config, filename):
        Thread.__init__(self)
        try:
            self.pcap = pcapy
        except:

            print_dizzy("No usable pcap library found. Be sure you have pcapy installed!")