CLEANUP: ssl: remove opendir call in ssl_sock_load_cert
Since commit 3180f7b55434 ("MINOR: ssl: load certificates in
alphabetical order"), `readdir` was replaced by `scandir`. We can indeed
replace it with a check on the previous `stat` call.
This micro cleanup can be a good benefit when you have hundreds of bind
lines which open TLS certificates directories in terms of syscall,
especially in a case of frequent reloads.
Signed-off-by: William Dauchy <w.dauchy@criteo.com>
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index 124b2c6..ff8af23 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -4249,7 +4249,6 @@
{
struct dirent **de_list;
int i, n;
- DIR *dir;
struct stat buf;
char *end;
char fp[MAXPATHLEN+1];
@@ -4265,8 +4264,7 @@
}
if (stat(path, &buf) == 0) {
- dir = opendir(path);
- if (!dir) {
+ if (S_ISDIR(buf.st_mode) == 0) {
ckchs = ckchs_load_cert_file(path, 0, err);
if (!ckchs)
return ERR_ALERT | ERR_FATAL;
@@ -4355,7 +4353,6 @@
}
free(de_list);
}
- closedir(dir);
return cfgerr;
}