@@ -82,6 +82,7 @@ func fileExists(filename string) bool {
82
82
return ! info .IsDir ()
83
83
}
84
84
85
+ // An error is returned of the given TLS configuration is invalid.
85
86
func validateTLSFiles (argCafile , argKey , argCert string ) error {
86
87
if len (argCafile ) > 0 {
87
88
if ! fileExists (argCafile ) {
@@ -109,6 +110,18 @@ func validateTLSFiles(argCafile, argKey, argCert string) error {
109
110
return nil
110
111
}
111
112
113
+ // loadTLSFile loads the given file. If the filename is empty neither data nor an error is returned.
114
+ func loadTLSFile (fileName string ) ([]byte , error ) {
115
+ if len (fileName ) > 0 {
116
+ data , err := ioutil .ReadFile (fileName )
117
+ if err != nil {
118
+ return nil , fmt .Errorf ("failed to load TLS file: %s: %w" , fileName , err )
119
+ }
120
+ return data , nil
121
+ }
122
+ return nil , nil
123
+ }
124
+
112
125
func main () {
113
126
flag .Parse ()
114
127
@@ -185,23 +198,22 @@ func main() {
185
198
if err := validateTLSFiles (* argCafile , * argKey , * argCert ); err != nil {
186
199
fmt .Fprintln (os .Stderr , err )
187
200
os .Exit (1 )
188
- } else {
189
- var err error
190
- ca , err = ioutil .ReadFile (* argCafile )
191
- if err != nil {
192
- fmt .Fprintln (os .Stderr , err )
193
- os .Exit (1 )
194
- }
195
- cert , err = ioutil .ReadFile (* argCert )
196
- if err != nil {
197
- fmt .Fprintln (os .Stderr , err )
198
- os .Exit (1 )
199
- }
200
- key , err = ioutil .ReadFile (* argKey )
201
- if err != nil {
202
- fmt .Fprintln (os .Stderr , err )
203
- os .Exit (1 )
204
- }
201
+ }
202
+
203
+ ca , err = loadTLSFile (* argCafile )
204
+ if err != nil {
205
+ fmt .Fprintln (os .Stderr , err )
206
+ os .Exit (1 )
207
+ }
208
+ cert , err = loadTLSFile (* argCert )
209
+ if err != nil {
210
+ fmt .Fprintln (os .Stderr , err )
211
+ os .Exit (1 )
212
+ }
213
+ key , err = loadTLSFile (* argKey )
214
+ if err != nil {
215
+ fmt .Fprintln (os .Stderr , err )
216
+ os .Exit (1 )
205
217
}
206
218
207
219
signalChan := make (chan os.Signal , 1 )
0 commit comments