@@ -52,46 +52,6 @@ func getProvidedFDs() (savedErr error) {
52
52
once .Do (func () {
53
53
mutex .Lock ()
54
54
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
-
95
55
// now handle some additional systemd provided things
96
56
notifySocketAddr = os .Getenv (notifySocketEnv )
97
57
if notifySocketAddr != "" {
@@ -127,6 +87,43 @@ func getProvidedFDs() (savedErr error) {
127
87
} else {
128
88
log .Trace ("No Systemd Notify Socket provided" )
129
89
}
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
+ }
130
127
})
131
128
return savedErr
132
129
}
0 commit comments