Skip to content

Commit

Permalink
Merge pull request #29 from fvbock/fzerorubigd-flags-are-lame
Browse files Browse the repository at this point in the history
Fzerorubigd flags are lame
  • Loading branch information
fvbock committed May 30, 2016
2 parents 9c05cc1 + 14fb7bd commit 2cdc20a
Showing 1 changed file with 15 additions and 18 deletions.
33 changes: 15 additions & 18 deletions endless.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package endless
import (
"crypto/tls"
"errors"
"flag"
"fmt"
"log"
"net"
Expand Down Expand Up @@ -49,9 +48,6 @@ var (
)

func init() {
flag.BoolVar(&isChild, "continue", false, "listen on open fd (after forking)")
flag.StringVar(&socketOrder, "socketorder", "", "previous initialization order - used when more than one listener was started")

runningServerReg = sync.RWMutex{}
runningServers = make(map[string]*endlessServer)
runningServersOrder = []string{}
Expand Down Expand Up @@ -93,9 +89,10 @@ actually "start" the server.
func NewServer(addr string, handler http.Handler) (srv *endlessServer) {
runningServerReg.Lock()
defer runningServerReg.Unlock()
if !flag.Parsed() {
flag.Parse()
}

socketOrder = os.Getenv("ENDLESS_SOCKET_ORDER")
isChild = os.Getenv("ENDLESS_CONTINUE") != ""

if len(socketOrder) > 0 {
for i, addr := range strings.Split(socketOrder, ",") {
socketPtrOffsetMap[addr] = uint(i)
Expand Down Expand Up @@ -448,27 +445,27 @@ func (srv *endlessServer) fork() (err error) {
orderArgs[socketPtrOffsetMap[srvPtr.Server.Addr]] = srvPtr.Server.Addr
}

env := append(
os.Environ(),
"ENDLESS_CONTINUE=1",
)
if len(runningServers) > 1 {
env = append(env, fmt.Sprintf(`ENDLESS_SOCKET_ORDER=%s`, strings.Join(orderArgs, ",")))
}

// log.Println(files)
path := os.Args[0]
var args []string
if len(os.Args) > 1 {
for _, arg := range os.Args[1:] {
if arg == "-continue" {
break
}
args = append(args, arg)
}
}
args = append(args, "-continue")
if len(runningServers) > 1 {
args = append(args, fmt.Sprintf(`-socketorder=%s`, strings.Join(orderArgs, ",")))
// log.Println(args)
args = os.Args[1:]
}

cmd := exec.Command(path, args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.ExtraFiles = files
cmd.Env = env

// cmd.SysProcAttr = &syscall.SysProcAttr{
// Setsid: true,
// Setctty: true,
Expand Down

0 comments on commit 2cdc20a

Please sign in to comment.