2
0
mirror of synced 2025-02-24 06:38:14 +00:00

Abstract the status HTTP server into package util

This commit is contained in:
Matt Joiner 2014-07-23 01:54:58 +10:00
parent 6158b1f6ec
commit 7cc22565ed
3 changed files with 30 additions and 18 deletions

View 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 {

View 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 {

26
util/loghttp.go Normal file
View File

@ -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)
}
}()
}