Run the DAAP server. Start by advertising the server via Bonjour. Then
        serve requests until CTRL + C is received.

def serve_forever(self):
        """
        Run the DAAP server. Start by advertising the server via Bonjour. Then
        serve requests until CTRL + C is received.
        """

        # Verify that the provider has a server.
        if self.provider.server is None:
            raise ValueError(
                "Cannot start server because the provider has no server to "
                "publish.")

        # Verify that the provider has a database to advertise.
        if not self.provider.server.databases:
            raise ValueError(
                "Cannot start server because the provider has no databases to "
                "publish.")

        # Create WSGI server and run it.
        self.server = WSGIServer((self.ip, self.port), application=self.app)

        # Register Bonjour.
        if self.bonjour:
            self.bonjour.publish(self)

        # Start server until finished
        try:
            self.server.serve_forever()
        except KeyboardInterrupt:
            pass
        finally:
            # Unregister Bonjour
            if self.bonjour:
                self.bonjour.unpublish(self)