'Start the HTTP server.'

def start(self):

    if (self.bind_addr is None):
        on_what = 'unknown    interface    (dynamic?)'
    elif isinstance(self.bind_addr, tuple):
        on_what = self._get_base()
    else:
        on_what = ('socket    file:    %s' % self.bind_addr)
    if self.running:
        self.bus.log(('Already    serving    on    %s' % on_what))
        return
    self.interrupt = None
    if (not self.httpserver):
        raise ValueError('No    HTTP    server    has    been    created.')
    if isinstance(self.bind_addr, tuple):
        wait_for_free_port(*self.bind_addr)
    import threading
    t = threading.Thread(target=self._start_http_thread)
    t.setName(('HTTPServer    ' + t.getName()))
    t.start()
    self.wait()
    self.running = True
    self.bus.log(('Serving    on    %s' % on_what))
