package main

// findunusedport finds a random unused TCP port in the range 1k to 64k and prints it to standard out.

import (
	"fmt"
	"math/rand"
	"os"
	"syscall"

	"veyron.io/veyron/veyron2/vlog"
)

func main() {
	rand.Seed(int64(os.Getpid()))
	for i := 0; i < 1000; i++ {
		port := 1024 + rand.Int31n(64512)
		fd, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_STREAM, syscall.IPPROTO_TCP)
		if err != nil {
			continue
		}
		sa := &syscall.SockaddrInet4{Port: int(port)}
		if err := syscall.Bind(fd, sa); err != nil {
			continue
		}
		syscall.Close(fd)
		fmt.Println(port)
		return
	}
	vlog.Fatal("can't find unused port")
}
