diff --git a/main.go b/main.go
index 6fe17ee..de11eee 100644
--- a/main.go
+++ b/main.go
@@ -70,6 +70,7 @@ func NewShortLinks(db *sql.DB, domainAliases map[string]string, writableDomains
sl.mux.HandleFunc("GET /{$}", sl.serveRoot)
sl.mux.HandleFunc("GET /_help", sl.serveHelp)
+ sl.mux.HandleFunc("GET /_favicon.png", sl.serveFavicon)
sl.mux.HandleFunc("GET /{short}", sl.serveShort)
sl.mux.HandleFunc("POST /{$}", sl.serveSet)
sl.mux.HandleFunc("QUERY /{$}", sl.serveSuggest)
@@ -133,7 +134,11 @@ func (sl *ShortLinks) serveRootWithPath(w http.ResponseWriter, r *http.Request,
}
func (sl *ShortLinks) serveShort(w http.ResponseWriter, r *http.Request) {
- log.Printf("%s %s %s %s %s %s", r.RemoteAddr, r.Method, r.Host, sl.getDomain(r.Host), r.URL, r.Form)
+ err := sl.initRequest(w, r)
+ if err != nil {
+ sendError(w, http.StatusBadRequest, "init request: %s", err)
+ return
+ }
short := r.PathValue("short")
@@ -287,6 +292,17 @@ func (sl *ShortLinks) genShort(domain string) (string, error) {
return "", fmt.Errorf("no available short link found")
}
+func (sl *ShortLinks) serveFavicon(w http.ResponseWriter, r *http.Request) {
+ err := sl.initRequest(w, r)
+ if err != nil {
+ sendError(w, http.StatusBadRequest, "init request: %s", err)
+ return
+ }
+
+ w.Header().Set("Content-Type", "image/png")
+ http.ServeFile(w, r, "static/favicon.png")
+}
+
func (sl *ShortLinks) getDomain(host string) string {
if alias, ok := sl.domainAliases[host]; ok {
return alias
@@ -339,7 +355,6 @@ func (sl *ShortLinks) initRequest(w http.ResponseWriter, r *http.Request) error
}
default:
- log.Printf("unknown type: %T", v)
r.Form.Set(k, fmt.Sprintf("%v", v))
}
}
diff --git a/static/favicon.png b/static/favicon.png
new file mode 100644
index 0000000..eaed5d9
Binary files /dev/null and b/static/favicon.png differ
diff --git a/static/help.html b/static/help.html
index 4d0a7c7..e1b6607 100644
--- a/static/help.html
+++ b/static/help.html
@@ -33,7 +33,8 @@ a {
}
-
+
+
-
+
+