Exemple #1
0
    def __init__(self, irc):
        self.__parent = super(MsgPipe, self)
        self.__parent.__init__(irc)

        self.ConnectionHandler.irc = irc
        self.ConnectionHandler.log = self.log

        config = conf.supybot.plugins.MsgPipe
        self.unixsock = None

        if config.unix():
            self.unixsock = config.socketFile()

            # delete stale socket
            try:
                os.unlink(self.unixsock)
            except OSError:
                pass

            self.server = SocketServer.UnixStreamServer(
                self.unixsock, self.ConnectionHandler)
        else:
            host = config.host()
            port = config.port()
            self.server = SocketServer.TCPServer((host, port),
                                                 self.ConnectionHandler)

        t = threading.Thread(target=self.server.serve_forever,
                             name="MsgPipeThread")
        t.setDaemon(True)
        t.start()
        world.threadsSpawned += 1
Exemple #2
0
    def __init__(self,
                 node_id,
                 socket_name=G.DB_DEFAULT_SOCK,
                 db_filename=G.DB_FILENAME):
        """
            Initialize our socket
            
            @param socket_name: Filename of UNIX socket to open for database 
            interaction.
        """

        # Store our socket file name
        self.socket_name = socket_name
        if os.path.exists(self.socket_name):
            try:
                os.unlink(self.socket_name)
            except:
                logger.error(
                    "Could not delete %s, socket creation will fail." %
                    self.socket_name)

        DatabaseServer.DB = CatanDatabase(node_id=node_id,
                                          filename=db_filename)

        # Setup our server
        self.server = SocketServer.UnixStreamServer(socket_name, DbHandler)

        # IMPORTANT: Allow everyone to write to the socket
        os.chmod(socket_name, 0777)

        multiprocessing.Process.__init__(self)
Exemple #3
0
 def __init__(self,
              socket_name=G.TX_DEFAULT_SOCK):
     """
         Initialize our socket
         
         @param socket_name: Filename of UNIX socket to open for TX 
         transmissions
     """
     
     # Store our socket file name
     self.socket_name = socket_name
     if os.path.exists(self.socket_name):
         try:
             os.unlink(self.socket_name)
         except:
             logger.error("Could not delete %s, socket creation will fail."%
                          self.socket_name)
             
     
     
     # Setup our server
     self.server = SocketServer.UnixStreamServer(socket_name,TxHandler)
     
     # IMPORTANT: Allow everyone to write to the socket
     os.chmod(socket_name, 0777)
     
     multiprocessing.Process.__init__(self)
Exemple #4
0
    def __init__(self,
                 secret=None,
                 secretfile=None,
                 socket=SRSSOCKET,
                 *args,
                 **kw):
        secrets = []
        if secret: secrets += secret
        if secretfile and os.path.exists(secretfile):
            assert os.path.isfile(secretfile) and os.access(secretfile,os.R_OK), \
       "Secret file $secretfile not readable"
            FH = open(secretfile)
            for ln in FH:
                if not ln: continue
                if ln.startswith('#'): continue
                secrets += ln
            FH.close()

        assert secrets, \
          """No secret or secretfile given. Use --secret or --secretfile,
and ensure the secret file is not empty."""

        # Preserve the pertinent original arguments, mostly for fun.
        self.secret = secret
        self.secretfile = secretfile
        self.socket = socket
        self.srs = Guarded(secret=secrets, *args, **kw)
        try:
            os.unlink(socket)
        except:
            pass
        self.server = SocketServer.UnixStreamServer(socket, EximHandler)
        self.server.srs = self.srs
    def __call__(self):
        """The callable action for the SystemSocketDaemon, which executes the _run method within the
        context of a systemd service.

        @@@return boolean
            Specifies whether or not to continue execution of the daemon after this returns. True
            equates to a continue, False will break execution and disable the daemon.
        """

        if self.verbose:
            self.logger.write('Cleaning up leftover socket file')
        try:
            os.unlink(self._socket)
        except Exception as err:
            pass

        if self.verbose:
            self.logger.write('Creating socket server')
        self._server = SocketServer.UnixStreamServer(self._socket,
                                                     self._socketHandler)

        if self.verbose:
            self.logger.write('Executing socket server polling')
        try:
            self._server.serve_forever()
        except Exception as err:
            self.logger.write('FAILED: serve_forever', err)

        if self.verbose:
            self.logger.write('Closed socket server polling')

        return False
