~sircmpwn/gmni

863c41dba6f16b8b487d6fa5b689184d2c9ee011 — RenĂ© Wagner a day ago 529b105 master
fix display of message on TOFU_FINGERPRINT_MISMATCH

Previously the message was never displayed to users
leaving them with a simple "Error: certificate is untrusted".

This also fixes the display of line numbers in the message.
2 files changed, 4 insertions(+), 1 deletions(-)

M src/gmnlm.c
M src/tofu.c
M src/gmnlm.c => src/gmnlm.c +1 -1
@@ 1022,7 1022,7 @@ tofu_callback(enum tofu_error error, const char *fingerprint,
		free(host);
		break;
	case TOFU_FINGERPRINT_MISMATCH:
		snprintf(prompt, sizeof(prompt),
		fprintf(browser->tty,
			"The certificate offered by this server DOES NOT MATCH the one we have on file.\n"
			"/!\\ Someone may be eavesdropping on or manipulating this connection. /!\\\n"
			"The unknown certificate's fingerprint is:\n"

M src/tofu.c => src/tofu.c +3 -0
@@ 188,6 188,7 @@ gemini_tofu_init(struct gemini_tofu *tofu,
		return;
	}
	n = 0;
	int lineno = 1;
	char *line = NULL;
	while (getline(&line, &n, f) != -1) {
		struct known_host *host = calloc(1, sizeof(struct known_host));


@@ 211,6 212,8 @@ gemini_tofu_init(struct gemini_tofu *tofu,
		assert(tok);
		host->expires = strtoul(tok, NULL, 10);

		host->lineno = lineno++;

		host->next = tofu->known_hosts;
		tofu->known_hosts = host;
	}