X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal-remote%2Fmicrohttpd-util.c;h=277e1254031326e14c8e713057fdcc77d929a828;hb=becb1a6e9deabad529c8bc1c90eb7d947505695b;hp=d0466867b7768377a6404bc7699071bf082a3c0f;hpb=1e4e7b71e1938daa9b2b9718a9f54c69017a9ef5;p=elogind.git diff --git a/src/journal-remote/microhttpd-util.c b/src/journal-remote/microhttpd-util.c index d0466867b..277e12540 100644 --- a/src/journal-remote/microhttpd-util.c +++ b/src/journal-remote/microhttpd-util.c @@ -41,7 +41,7 @@ void microhttpd_logger(void *arg, const char *fmt, va_list ap) { f = strappenda("microhttpd: ", fmt); DISABLE_WARNING_FORMAT_NONLITERAL; - log_metav(LOG_INFO, NULL, 0, NULL, f, ap); + log_internalv(LOG_INFO, 0, NULL, 0, NULL, f, ap); REENABLE_WARNING; } @@ -126,11 +126,10 @@ void log_func_gnutls(int level, const char *message) { if (0 <= level && level < (int) ELEMENTSOF(gnutls_log_map)) { if (gnutls_log_map[level].enabled) - log_meta(gnutls_log_map[level].level, NULL, 0, NULL, - "gnutls %d/%s: %s", level, gnutls_log_map[level].names[1], message); + log_internal(gnutls_log_map[level].level, 0, NULL, 0, NULL, "gnutls %d/%s: %s", level, gnutls_log_map[level].names[1], message); } else { log_debug("Received GNUTLS message with unknown level %d.", level); - log_meta(LOG_DEBUG, NULL, 0, NULL, "gnutls: %s", message); + log_internal(LOG_DEBUG, 0, NULL, 0, NULL, "gnutls: %s", message); } } @@ -171,17 +170,13 @@ static int verify_cert_authorized(gnutls_session_t session) { int r; r = gnutls_certificate_verify_peers2(session, &status); - if (r < 0) { - log_error("gnutls_certificate_verify_peers2 failed: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "gnutls_certificate_verify_peers2 failed: %m"); type = gnutls_certificate_type_get(session); r = gnutls_certificate_verification_status_print(status, type, &out, 0); - if (r < 0) { - log_error("gnutls_certificate_verification_status_print failed: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "gnutls_certificate_verification_status_print failed: %m"); log_info("Certificate status: %s", out.data); @@ -243,7 +238,7 @@ static int get_auth_dn(gnutls_x509_crt_t client_cert, char **buf) { return 0; } -int check_permissions(struct MHD_Connection *connection, int *code) { +int check_permissions(struct MHD_Connection *connection, int *code, char **hostname) { const union MHD_ConnectionInfo *ci; gnutls_session_t session; gnutls_x509_crt_t client_cert; @@ -282,6 +277,11 @@ int check_permissions(struct MHD_Connection *connection, int *code) { log_info("Connection from %s", buf); + if (hostname) { + *hostname = buf; + buf = NULL; + } + r = verify_cert_authorized(session); if (r < 0) { log_warning("Client is not authorized"); @@ -292,7 +292,7 @@ int check_permissions(struct MHD_Connection *connection, int *code) { } #else -int check_permissions(struct MHD_Connection *connection, int *code) { +int check_permissions(struct MHD_Connection *connection, int *code, char **hostname) { return -EPERM; } #endif