|
@@ -18,26 +18,26 @@ import (
|
|
|
|
|
|
const C_Debug = !false
|
|
const C_Debug = !false
|
|
|
|
|
|
-var FParamHost string
|
|
|
|
-var FParamPort int
|
|
|
|
-var FParamWwwDir string
|
|
|
|
-var FVhostHomeDir string
|
|
|
|
|
|
+var ParamHost string
|
|
|
|
+var ParamPort int
|
|
|
|
+var ParamWwwDir string
|
|
|
|
+var VhostHomeDir string
|
|
|
|
|
|
func init() {
|
|
func init() {
|
|
- flag.StringVar(&FParamHost, "host", "0.0.0.0", "server host")
|
|
|
|
- flag.IntVar(&FParamPort, "port", 8080, "server port")
|
|
|
|
- flag.StringVar(&FParamWwwDir, "dir", "", "virtual hosts directory")
|
|
|
|
|
|
+ flag.StringVar(&ParamHost, "host", "0.0.0.0", "server host")
|
|
|
|
+ flag.IntVar(&ParamPort, "port", 8080, "server port")
|
|
|
|
+ flag.StringVar(&ParamWwwDir, "dir", "", "virtual hosts directory")
|
|
flag.Parse()
|
|
flag.Parse()
|
|
}
|
|
}
|
|
|
|
|
|
func main() {
|
|
func main() {
|
|
- if _, err := os.Stat(FParamWwwDir); os.IsNotExist(err) {
|
|
|
|
|
|
+ if _, err := os.Stat(ParamWwwDir); os.IsNotExist(err) {
|
|
fmt.Println("Virtual hosts directory is not exists")
|
|
fmt.Println("Virtual hosts directory is not exists")
|
|
fmt.Println("Example: ./fave -host 127.0.0.1 -port 80 -dir ./hosts")
|
|
fmt.Println("Example: ./fave -host 127.0.0.1 -port 80 -dir ./hosts")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if FParamWwwDir[len(FParamWwwDir)-1] != '/' {
|
|
|
|
- FParamWwwDir = FParamWwwDir + "/"
|
|
|
|
|
|
+ if ParamWwwDir[len(ParamWwwDir)-1] != '/' {
|
|
|
|
+ ParamWwwDir = ParamWwwDir + "/"
|
|
}
|
|
}
|
|
|
|
|
|
// Handle
|
|
// Handle
|
|
@@ -45,7 +45,7 @@ func main() {
|
|
mux.HandleFunc("/", handler)
|
|
mux.HandleFunc("/", handler)
|
|
|
|
|
|
srv := &http.Server{
|
|
srv := &http.Server{
|
|
- Addr: fmt.Sprintf("%s:%d", FParamHost, FParamPort),
|
|
|
|
|
|
+ Addr: fmt.Sprintf("%s:%d", ParamHost, ParamPort),
|
|
Handler: mux,
|
|
Handler: mux,
|
|
}
|
|
}
|
|
|
|
|
|
@@ -53,7 +53,7 @@ func main() {
|
|
signal.Notify(stop, os.Interrupt)
|
|
signal.Notify(stop, os.Interrupt)
|
|
|
|
|
|
go func() {
|
|
go func() {
|
|
- log.Printf("Starting server at %s:%d", FParamHost, FParamPort)
|
|
|
|
|
|
+ log.Printf("Starting server at %s:%d", ParamHost, ParamPort)
|
|
if err := srv.ListenAndServe(); err != nil {
|
|
if err := srv.ListenAndServe(); err != nil {
|
|
if err != http.ErrServerClosed {
|
|
if err != http.ErrServerClosed {
|
|
log.Fatal(err)
|
|
log.Fatal(err)
|
|
@@ -90,7 +90,7 @@ func vhExists(vhosthome string) bool {
|
|
func handler(w http.ResponseWriter, r *http.Request) {
|
|
func handler(w http.ResponseWriter, r *http.Request) {
|
|
// Build vhost home dir
|
|
// Build vhost home dir
|
|
host := r.Host
|
|
host := r.Host
|
|
- port := strconv.Itoa(FParamPort)
|
|
|
|
|
|
+ port := strconv.Itoa(ParamPort)
|
|
index := strings.Index(host, ":")
|
|
index := strings.Index(host, ":")
|
|
if index > -1 {
|
|
if index > -1 {
|
|
port = host[index+1:]
|
|
port = host[index+1:]
|
|
@@ -101,12 +101,12 @@ func handler(w http.ResponseWriter, r *http.Request) {
|
|
if strings.HasPrefix(host, "www.") {
|
|
if strings.HasPrefix(host, "www.") {
|
|
host = host[4:]
|
|
host = host[4:]
|
|
}
|
|
}
|
|
- FVhostHomeDir = FParamWwwDir + host
|
|
|
|
|
|
+ VhostHomeDir = ParamWwwDir + host
|
|
|
|
|
|
// Check if virtual host exists
|
|
// Check if virtual host exists
|
|
- if !vhExists(FVhostHomeDir) {
|
|
|
|
|
|
+ if !vhExists(VhostHomeDir) {
|
|
host = "localhost"
|
|
host = "localhost"
|
|
- FVhostHomeDir = FParamWwwDir + host
|
|
|
|
|
|
+ VhostHomeDir = ParamWwwDir + host
|
|
}
|
|
}
|
|
|
|
|
|
// Set protocol
|
|
// Set protocol
|
|
@@ -116,7 +116,7 @@ func handler(w http.ResponseWriter, r *http.Request) {
|
|
w.Header().Set("Server", "fave.pro")
|
|
w.Header().Set("Server", "fave.pro")
|
|
|
|
|
|
// Create and start engine
|
|
// Create and start engine
|
|
- wrapper.New(&w, r, host, port, FParamWwwDir, FVhostHomeDir, C_Debug).
|
|
|
|
|
|
+ wrapper.New(&w, r, host, port, ParamWwwDir, VhostHomeDir, C_Debug).
|
|
Run(func(wrapper *wrapper.Wrapper) bool {
|
|
Run(func(wrapper *wrapper.Wrapper) bool {
|
|
// Actions
|
|
// Actions
|
|
action := actions.New(wrapper)
|
|
action := actions.New(wrapper)
|