rsslair/server.go

40 lines
810 B
Go

package main
import (
"net/http"
lua "github.com/yuin/gopher-lua"
)
func start_server(address string, port string, L *lua.LState) *http.Server {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
path := r.URL.Path
logger.Debug("Request received: ", path)
if _, ok := routes[path]; !ok {
w.WriteHeader(http.StatusNotFound)
return
}
response := responses[path]
logger.Trace("API Response: ", response)
w.Write([]byte(response))
})
listening := address + ":" + port
server := &http.Server{
Addr: listening,
Handler: nil,
}
go func() {
// TODO: Add an error message for this
if err := server.ListenAndServe(); err != http.ErrServerClosed {
logger.Fatalf("Server Error: %v", err)
}
}()
logger.Info("Listening on ", listening)
return server
}