diff --git a/kippo/core/output.py b/kippo/core/output.py index 89d1fc4..ecde498 100644 --- a/kippo/core/output.py +++ b/kippo/core/output.py @@ -1,11 +1,35 @@ -# Copyright (c) 2009-2014 Upi Tamminen -# See the COPYRIGHT file for more information +# Copyright (c) 2015 Michel Oosterhof +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. 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. +# 3. The names of the author(s) may not be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``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 AUTHORS 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. import abc import datetime import re import socket -import time import uuid # KIPP0001 : create session @@ -19,11 +43,14 @@ import uuid # KIPP0009 : SSH Version # KIPP0010 : Terminal Size # KIPP0011 : Connection Lost -# -- new event id's after this -- -# KIPP0012 : SSH direct-tcpip fwd request class Output(object): + """ + This is the abstract base class intended to be inherited by kippo output plugins + Plugins require the mandatory methods: stop, start and handleLog + """ + __metaclass__ = abc.ABCMeta def __init__(self, cfg): @@ -50,12 +77,12 @@ class Output(object): @abc.abstractmethod def start(): - """Hook that can be used to set up connections in output plugins""" + """Abstract method to initialize output plugins""" pass @abc.abstractmethod def stop(): - """Hook that can be used to close connections in output plugins""" + """Abstract method to shut down output plugins""" pass # this is the main emit() hook that gets called by the the Twisted logging