Exemple #6
0
def main_loop():

    if os.path.exists(SOCKFILE):
        os.unlink(SOCKFILE)

    server = SocketServer.UnixStreamServer(SOCKFILE, CommandHandler)
    server.context = BackupContext()
    server.context.shutdown = server.shutdown
    os.chmod(SOCKFILE, 0o700)
    server.serve_forever()
Exemple #7
0
    def main():
        usage = "usage: %prog [options]"
        parser = OptionParser(usage)
        parser.add_option("-c",
                          "--config",
                          action="store",
                          dest="config",
                          default=config_path)
        (options, args) = parser.parse_args()

        logfd = os.open(LOG_PATH, os.O_WRONLY | os.O_APPEND | os.O_CREAT, 0644)
        if logfd < 0:
            print sys.stderr, "ERROR: Failed to open log file (%s)" % LOG_PATH
            exit(1)
        # reinitialize python stdout/err
        sys.stdout.flush()
        sys.stderr.flush()
        os.dup2(logfd, 1)
        os.dup2(logfd, 2)
        os.close(logfd)
        devnull = os.open('/dev/null', os.O_RDONLY)
        os.dup2(devnull, 0)

        config = SafeConfigParser({
            'vm-min-mem':
            str(qmemman_algo.MIN_PREFMEM),
            'dom0-mem-boost':
            str(qmemman_algo.DOM0_MEM_BOOST),
            'cache-margin-factor':
            str(qmemman_algo.CACHE_FACTOR)
        })
        config.read(options.config)
        if config.has_section('global'):
            qmemman_algo.MIN_PREFMEM = parse_size(
                config.get('global', 'vm-min-mem'))
            qmemman_algo.DOM0_MEM_BOOST = parse_size(
                config.get('global', 'dom0-mem-boost'))
            qmemman_algo.CACHE_FACTOR = config.getfloat(
                'global', 'cache-margin-factor')

        print "values: %s, %s, %s" % (str(
            qmemman_algo.MIN_PREFMEM), str(
                qmemman_algo.DOM0_MEM_BOOST), str(qmemman_algo.CACHE_FACTOR))

        try:
            os.unlink(SOCK_PATH)
        except:
            pass
        os.umask(0)
        server = SocketServer.UnixStreamServer(SOCK_PATH, QMemmanReqHandler)
        os.umask(077)
        if os.fork() == 0:
            thread.start_new_thread(start_server, tuple([server]))
            XS_Watcher().watch_loop()
Exemple #8
0
def runServer(vfsSessionClass):
    log.info("Starting socket server using session class '%s.%s'" %
             (vfsSessionClass.__module__, vfsSessionClass.__name__))
    if os.path.exists(SOCKET_FILE):
        os.unlink(SOCKET_FILE)
    VFSModuleSession.setSessionClass(vfsSessionClass)
    server = SocketServer.UnixStreamServer(SOCKET_FILE, VFSHandler)
    try:
        server.serve_forever()
    except Exception, e:
        log.info("Socket server stopped due to exception '%s'" % e.__class__)
Exemple #9
0
    def handle(self, **options):
        socket_file = options.get('socket_file')
        if not socket_file:
            raise CommandError('Path to the socket file is required!')

        self.socket_file = os.path.abspath(socket_file)
        self._check_socket_path(socket_file)
        self.stdout.write('Binding to unix socket: %s' % (socket_file, ))

        server = SocketServer.UnixStreamServer(socket_file,
                                               EventNormalizeHandler)
        server.serve_forever()
Exemple #10
0
def main_loop():
    setproctitle('webshelld')

    dispatcher = SimpleXMLRPCDispatcher()
    SOCKFILE = '/var/run/webshell.sock'
    if os.path.exists(SOCKFILE):
        os.unlink(SOCKFILE)
    server = SocketServer.UnixStreamServer(SOCKFILE, XMLRPCHandler)
    os.chmod(SOCKFILE, 0o700)
    dispatcher.register_instance(
        Multiplex("/usr/local/bin/bash", "xterm-color"))
    server.dispatcher = dispatcher
    server.serve_forever()
