mopidy/mopidy/server.py

37 lines
1.1 KiB
Python

import asyncore
import logging
import socket
import sys
from mopidy import settings
from mopidy.session import MpdSession
logger = logging.getLogger(u'server')
class MpdServer(asyncore.dispatcher):
def __init__(self, session_class=MpdSession, backend=None):
asyncore.dispatcher.__init__(self)
self.session_class = session_class
self.backend = backend
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.set_reuse_addr()
self.bind((settings.MPD_SERVER_HOSTNAME, settings.MPD_SERVER_PORT))
self.listen(1)
logger.info(u'Please connect to %s port %s using a MPD client.',
settings.MPD_SERVER_HOSTNAME, settings.MPD_SERVER_PORT)
def handle_accept(self):
(client_socket, client_address) = self.accept()
logger.info(u'Connection from: [%s]:%s', *client_address)
self.session_class(self, client_socket, client_address,
backend=self.backend)
def handle_close(self):
self.close()
def do_kill(self):
logger.info(u'Received "kill". Shutting down.')
self.handle_close()
sys.exit(0)