Skip to content

Commit fb82837

Browse files
committed
get notify address first
Signed-off-by: Andrew Thornton <[email protected]>
1 parent 4d4f95a commit fb82837

File tree

1 file changed

+37
-40
lines changed

1 file changed

+37
-40
lines changed

modules/graceful/net_unix.go

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -52,46 +52,6 @@ func getProvidedFDs() (savedErr error) {
5252
once.Do(func() {
5353
mutex.Lock()
5454
defer mutex.Unlock()
55-
56-
numFDs := os.Getenv(listenFDsEnv)
57-
if numFDs == "" {
58-
return
59-
}
60-
n, err := strconv.Atoi(numFDs)
61-
if err != nil {
62-
savedErr = fmt.Errorf("%s is not a number: %s. Err: %v", listenFDsEnv, numFDs, err)
63-
return
64-
}
65-
66-
fdsToUnlinkStr := strings.Split(os.Getenv(unlinkFDsEnv), ",")
67-
providedListenersToUnlink = make([]bool, n)
68-
for _, fdStr := range fdsToUnlinkStr {
69-
i, err := strconv.Atoi(fdStr)
70-
if err != nil || i < 0 || i >= n {
71-
continue
72-
}
73-
providedListenersToUnlink[i] = true
74-
}
75-
76-
for i := startFD; i < n+startFD; i++ {
77-
file := os.NewFile(uintptr(i), fmt.Sprintf("listener_FD%d", i))
78-
79-
l, err := net.FileListener(file)
80-
if err == nil {
81-
// Close the inherited file if it's a listener
82-
if err = file.Close(); err != nil {
83-
savedErr = fmt.Errorf("error closing provided socket fd %d: %s", i, err)
84-
return
85-
}
86-
providedListeners = append(providedListeners, l)
87-
continue
88-
}
89-
90-
// If needed we can handle packetconns here.
91-
savedErr = fmt.Errorf("Error getting provided socket fd %d: %v", i, err)
92-
return
93-
}
94-
9555
// now handle some additional systemd provided things
9656
notifySocketAddr = os.Getenv(notifySocketEnv)
9757
if notifySocketAddr != "" {
@@ -127,6 +87,43 @@ func getProvidedFDs() (savedErr error) {
12787
} else {
12888
log.Trace("No Systemd Notify Socket provided")
12989
}
90+
91+
if numFDs := os.Getenv(listenFDsEnv); numFDs != "" {
92+
n, err := strconv.Atoi(numFDs)
93+
if err != nil {
94+
savedErr = fmt.Errorf("%s is not a number: %s. Err: %v", listenFDsEnv, numFDs, err)
95+
return
96+
}
97+
98+
fdsToUnlinkStr := strings.Split(os.Getenv(unlinkFDsEnv), ",")
99+
providedListenersToUnlink = make([]bool, n)
100+
for _, fdStr := range fdsToUnlinkStr {
101+
i, err := strconv.Atoi(fdStr)
102+
if err != nil || i < 0 || i >= n {
103+
continue
104+
}
105+
providedListenersToUnlink[i] = true
106+
}
107+
108+
for i := startFD; i < n+startFD; i++ {
109+
file := os.NewFile(uintptr(i), fmt.Sprintf("listener_FD%d", i))
110+
111+
l, err := net.FileListener(file)
112+
if err == nil {
113+
// Close the inherited file if it's a listener
114+
if err = file.Close(); err != nil {
115+
savedErr = fmt.Errorf("error closing provided socket fd %d: %s", i, err)
116+
return
117+
}
118+
providedListeners = append(providedListeners, l)
119+
continue
120+
}
121+
122+
// If needed we can handle packetconns here.
123+
savedErr = fmt.Errorf("Error getting provided socket fd %d: %v", i, err)
124+
return
125+
}
126+
}
130127
})
131128
return savedErr
132129
}

0 commit comments

Comments
 (0)