Exemple #11
0
    def handle(self, **options):
        socket_file = options.get("socket_file")
        network_socket = options.get("network_socket")
        threading = options.get("threading")
        forking = options.get("forking")
        if threading and forking:
            raise CommandError("Pick one: threading or forking.")
        if socket_file and network_socket:
            raise CommandError("Only one socket allowed at a time")

        if threading:
            server_type = "threading"
        elif forking:
            server_type = "forking"
        else:
            server_type = "single-threaded"
        self.stdout.write("Server type: %s\n" % (server_type, ))

        if socket_file:
            self.socket_file = os.path.abspath(socket_file)
            self._check_socket_path(socket_file)
            self.stdout.write("Binding to unix socket: %s\n" % (socket_file, ))
            if threading:
                server = SocketServer.ThreadingUnixStreamServer(
                    socket_file, EventNormalizeHandler)
                server.daemon_threads = True
            elif forking:
                server = ForkingUnixStreamServer(socket_file,
                                                 EventNormalizeHandler)
            else:
                server = SocketServer.UnixStreamServer(socket_file,
                                                       EventNormalizeHandler)
        elif network_socket:
            host, port = network_socket.split(":")
            port = int(port)
            self.stdout.write("Binding to network socket: %s:%s\n" %
                              (host, port))
            if threading:
                server = SocketServer.ThreadingTCPServer((host, port),
                                                         EventNormalizeHandler)
                server.daemon_threads = True
            elif forking:
                server = SocketServer.ForkingTCPServer((host, port),
                                                       EventNormalizeHandler)
            else:
                server = SocketServer.TCPServer((host, port),
                                                EventNormalizeHandler)
        else:
            raise CommandError("No connection option specified")

        server.serve_forever()
Exemple #12
0
    def handle(self, **options):
        socket_file = options.get('socket_file')
        network_socket = options.get('network_socket')
        threading = options.get('threading')
        forking = options.get('forking')
        if threading and forking:
            raise CommandError('Pick one: threading or forking.')
        if socket_file and network_socket:
            raise CommandError('Only one socket allowed at a time')

        if threading:
            server_type = 'threading'
        elif forking:
            server_type = 'forking'
        else:
            server_type = 'single-threaded'
        self.stdout.write('Server type: %s\n' % (server_type, ))

        if socket_file:
            self.socket_file = os.path.abspath(socket_file)
            self._check_socket_path(socket_file)
            self.stdout.write('Binding to unix socket: %s\n' % (socket_file, ))
            if threading:
                server = SocketServer.ThreadingUnixStreamServer(
                    socket_file, EventNormalizeHandler)
                server.daemon_threads = True
            elif forking:
                server = ForkingUnixStreamServer(socket_file,
                                                 EventNormalizeHandler)
            else:
                server = SocketServer.UnixStreamServer(socket_file,
                                                       EventNormalizeHandler)
        elif network_socket:
            host, port = network_socket.split(':')
            port = int(port)
            self.stdout.write('Binding to network socket: %s:%s\n' %
                              (host, port))
            if threading:
                server = SocketServer.ThreadingTCPServer((host, port),
                                                         EventNormalizeHandler)
                server.daemon_threads = True
            elif forking:
                server = SocketServer.ForkingTCPServer((host, port),
                                                       EventNormalizeHandler)
            else:
                server = SocketServer.TCPServer((host, port),
                                                EventNormalizeHandler)
        else:
            raise CommandError('No connection option specified')

        server.serve_forever()
Exemple #13
0
def run():
    #for i in range(20):
    #    t = proc_tran(queue)
    #    t.setDaemon(True)
    #    t.start()
#
    server_address = os.path.join(tempfile.gettempdir(), 'addr_server_socket')
    if os.access(server_address, 0):
        os.remove(server_address)
    try:
        server = SocketServer.UnixStreamServer(server_address, MyHandler)
        server.serve_forever()
    except KeyboardInterrupt:
        sys.exit(0)
