]> git.sesse.net Git - cubemap/blobdiff - log.cpp
Capitalize HTTP header names after dashes.
[cubemap] / log.cpp
diff --git a/log.cpp b/log.cpp
index 409639fed7fa02e913b7024db82c6a92a8ca9f3a..198ceae9f64633031397fe5117deddb2b013404e 100644 (file)
--- a/log.cpp
+++ b/log.cpp
@@ -9,12 +9,14 @@
 #include <string>
 #include <vector>
 
+#include "tlse.h"
+
 #include "log.h"
 
 using namespace std;
 
 // Yes, it's a bit ugly.
-#define SYSLOG_FAKE_FILE (static_cast<FILE *>(NULL))
+#define SYSLOG_FAKE_FILE (static_cast<FILE *>(nullptr))
 
 bool logging_started = false;
 vector<FILE *> log_destinations;
@@ -22,7 +24,7 @@ vector<FILE *> log_destinations;
 void add_log_destination_file(const string &filename)
 {
        FILE *fp = fopen(filename.c_str(), "a");
-       if (fp == NULL) {
+       if (fp == nullptr) {
                perror(filename.c_str());
                return;
        }
@@ -69,11 +71,11 @@ void log(LogLevel log_level, const char *fmt, ...)
        vsnprintf(formatted_msg, sizeof(formatted_msg), fmt, ap);
        va_end(ap);
 
-       time_t now = time(NULL);
+       time_t now = time(nullptr);
        struct tm lt;
        struct tm *ltime = localtime_r(&now, &lt);
        char timestamp[1024];
-       if (ltime == NULL) {
+       if (ltime == nullptr) {
                strcpy(timestamp, "???");
        } else {
                strftime(timestamp, sizeof(timestamp), "%a, %d %b %Y %T %z", ltime);
@@ -126,3 +128,66 @@ void log_perror(const char *msg)
        char errbuf[4096];
        log(ERROR, "%s: %s", msg, strerror_r(errno, errbuf, sizeof(errbuf)));
 }
+
+void log_tls_error(const char *msg, int tls_err)
+{
+       switch (tls_err) {
+       case TLS_NEED_MORE_DATA:
+               log(ERROR, "%s: Need more data (TLS)", msg);
+               break;
+       case TLS_GENERIC_ERROR:
+               log(ERROR, "%s: Generic TLS error", msg);
+               break;
+       case TLS_BROKEN_PACKET:
+               log(ERROR, "%s: Broken TLS packet", msg);
+               break;
+       case TLS_NOT_UNDERSTOOD:
+               log(ERROR, "%s: Not understood (TLS)", msg);
+               break;
+       case TLS_NOT_SAFE:
+               log(ERROR, "%s: Not safe (TLS)", msg);
+               break;
+       case TLS_NO_COMMON_CIPHER:
+               log(ERROR, "%s: No common TLS cipher", msg);
+               break;
+       case TLS_UNEXPECTED_MESSAGE:
+               log(ERROR, "%s: Unexpected TLS message", msg);
+               break;
+       case TLS_CLOSE_CONNECTION:
+               log(ERROR, "%s: Close TLS connection", msg);
+               break;
+       case TLS_COMPRESSION_NOT_SUPPORTED:
+               log(ERROR, "%s: TLS compression not supported", msg);
+               break;
+       case TLS_NO_MEMORY:
+               log(ERROR, "%s: No TLS memory", msg);
+               break;
+       case TLS_NOT_VERIFIED:
+               log(ERROR, "%s: Not verified (TLS)", msg);
+               break;
+       case TLS_INTEGRITY_FAILED:
+               log(ERROR, "%s: TLS integrity failed", msg);
+               break;
+       case TLS_ERROR_ALERT:
+               log(ERROR, "%s: TLS alert", msg);
+               break;
+       case TLS_BROKEN_CONNECTION:
+               log(ERROR, "%s: Broken TLS connection", msg);
+               break;
+       case TLS_BAD_CERTIFICATE:
+               log(ERROR, "%s: Bad TLS certificate", msg);
+               break;
+       case TLS_UNSUPPORTED_CERTIFICATE:
+               log(ERROR, "%s: Unsupported TLS certificate", msg);
+               break;
+       case TLS_NO_RENEGOTIATION:
+               log(ERROR, "%s: No TLS renegotiation", msg);
+               break;
+       case TLS_FEATURE_NOT_SUPPORTED:
+               log(ERROR, "%s: TLS feature not supported", msg);
+               break;
+       default:
+               log(ERROR, "%s: Unknown TLS error %d", msg, tls_err);
+               break;
+       }
+}