Both server running. SSL and Non SSL
This commit is contained in:
+38
-18
@@ -10,41 +10,61 @@ import (
|
||||
"net/http"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
log "github.com/golang/glog"
|
||||
)
|
||||
|
||||
// Conf holds the global configuration state
|
||||
var conf configFile
|
||||
|
||||
func Run(conf configFile, router *mux.Router) chan error {
|
||||
|
||||
errs := make(chan error)
|
||||
|
||||
// Starting HTTP server
|
||||
go func() {
|
||||
log.Infof("Staring HTTP service on %s ...", conf.Host)
|
||||
|
||||
if err := http.ListenAndServe(conf.Host, router); err != nil {
|
||||
errs <- err
|
||||
}
|
||||
|
||||
}()
|
||||
|
||||
if conf.Encrypted {
|
||||
// Starting HTTPS server
|
||||
go func() {
|
||||
log.Infof("Staring HTTPS service on %s ...", conf.SSLHost)
|
||||
if err := http.ListenAndServeTLS(conf.SSLHost, conf.SSLPublicKey, conf.SSLPrivateKey, router); err != nil {
|
||||
errs <- err
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
return errs
|
||||
}
|
||||
|
||||
// Start Parse the configuration file and starts the ipe server
|
||||
func Start(configfile string) error {
|
||||
func Start(configfile string) {
|
||||
rand.Seed(time.Now().Unix())
|
||||
file, err := ioutil.ReadFile(configfile)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if err := json.Unmarshal(file, &conf); err != nil {
|
||||
return err
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
conf.Init()
|
||||
router := newRouter()
|
||||
|
||||
if conf.Encrypted {
|
||||
go func () {
|
||||
if err := http.ListenAndServe(conf.Host, router); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if err := http.ListenAndServeTLS(conf.SSLHost, conf.SSLPublicKey, conf.SSLPrivateKey, router); err != nil {
|
||||
return err
|
||||
}
|
||||
}else{
|
||||
if err := http.ListenAndServe(conf.Host, router); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
errs := Run(conf, router)
|
||||
|
||||
return nil
|
||||
select {
|
||||
case err := <-errs:
|
||||
log.Errorf("Could not start serving service due to (error: %s)", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/dimiro1/ipe/ipe"
|
||||
log "github.com/golang/glog"
|
||||
)
|
||||
|
||||
// Main function, initialze the system
|
||||
@@ -19,9 +18,7 @@ func main() {
|
||||
|
||||
printBanner()
|
||||
|
||||
if err := ipe.Start(*filename); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
ipe.Start(*filename)
|
||||
}
|
||||
|
||||
// Print a beautifull banner
|
||||
|
||||
Reference in New Issue
Block a user