def setup_socket(server_address, q):
    try:
        os.unlink(server_address)
    except OSError:
        if os.path.exists(server_address):
            raise
    server = SocketServer.UnixStreamServer(server_address,
                                           SocketRequestHandler)
    os.chmod(server_address, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
    server.q = q
    t = threading.Thread(target=server.serve_forever)
    t.setDaemon(True)  # don't hang on exit
    t.start()
    return server
Exemple #15
0
def start_inner(args):
	try:
		os.unlink(UNIX_SOCK)
	except OSError:
		if os.path.exists(UNIX_SOCK):
			print "[inner] ERR file %s cannot be removed."%(UNIX_SOCK)
			print "[inner] Interface failed."
			return
	threading.Timer(TIMER_SECS, reset_pid).start()
	if TIMER_CK_ID == SELF_ID:
		print "[inner] check point will be done in every %d seconds."%(CK_TIMER_SECS)
		threading.Timer(CK_TIMER_SECS, timer_checkpoint).start()
	print "[inner] Interface(%s) will start."%(UNIX_SOCK)
	srv = SocketServer.UnixStreamServer(UNIX_SOCK,InnerHandler)	
	srv.serve_forever()
Exemple #16
0
def main():
    signal.signal(signal.SIGTERM, sig_handler)
    signal.signal(signal.SIGINT, sig_handler)

    start_update_loop()

    # Ensure the socket directory exists
    mkdir_p(os.path.dirname(PLUGIN_UNIX_SOCK))
    # Remove existing socket in case it was left behind
    delete_socket_file()
    # Listen for connections on the unix socket
    server = SocketServer.UnixStreamServer(PLUGIN_UNIX_SOCK, Handler)
    try:
        server.serve_forever()
    except:
        delete_socket_file()
        raise
def main():
    socketpath = sys.argv[1]
    testnum = int(sys.argv[2])
    if testnum == 1:
        pathend = 'text_device_xml'
    if testnum == 2:
        pathend = 'email_address_xml'
    if testnum == 3:
        pathend = 'no_friendlyname_xml'
    if testnum == 4:
        pathend = 'ssdp_device_xml'

    h = ThreadingHTTPServer(('', 0), HttpHandler)
    sn = h.socket.getsockname()
    port = sn[1]
    url = 'http://127.0.0.1:%d/%s' % (port, pathend)
    st = 'server type'
    uuid = 'uuid goes here'
    if testnum == 4:
        minissdpd_response[0] = [0]
    else:
        minissdpd_response[0] = [1]
        minissdpd_response[0].extend([len(url)] + list(url))
        minissdpd_response[0].extend([len(st)] + list(st))
        minissdpd_response[0].extend([len(uuid)] + list(uuid))
    notify_text[0] = notify_template % url

    h_thread = threading.Thread(target=h.serve_forever)
    h_thread.daemon = True
    h_thread.start()

    d = ThreadingUdpServer(('', 1900), UdpHandler)
    d.socket.setsockopt(
        socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP,
        socket.inet_pton(socket.AF_INET, '239.255.255.250') +
        socket.inet_pton(socket.AF_INET, '0.0.0.0'))
    d_thread = threading.Thread(target=d.serve_forever)
    d_thread.daemon = True
    d_thread.start()

    u = SocketServer.UnixStreamServer(socketpath, UnixHandler)
    while keep_running[0]:
        u.handle_request()
    def run(self):
        """Start listening in options['path'] and spawn handler per connection.
           Your remotebackend handler class is rebuilt between connections."""
        if 'path' in self.options:
            path = self.options['path']
        else:
            path = '/tmp/remotebackend.sock'
        if os.path.exists(path):
            os.remove(path)

        s = SocketServer.UnixStreamServer(path, UnixRequestHandler, False)
        s.rpc_handler = self.handler
        s.rpc_options = self.options
        s.server_bind()
        s.server_activate()
        try:
            s.serve_forever()
        except (KeyboardInterrupt, SystemExit):
            pass
        os.remove(path)
Exemple #19
0
    def handle(self, **options):
        socket_file = options.get('socket_file')
        network_socket = options.get('network_socket')
        if socket_file and network_socket:
            raise CommandError('Only one socket allowed at a time')
        elif socket_file:
            self.socket_file = os.path.abspath(socket_file)
            self._check_socket_path(socket_file)
            self.stdout.write('Binding to unix socket: %s' % (socket_file, ))
            server = SocketServer.UnixStreamServer(socket_file,
                                                   EventNormalizeHandler)
        elif network_socket:
            host, port = network_socket.split(':')
            port = int(port)
            self.stdout.write('Binding to network socket: %s:%s' %
                              (host, port))
            server = SocketServer.TCPServer((host, port),
                                            EventNormalizeHandler)
        else:
            raise CommandError('No connection option specified')

        server.serve_forever()
Exemple #20
0
class RequestHandler(SocketServer.StreamRequestHandler):
    def handle(self):
        # redirect stdout to string
        sys.stdout = buf = StringIO()
        data = self.rfile.readline().strip().split(' ')

        
        command = data[0]
        tags = data[1:]

        if command == "tag":
            tag(tags)
        elif command == "save":
            save(tags)
        elif command == "search":
            search(tags)
       

        self.wfile.write(buf.getvalue())
        buf.close()

if __name__ == '__main__':
    init_db()
    server = SocketServer.UnixStreamServer("./socket", RequestHandler)
    try:
        server.serve_forever()
    finally:
        sys.stdout = sys.__stdout__
        os.remove('./socket')
#!/usr/bin/python
#coding:utf-8

import SocketServer
import os
import time


class MyHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        print self.request.recv(1024)
        time.sleep(10)
        self.request.send("welcome!!!")


addr_path = './unix.sock'
if os.path.exists(addr_path):
    os.remove(addr_path)
server = SocketServer.UnixStreamServer(addr_path, MyHandler)
server.serve_forever()
Exemple #22
0
             if data == '':
                 break
#        socket = self.request[1]
#        print "{} wrote:".format(self.client_address[0])
#        socket.sendto(data.upper(), self.client_address)

#class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.UnixStreamServer):
#    pass

if __name__ == "__main__":
    HOST, PORT = "localhost", 9999
    PATH = '/home/brbt/ipc/udp/comm2oma'
#    PATH = 'omc_trace'
    try:
        os.unlink(PATH)
    except OSError:
        if os.path.exists(PATH):
            raise
#    server = SocketServer.UDPServer((HOST, PORT), MyUDPHandler)
    server = SocketServer.UnixStreamServer(PATH, MyUDPHandler)
#    server = ThreadedTCPServer(PATH, MyUDPHandler)
#    server_thread = threading.Thread(target=server.serve_forever)
#    server_thread.daemon = True
#    server_thread.start()
    
    server.serve_forever()
#    print "Server loop running in thread:", server_thread.name

#    server.shutdown()
#    server.server_close()
Exemple #23
0
            except omega.PharosEDIException as e:
                self.wfile.write("EINTERNAL: %s\n" % (str(e)))
                return
            self.wfile.write("OK: %s\n" % (rval))
        else:
            self.wfile.write("ESYN: Unknown command %s" % (cmd))


if __name__ == "__main__":
    try:
        if os.path.exists(SOCKNAME):
            os.remove(SOCKNAME)
    except OSError as e:
        print >> sys.stderr, "Couldn't remove socket (%s): %s" % (SOCKNAME,
                                                                  str(e))
        sys.exit(1)
    server = SocketServer.UnixStreamServer(SOCKNAME, PharosConnector)

    try:
        server.serve_forever()
    except KeyboardInterrupt:
        pass
    try:
        if os.path.exists(SOCKNAME):
            os.remove(SOCKNAME)
    except OSError as e:
        print >> sys.stderr, "Couldn't remove socket (%s): %s" % (SOCKNAME,
                                                                  str(e))
        sys.exit(1)
    sys.exit(0)
    def main():
        # setup logging
        ha_syslog = logging.handlers.SysLogHandler('/dev/log')
        ha_syslog.setFormatter(
            logging.Formatter('%(name)s[%(process)d]: %(message)s'))
        logging.root.addHandler(ha_syslog)

        # leave log for backwards compatibility
        ha_file = logging.FileHandler(LOG_PATH)
        ha_file.setFormatter(
            logging.Formatter(
                '%(asctime)s %(name)s[%(process)d]: %(message)s'))
        logging.root.addHandler(ha_file)

        log = logging.getLogger('qmemman.daemon')

        usage = "usage: %prog [options]"
        parser = OptionParser(usage)
        parser.add_option("-c",
                          "--config",
                          action="store",
                          dest="config",
                          default=config_path)
        parser.add_option("-d",
                          "--debug",
                          action="store_true",
                          dest="debug",
                          default=False,
                          help="Enable debugging")
        (options, args) = parser.parse_args()

        if options.debug:
            logging.root.setLevel(logging.DEBUG)

        # close io
        sys.stdin.close()
        sys.stdout.close()
        sys.stderr.close()

        config = SafeConfigParser({
            'vm-min-mem':
            str(qmemman_algo.MIN_PREFMEM),
            'dom0-mem-boost':
            str(qmemman_algo.DOM0_MEM_BOOST),
            'cache-margin-factor':
            str(qmemman_algo.CACHE_FACTOR)
        })
        config.read(options.config)
        if config.has_section('global'):
            qmemman_algo.MIN_PREFMEM = parse_size(
                config.get('global', 'vm-min-mem'))
            qmemman_algo.DOM0_MEM_BOOST = parse_size(
                config.get('global', 'dom0-mem-boost'))
            qmemman_algo.CACHE_FACTOR = config.getfloat(
                'global', 'cache-margin-factor')

        log.info('MIN_PREFMEM={qmemman_algo.MIN_PREFMEM}'
                 ' DOM0_MEM_BOOST={qmemman_algo.DOM0_MEM_BOOST}'
                 ' CACHE_FACTOR={qmemman_algo.CACHE_FACTOR}'.format(
                     qmemman_algo=qmemman_algo))

        try:
            os.unlink(SOCK_PATH)
        except:
            pass

        log.debug('instantiating server')
        os.umask(0)
        server = SocketServer.UnixStreamServer(SOCK_PATH, QMemmanReqHandler)
        os.umask(077)

        # notify systemd
        nofity_socket = os.getenv('NOTIFY_SOCKET')
        if nofity_socket:
            log.debug('notifying systemd')
            s = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
            if nofity_socket.startswith('@'):
                nofity_socket = '\0%s' % nofity_socket[1:]
            s.connect(nofity_socket)
            s.sendall("READY=1")
            s.close()

        thread.start_new_thread(start_server, tuple([server]))
        XS_Watcher().watch_loop()
import SocketServer
from struct import unpack
from os import unlink
from gen import msg_pb2

address = './socket'


class Session(SocketServer.BaseRequestHandler):
    def handle(self):
        header = self.request.recv(4)
        message_length, = unpack('>I', header)  #unpack always returns a tuple.
        print(message_length)

        message = self.request.recv(message_length)
        pb_message = msg_pb2.Boring()
        pb_message.ParseFromString(message)

        print("Message: " + pb_message.cont)


try:
    unlink(address)
except OSError as e:
    pass

server = SocketServer.UnixStreamServer(address, Session)
server.serve_forever()
Exemple #26
0
    p0f_status = 'ok'
    p0f_os = 'linux'

    alen = len(sys.argv)
    if alen > 1:
        SOCK = sys.argv[1]
        if alen >= 4:
            p0f_os = sys.argv[2]
            p0f_status = sys.argv[3]
        elif alen >= 3:
            p0f_os = sys.argv[2]

    cleanup(SOCK)

    server = socketserver.UnixStreamServer(SOCK,
                                           MyStreamHandler,
                                           bind_and_activate=False)
    server.allow_reuse_address = True
    server.p0f_status = p0f_status
    server.p0f_os = p0f_os
    server.server_bind()
    server.server_activate()

    dummy_killer.setup_killer(server)
    dummy_killer.write_pid(PID)

    try:
        server.handle_request()
    except socket.error:
        print "Socket closed"