]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Abstract the status HTTP server into package util
authorMatt Joiner <anacrolix@gmail.com>
Tue, 22 Jul 2014 15:54:58 +0000 (01:54 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 22 Jul 2014 15:54:58 +0000 (01:54 +1000)
cmd/torrent/main.go
cmd/torrentfs/main.go
util/loghttp.go [new file with mode: 0644]

index 02975df4601066b5f67a536c615013799711a364..140c35845065d7e12c24e43f0225e66092b3a41f 100644 (file)
@@ -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 makeListener() net.Listener {
 
 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 {
index dfe820501dd4b0f28d981c25b92b181005aa8ed0..e8e7211d6c4bd1b92c77efc5eb7602630b37b1f7 100644 (file)
@@ -27,7 +27,7 @@ var (
        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 @@ func main() {
        }
        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 (file)
index 0000000..b63ad4e
--- /dev/null
@@ -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)
+               }
+       }()
+}