mirror of
https://github.com/TeamPiped/http3-ytproxy.git
synced 2024-08-14 23:56:43 +00:00
Simplify port handling and discourage listening on a port.
This commit is contained in:
parent
f3ef98fbfe
commit
590b3e3efa
1 changed files with 38 additions and 8 deletions
46
main.go
46
main.go
|
@ -219,22 +219,52 @@ func getBestThumbnail(path string) (newpath string) {
|
||||||
return strings.Replace(path, "maxres.jpg", "mqdefault.jpg", 1)
|
return strings.Replace(path, "maxres.jpg", "mqdefault.jpg", 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// exists returns whether the given file or directory exists
|
||||||
|
func exists(path string) (bool, error) {
|
||||||
|
_, err := os.Stat(path)
|
||||||
|
if err == nil {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
socket := "socket" + string(os.PathSeparator) + "http-proxy.sock"
|
env_port := os.Getenv("PORT")
|
||||||
syscall.Unlink(socket)
|
port := "8080"
|
||||||
listener, err := net.Listen("unix", socket)
|
|
||||||
|
if env_port != "" {
|
||||||
|
port = env_port
|
||||||
|
}
|
||||||
|
|
||||||
srv := &http.Server{
|
srv := &http.Server{
|
||||||
ReadTimeout: 5 * time.Second,
|
ReadTimeout: 5 * time.Second,
|
||||||
WriteTimeout: 10 * time.Second,
|
WriteTimeout: 10 * time.Second,
|
||||||
Addr: ":8080",
|
Addr: ":" + port,
|
||||||
Handler: &requesthandler{},
|
Handler: &requesthandler{},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exists, err := exists("socket/")
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Failed to bind to UDS, falling back to TCP/IP")
|
log.Panicln(err)
|
||||||
fmt.Println(err.Error())
|
}
|
||||||
srv.ListenAndServe()
|
|
||||||
} else {
|
if env_port == "" && exists {
|
||||||
|
socket := "socket" + string(os.PathSeparator) + "http-proxy.sock"
|
||||||
|
syscall.Unlink(socket)
|
||||||
|
listener, err := net.Listen("unix", socket)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Panicln(err)
|
||||||
|
}
|
||||||
|
|
||||||
defer listener.Close()
|
defer listener.Close()
|
||||||
srv.Serve(listener)
|
srv.Serve(listener)
|
||||||
|
} else {
|
||||||
|
fmt.Println("WARNING: You are listening on a HTTP Socket, you are strongly recommended to use a Unix Domain Socket when running a public instance for performance reasons.")
|
||||||
|
srv.ListenAndServe()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue