|
|
@ -2,6 +2,7 @@ package main
|
|
2
|
2
|
|
|
3
|
3
|
import (
|
|
4
|
4
|
"errors"
|
|
|
5
|
"flag"
|
|
5
|
6
|
"fmt"
|
|
6
|
7
|
"net/http"
|
|
7
|
8
|
"net/url"
|
|
|
@ -13,19 +14,24 @@ import (
|
|
13
|
14
|
"github.com/golang/groupcache/lru"
|
|
14
|
15
|
)
|
|
15
|
16
|
|
|
16
|
|
var port = "8080"
|
|
|
17
|
var port = flag.Int("p", 8080, "port [8080]")
|
|
|
18
|
var cacheSize = flag.Int("s", 10000, "cache size [10000]")
|
|
17
|
19
|
|
|
18
|
|
var faviconCache = lru.New(10000)
|
|
|
20
|
var faviconCache *lru.Cache
|
|
19
|
21
|
var lock sync.RWMutex
|
|
20
|
22
|
|
|
21
|
23
|
func main() {
|
|
|
24
|
flag.Parse()
|
|
|
25
|
|
|
|
26
|
faviconCache = lru.New(*cacheSize)
|
|
|
27
|
|
|
22
|
28
|
http.HandleFunc("/favicon", HandleGetFavicon)
|
|
23
|
29
|
if p := os.Getenv("PORT"); p != "" {
|
|
24
|
|
port = p
|
|
|
30
|
flag.Set("p", p)
|
|
25
|
31
|
}
|
|
26
|
|
fmt.Printf("listening on :%s\n", port)
|
|
27
|
|
err := http.ListenAndServe(fmt.Sprintf(":%s", port), nil)
|
|
28
|
32
|
|
|
|
33
|
fmt.Printf("listening on :%d\n", *port)
|
|
|
34
|
err := http.ListenAndServe(fmt.Sprintf(":%d", *port), nil)
|
|
29
|
35
|
if err != nil {
|
|
30
|
36
|
fmt.Println("error: ", err)
|
|
31
|
37
|
os.Exit(1)
|