Skip to content

Commit

Permalink
added option to select binding IP
Browse files Browse the repository at this point in the history
  • Loading branch information
damoon committed Feb 22, 2022
1 parent f06d196 commit 63a9521
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
13 changes: 11 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ var (
Usage: "IP to resolve to. Autodetected by default.",
EnvVars: []string{"OVERHERE_RESOLVE_TO"},
}
bind = &cli.StringFlag{
Name: "bind-ip",
Aliases: []string{"bind"},
Usage: "IP to bind.",
Value: "0.0.0.0",
EnvVars: []string{"OVERHERE_PORT"},
}
port = &cli.IntFlag{
Name: "port",
Aliases: []string{"p"},
Expand All @@ -36,6 +43,7 @@ var (
Usage: "A very minimal DNS server for development purposes.",
Flags: []cli.Flag{
resolveTo,
bind,
port,
verbose,
},
Expand All @@ -52,15 +60,16 @@ func main() {

func runServer(c *cli.Context) error {
resolveTo := c.String(resolveTo.Name)
addr := c.String(bind.Name)
port := c.Int(port.Name)
verbose := c.Bool(verbose.Name)

srv, err := overhere.NewServer(resolveTo, port, verbose)
srv, err := overhere.NewServer(resolveTo, addr, port, verbose)
if err != nil {
return fmt.Errorf("setup dns server: %v", err)
}

log.Printf("listen on port: %d", port)
log.Printf("listen on port: %s:%d", addr, port)

err = srv.ListenAndServe()
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions pkg/overhere.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
)

// NewServer sets up a new DNS server.
func NewServer(defaultIP string, port int, verbose bool) (*dns.Server, error) {
func NewServer(defaultIP string, addr string, port int, verbose bool) (*dns.Server, error) {
ip := net.ParseIP(defaultIP)
var err error

Expand All @@ -26,7 +26,7 @@ func NewServer(defaultIP string, port int, verbose bool) (*dns.Server, error) {
log.Printf("resolving to IP: %s", ip)

srv := &dns.Server{
Addr: ":" + strconv.Itoa(port),
Addr: addr + ":" + strconv.Itoa(port),
Net: "udp",
}
srv.Handler = &handler{
Expand Down
2 changes: 1 addition & 1 deletion pkg/overhere_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func TestNewServer(t *testing.T) {
verbose := false

// startup
srv, err := overhere.NewServer("1.2.3.4", port, verbose)
srv, err := overhere.NewServer("1.2.3.4", "127.0.0.1", port, verbose)
if err != nil {
t.Errorf("NewServer() error = %v", err)
return
Expand Down

0 comments on commit 63a9521

Please sign in to comment.