Files
reseed-tools/cmd/reseeder.go
2014-12-10 01:10:37 -06:00

49 lines
958 B
Go

package cmd
import (
"fmt"
"log"
"net/http"
"github.com/MDrollette/go-i2p/reseed"
"github.com/codegangsta/cli"
)
func NewReseedCommand() cli.Command {
return cli.Command{
Name: "reseed",
Usage: "Start a reseed server",
Description: "Start a reseed server",
Action: reseedAction,
Flags: []cli.Flag{
cli.StringFlag{
Name: "addr",
Value: "127.0.0.1:8080",
Usage: "IP and port to listen on",
},
},
}
}
func reseedAction(c *cli.Context) {
log.Println("Starting server on", c.String("addr"))
netdb := reseed.NewLocalNetDb(c.Args().Get(0))
reseeder := reseed.NewReseeder(netdb)
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
peer := reseeder.Peer(r)
seeds, err := reseeder.Seed(peer)
if nil != err {
fmt.Fprintf(w, "Problem: '%s'", err)
return
}
for _, s := range seeds {
fmt.Fprintf(w, "%s\n", s.Name)
}
})
http.ListenAndServe("127.0.0.1:9090", nil)
}