Skip to content

Commit

Permalink
add option to disable stats
Browse files Browse the repository at this point in the history
  • Loading branch information
likexian committed Apr 29, 2023
1 parent d8796a0 commit 30f9adf
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 14 deletions.
6 changes: 2 additions & 4 deletions cmd/whois/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,8 @@ options:
os.Exit(1)
}

c := whois.NewClient()
c.SetDialer(proxy.FromEnvironment())

text, err := c.Whois(flag.Args()[0], *server)
text, err := whois.NewClient().
SetDialer(proxy.FromEnvironment()).Whois(flag.Args()[0], *server)
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
Expand Down
30 changes: 20 additions & 10 deletions whois.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,10 @@ var DefaultClient = NewClient()

// Client is whois client
type Client struct {
dialer proxy.Dialer
timeout time.Duration
elapsed time.Duration
dialer proxy.Dialer
timeout time.Duration
elapsed time.Duration
disableStats bool
}

// Version returns package version
Expand Down Expand Up @@ -82,24 +83,33 @@ func NewClient() *Client {
}

// SetDialer set query net dialer
func (c *Client) SetDialer(dialer proxy.Dialer) {
func (c *Client) SetDialer(dialer proxy.Dialer) *Client {
c.dialer = dialer
return c
}

// SetTimeout set query timeout
func (c *Client) SetTimeout(timeout time.Duration) {
func (c *Client) SetTimeout(timeout time.Duration) *Client {
c.timeout = timeout
return c
}

// SetDisableStats set disable stats
func (c *Client) SetDisableStats(disabled bool) *Client {
c.disableStats = disabled
return c
}

// Whois do the whois query and returns whois information
func (c *Client) Whois(domain string, servers ...string) (result string, err error) {
start := time.Now()
defer func() {
result = fmt.Sprintf("%s\n\n%% Query time: %d msec\n%% WHEN: %s\n",
strings.TrimRight(result, "\n"),
time.Since(start).Milliseconds(),
start.Format("Mon Jan 02 15:04:05 MST 2006"),
)
result = strings.TrimSpace(result)
if result != "" && !c.disableStats {
result = fmt.Sprintf("%s\n\n%% Query time: %d msec\n%% WHEN: %s\n",
result, time.Since(start).Milliseconds(), start.Format("Mon Jan 02 15:04:05 MST 2006"),
)
}
}()

domain = strings.Trim(strings.TrimSpace(domain), ".")
Expand Down

0 comments on commit 30f9adf

Please sign in to comment.