cmd/torrent/main.go | 18 ++---------------- cmd/torrentfs/main.go | 4 ++-- util/loghttp.go | 26 ++++++++++++++++++++++++++ diff --git a/cmd/torrent/main.go b/cmd/torrent/main.go index 02975df4601066b5f67a536c615013799711a364..140c35845065d7e12c24e43f0225e66092b3a41f 100644 --- a/cmd/torrent/main.go +++ b/cmd/torrent/main.go @@ -2,6 +2,7 @@ package main import ( "bitbucket.org/anacrolix/go.torrent/dht" + "bitbucket.org/anacrolix/go.torrent/util" "flag" "fmt" "log" @@ -41,22 +42,7 @@ } func main() { if *httpAddr != "" { - addr, err := net.ResolveTCPAddr("tcp", *httpAddr) - if err != nil { - log.Fatalf("error resolving http addr: %s", err) - } - conn, err := net.ListenTCP("tcp", addr) - if err != nil { - log.Fatalf("error creating http conn: %s", err) - } - log.Printf("starting http server on http://%s", conn.Addr()) - go func() { - defer conn.Close() - err = (&http.Server{}).Serve(conn) - if err != nil { - log.Fatalf("error serving http: %s", err) - } - }() + util.LoggedHTTPServe(*httpAddr) } dhtServer := &dht.Server{ Socket: func() *net.UDPConn { diff --git a/cmd/torrentfs/main.go b/cmd/torrentfs/main.go index dfe820501dd4b0f28d981c25b92b181005aa8ed0..e8e7211d6c4bd1b92c77efc5eb7602630b37b1f7 100644 --- a/cmd/torrentfs/main.go +++ b/cmd/torrentfs/main.go @@ -27,7 +27,7 @@ torrentPath string mountDir string disableTrackers = flag.Bool("disableTrackers", false, "disables trackers") testPeer = flag.String("testPeer", "", "the address for a test peer") - httpAddr = flag.String("httpAddr", "", "HTTP server bind address") + httpAddr = flag.String("httpAddr", "localhost:0", "HTTP server bind address") readaheadBytes = flag.Int("readaheadBytes", 10*1024*1024, "bytes to readahead in each torrent from the last read piece") testPeerAddr *net.TCPAddr ) @@ -94,7 +94,7 @@ os.Exit(2) } log.SetFlags(log.LstdFlags | log.Lshortfile) if *httpAddr != "" { - go http.ListenAndServe(*httpAddr, nil) + util.LoggedHTTPServe(*httpAddr) } conn, err := fuse.Mount(mountDir) if err != nil { diff --git a/util/loghttp.go b/util/loghttp.go new file mode 100644 index 0000000000000000000000000000000000000000..b63ad4e4674a5c5d10e9c3b88bf816f73f86d084 --- /dev/null +++ b/util/loghttp.go @@ -0,0 +1,26 @@ +package util + +import ( + "log" + "net" + "net/http" +) + +func LoggedHTTPServe(addr string) { + netAddr, err := net.ResolveTCPAddr("tcp", addr) + if err != nil { + log.Fatalf("error resolving http addr: %s", err) + } + conn, err := net.ListenTCP("tcp", netAddr) + if err != nil { + log.Fatalf("error creating http conn: %s", err) + } + log.Printf("starting http server on http://%s", conn.Addr()) + go func() { + defer conn.Close() + err = (&http.Server{}).Serve(conn) + if err != nil { + log.Fatalf("error serving http: %s", err) + } + }() +}