func()

in logsapi/client.go [104:136]


func (lc *Client) StartService(extensionID string) error {
	addr, err := lc.startHTTPServer()
	if err != nil {
		return err
	}

	_, port, err := net.SplitHostPort(addr)
	if err != nil {
		if err2 := lc.Shutdown(); err2 != nil {
			lc.logger.Warnf("failed to shutdown the server: %v", err2)
		}
		return fmt.Errorf("failed to retrieve port from address %s: %w", addr, err)
	}

	host, _, err := net.SplitHostPort(lc.listenerAddr)
	if err != nil {
		if err2 := lc.Shutdown(); err2 != nil {
			lc.logger.Warnf("failed to shutdown the server: %v", err2)
		}
		return fmt.Errorf("failed to retrieve host from address %s: %w", lc.listenerAddr, err)
	}

	uri := "http://" + net.JoinHostPort(host, port)

	if err := lc.subscribe(lc.logsAPISubscriptionTypes, extensionID, uri); err != nil {
		if err2 := lc.Shutdown(); err2 != nil {
			lc.logger.Warnf("failed to shutdown the server: %v", err2)
		}
		return err
	}

	return nil
}