package netutil

import (
	"net/http"
)

// used on host/supervisor/task and router/path

// IsTLS returns true if the "srv" contains any certificates
// or a get certificate function, meaning that is secure.
func IsTLS(srv *http.Server) bool {
	if cfg := srv.TLSConfig; cfg != nil &&
		(len(cfg.Certificates) > 0 || cfg.GetCertificate != nil) {
		return true
	}

	return false
}

// ResolveSchemeFromServer tries to resolve a url scheme
// based on the server's configuration.
// Returns "https" on secure server,
// otherwise "http".
func ResolveSchemeFromServer(srv *http.Server) string {
	return ResolveScheme(IsTLS(srv))
}

// ResolveURLFromServer returns the scheme+host from a server.
func ResolveURLFromServer(srv *http.Server) string {
	scheme := ResolveSchemeFromServer(srv)
	host := ResolveVHost(srv.Addr)
	return scheme + "://" + host
}