/* Open stored server certificate file. */
if (0 != server_certificate_path(&file, hostname, path, sizeof(path))) {
+ LOG(LOG_DEBUG, "server certificate:\n%s", server_cert);
return -1;
}
size += strlen(buffer);
/* Make sure the buffer is big enough. */
if (sizeof(stored_cert) <= size) {
- LOG(LOG_WARNING, "verify_tls_connection(): '%s' too big",
- path);
+ LOG(LOG_WARNING, "verify_tls_connection(): '%s' too big", path);
fclose(file);
+
+ LOG(LOG_DEBUG, "server certificate:\n%s", server_cert);
return -1;
}
LOG(LOG_WARNING,
"verify_tls_connection(): failed to read from '%s': %s",
path, strerror(errno));
+
+ LOG(LOG_DEBUG, "server certificate:\n%s", server_cert);
return -1;
}
fclose(file);
LOG(LOG_ERROR,
"verify_tls_connection(): server certificate changed!",
path, strerror(errno));
+
+ LOG(LOG_WARNING, "server certificate:\n%s", server_cert);
return -2;
}
return 0;
}
-int server_certificate_path(FILE **file, const char *hostname, char *path, size_t size) {
+int server_certificate_path(FILE **file, const char *hostname,
+ char *path, size_t size) {
/* Hostname too long. */
if (size - strlen(STORED_SERVER_CERT_FORMAT) <= strlen(hostname)) {
LOG(LOG_WARNING,
/* Open the stored certificate file. */
*file = fopen(path, "rb");
if (NULL == *file) {
- LOG(global_passthrough_unknown ? LOG_DEBUG : LOG_WARNING,
- "server_certificate_path(): failed to open '%s': %s",
- path, strerror(errno));
+ if (global_passthrough_unknown) {
+ LOG(LOG_DEBUG,
+ "server_certificate_path(): failed to open '%s': %s",
+ path, strerror(errno));
+ } else {
+ LOG(LOG_WARNING,
+ "server_certificate_path(): failed to open '%s': %s",
+ path, strerror(errno));
+ }
/* Couldn't open the file, special case. */
return -2;
}