code: func NewHTTPProvider(c *Config, logOutput io.Writer) (*Provider, net.Listener, error) {
  	// Get the configuration of the provider
  	config := providerConfig(c)
  	config.LogOutput = logOutput
  
  	// Set the HTTP capability
  	config.Service.Capabilities["http"] = 1
  
  	// Create an HTTP listener and handler
  	list := newScadaListener(c.Atlas.Infrastructure)
  	config.Handlers["http"] = func(capability string, meta map[string]string,
  		conn io.ReadWriteCloser) error {
  		return list.PushRWC(conn)
  	}
  
  	// Create the provider
  	provider, err := sc.NewProvider(config)
  	if err != nil {
  		list.Close()
  		return nil, nil, err
  	}
  
  	return &Provider{provider}, list, nil
  }
docs: // NewProvider creates a new SCADA provider using the given configuration.
  // Requests for the HTTP capability are passed off to the listener that is
  // returned.