Mercurial > mercurial > hgweb_rsearcher.cgi
diff go/server.go @ 3:db4813125eb8
many changes.
author | pyon@macmini |
---|---|
date | Thu, 11 Oct 2018 22:11:09 +0900 |
parents | eaa27e4ed5be |
children | 06342fc544e4 |
line wrap: on
line diff
--- a/go/server.go Tue Oct 02 21:20:05 2018 +0900 +++ b/go/server.go Thu Oct 11 22:11:09 2018 +0900 @@ -1,7 +1,7 @@ /* server.go : server-program. Version : 1.0 - Last Change: 2018-10-01 Mon 22:58:23. + Last Change: 2018-10-03 水 10:22:04. install to: server_root/ @@ -20,14 +20,21 @@ "net" "net/http" "os" + "time" ) +var server string +var port string +var server_root string + +func init() { + port = ":3910" + server_root = filepath.Dir( os.Args[0] ) +} + func main() { - var server string - var port = ":3910" - var server_root = filepath.Dir (os.Args[0] ) - + // setting IP-Address & Port addrs, err := net.InterfaceAddrs() if err != nil { log.Fatal( err ) @@ -40,18 +47,20 @@ } } + // start Web-server fmt.Println( "server start [", server, "]" ) - http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) { - file := filepath.Join( server_root, filepath.FromSlash( r.URL.Path ) ) - fmt.Println( file ) - f, err := os.Open( file ) - if err != nil { - http.NotFound( w, r ) - return - } - defer f.Close() - io.Copy( w, f ) - } ) + http.HandleFunc( "/", handler ) log.Fatal( http.ListenAndServe( server, nil ) ) } +func handler( w http.ResponseWriter, r *http.Request ) { + file := filepath.Join( server_root, filepath.FromSlash( r.URL.Path ) ) + fmt.Println( "[access]", r.RemoteAddr, "|", time.Now().Format( "2006-01-02 15:04" ), "|", file ) + f, err := os.Open( file ) + if err != nil { + http.NotFound( w, r ) + return + } + defer f.Close() + io.Copy( w, f ) +}