Hi,

Add more information into syslogd tls config error messages.

ok?

bluhm

Index: usr.sbin/syslogd/syslogd.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/syslogd/syslogd.c,v
retrieving revision 1.211
diff -u -p -r1.211 syslogd.c
--- usr.sbin/syslogd/syslogd.c  17 Aug 2016 12:18:29 -0000      1.211
+++ usr.sbin/syslogd/syslogd.c  22 Aug 2016 17:08:56 -0000
@@ -327,6 +327,7 @@ void        logevent(int, const char *);
 void   logerror(const char *);
 void   logerrorx(const char *);
 void   logerrorctx(const char *, struct tls *);
+void   logerrortlsconf(const char *, struct tls_config *);
 void   logerror_reason(const char *, const char *);
 void   logmsg(int, char *, char *, int);
 struct filed *find_dup(struct filed *);
@@ -564,22 +565,25 @@ main(int argc, char *argv[])
                } else {
                        if (tls_config_set_ca_file(client_config,
                            CAfile) == -1) {
+                               logerrortlsconf("Load client TLS CA failed",
+                                   client_config);
                                /* avoid reading default certs in chroot */
                                tls_config_set_ca_mem(client_config, "", 0);
-                               logerror("load client TLS CA failed");
                        } else
                                logdebug("CAfile %s\n", CAfile);
                }
                if (ClientCertfile && ClientKeyfile) {
                        if (tls_config_set_cert_file(client_config,
                            ClientCertfile) == -1)
-                               logerror("load client TLS cert failed");
+                               logerrortlsconf("Load client TLS cert failed",
+                                   client_config);
                        else
                                logdebug("ClientCertfile %s\n", ClientCertfile);
 
                        if (tls_config_set_key_file(client_config,
                            ClientKeyfile) == -1)
-                               logerror("load client TLS key failed");
+                               logerrortlsconf("Load client TLS key failed",
+                                   client_config);
                        else
                                logdebug("ClientKeyfile %s\n", ClientKeyfile);
                } else if (ClientCertfile || ClientKeyfile) {
@@ -587,7 +591,8 @@ main(int argc, char *argv[])
                }
                tls_config_set_protocols(client_config, TLS_PROTOCOLS_ALL);
                if (tls_config_set_ciphers(client_config, "all") != 0)
-                       logerror("tls set client ciphers");
+                       logerrortlsconf("Set client TLS ciphers failed",
+                           client_config);
        }
        if (server_config && server_ctx) {
                const char *names[2];
@@ -600,8 +605,9 @@ main(int argc, char *argv[])
                            == -1)
                                continue;
                        if (tls_config_set_key_file(server_config, p) == -1) {
+                               logerrortlsconf("Load server TLS key failed",
+                                   server_config);
                                free(p);
-                               logerrorx("tls_config_set_key_file");
                                continue;
                        }
                        logdebug("Keyfile %s\n", p);
@@ -609,8 +615,9 @@ main(int argc, char *argv[])
                        if (asprintf(&p, "/etc/ssl/%s.crt", names[i]) == -1)
                                continue;
                        if (tls_config_set_cert_file(server_config, p) == -1) {
+                               logerrortlsconf("Load server TLS cert failed",
+                                   server_config);
                                free(p);
-                               logerrorx("tls_config_set_cert_file");
                                continue;
                        }
                        logdebug("Certfile %s\n", p);
@@ -620,9 +627,10 @@ main(int argc, char *argv[])
 
                tls_config_set_protocols(server_config, TLS_PROTOCOLS_ALL);
                if (tls_config_set_ciphers(server_config, "compat") != 0)
-                       logerror("tls set server ciphers");
+                       logerrortlsconf("Set server TLS ciphers failed",
+                           server_config);
                if (tls_configure(server_ctx, server_config) != 0) {
-                       logerrorx("tls_configure server");
+                       logerrorctx("tls_configure server", server_ctx);
                        tls_free(server_ctx);
                        server_ctx = NULL;
                        close(fd_tls);
@@ -2061,6 +2069,12 @@ void
 logerrorctx(const char *message, struct tls *ctx)
 {
        logerror_reason(message, ctx ? tls_error(ctx) : NULL);
+}
+
+void
+logerrortlsconf(const char *message, struct tls_config *config)
+{
+       logerror_reason(message, config ? tls_config_error(config) : NULL);
 }
 
 void

Reply via email to