mirror of
https://github.com/shlldev/miniws.git
synced 2025-09-02 19:00:59 +02:00
first commit, everything works
This commit is contained in:
41
main.go
Normal file
41
main.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
PATH_ACCESSLOG string = "access.log"
|
||||
PATH_ERRORLOG string = "error.log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
http.HandleFunc("/{resource...}", get)
|
||||
log.Println("Server started")
|
||||
http.ListenAndServe(":8080", nil)
|
||||
}
|
||||
|
||||
func get(writer http.ResponseWriter, req *http.Request) {
|
||||
fetchedData, fetchErr := fetchFileContents(req.URL.Path)
|
||||
respStatusCode := int(200)
|
||||
var sentBytes int = 0
|
||||
if logIfError(fetchErr) {
|
||||
respStatusCode = http.StatusNotFound
|
||||
writer.WriteHeader(respStatusCode)
|
||||
} else {
|
||||
sentBytesCount, _ := writer.Write(fetchedData)
|
||||
sentBytes = sentBytesCount
|
||||
}
|
||||
logAccess(strings.Split(req.RemoteAddr, ":")[0], "-", getOrDash(req.URL.User.Username()), time.Now().Format("02/Jan/2006:03:04:05 -0700"),
|
||||
req.Method+" "+req.URL.Path+" "+getHttpString(req.ProtoMajor, req.ProtoMinor), strconv.Itoa(respStatusCode),
|
||||
strconv.Itoa(sentBytes),
|
||||
)
|
||||
}
|
||||
|
||||
func getHttpString(major, minor int) string {
|
||||
return "HTTP/" + strconv.Itoa(major) + "." + strconv.Itoa(minor)
|
||||
}
|
Reference in New Issue
Block a user