Files
Mikel Olasagasti Uranga 6867e076f1 refactor: move v2 module code to root directory for cleaner structure
Keeps module path as github.com/projectdiscovery/subfinder/v2 to
preserve import compatibility.

Signed-off-by: Mikel Olasagasti Uranga <mikel@olasagasti.info>
2025-07-10 15:27:42 +02:00

52 lines
1.3 KiB
Go

package runner
import (
"net"
"strings"
"github.com/projectdiscovery/dnsx/libs/dnsx"
"github.com/projectdiscovery/subfinder/v2/pkg/passive"
"github.com/projectdiscovery/subfinder/v2/pkg/resolve"
)
// initializePassiveEngine creates the passive engine and loads sources etc
func (r *Runner) initializePassiveEngine() {
r.passiveAgent = passive.New(r.options.Sources, r.options.ExcludeSources, r.options.All, r.options.OnlyRecursive)
}
// initializeResolver creates the resolver used to resolve the found subdomains
func (r *Runner) initializeResolver() error {
var resolvers []string
// If the file has been provided, read resolvers from the file
if r.options.ResolverList != "" {
var err error
resolvers, err = loadFromFile(r.options.ResolverList)
if err != nil {
return err
}
}
if len(r.options.Resolvers) > 0 {
resolvers = append(resolvers, r.options.Resolvers...)
} else {
resolvers = append(resolvers, resolve.DefaultResolvers...)
}
// Add default 53 UDP port if missing
for i, resolver := range resolvers {
if !strings.Contains(resolver, ":") {
resolvers[i] = net.JoinHostPort(resolver, "53")
}
}
r.resolverClient = resolve.New()
var err error
r.resolverClient.DNSClient, err = dnsx.New(dnsx.Options{BaseResolvers: resolvers, MaxRetries: 5})
if err != nil {
return nil
}
return nil
}