Path: blob/dev/pkg/protocols/network/networkclientpool/clientpool.go
2072 views
package networkclientpool12import (3"fmt"45"github.com/projectdiscovery/fastdialer/fastdialer"6"github.com/projectdiscovery/nuclei/v3/pkg/protocols/common/protocolstate"7"github.com/projectdiscovery/nuclei/v3/pkg/types"8)910// Init initializes the clientpool implementation11func Init(options *types.Options) error {12return nil13}1415// Configuration contains the custom configuration options for a client16type Configuration struct {17CustomDialer *fastdialer.Dialer18}1920// Hash returns the hash of the configuration to allow client pooling21func (c *Configuration) Hash() string {22return ""23}2425// Get creates or gets a client for the protocol based on custom configuration26func Get(options *types.Options, configuration *Configuration /*TODO review unused parameters*/) (*fastdialer.Dialer, error) {27if configuration != nil && configuration.CustomDialer != nil {28return configuration.CustomDialer, nil29}30dialers := protocolstate.GetDialersWithId(options.ExecutionId)31if dialers == nil {32return nil, fmt.Errorf("dialers not initialized for %s", options.ExecutionId)33}34return dialers.Fastdialer, nil35}363738