Path: blob/dev/pkg/protocols/whois/rdapclientpool/clientpool.go
2073 views
package rdapclientpool12import (3"sync"45"github.com/projectdiscovery/gologger"6"github.com/projectdiscovery/nuclei/v3/pkg/types"7"github.com/projectdiscovery/rdap"8)910var normalClient *rdap.Client11var m sync.Mutex1213// Init initializes the client pool implementation14func Init(options *types.Options) error {15m.Lock()16defer m.Unlock()1718// Don't create clients if already created in the past.19if normalClient != nil {20return nil21}2223normalClient = &rdap.Client{}24if options.Verbose || options.Debug || options.DebugRequests || options.DebugResponse {25normalClient.Verbose = func(text string) {26gologger.Debug().Msgf("rdap: %s", text)27}28}29return nil30}3132func getNormalClient() *rdap.Client {33m.Lock()34defer m.Unlock()35return normalClient36}3738// Configuration contains the custom configuration options for a client - placeholder39type Configuration struct{}4041// Hash returns the hash of the configuration to allow client pooling - placeholder42func (c *Configuration) Hash() string {43return ""44}4546// Get creates or gets a client for the protocol based on custom configuration47func Get(options *types.Options, configuration *Configuration) (*rdap.Client, error) {48return getNormalClient(), nil49}505152