exit(code);
}
+void set_busy_status(void *frontend, int status)
+{
+}
+
void update_specials_menu(void *frontend)
{
}
-void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
- char *keystr, char *fingerprint)
+void notify_remote_exit(void *frontend)
+{
+}
+
+void timer_change_notify(long next)
+{
+}
+
+int verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
+ char *keystr, char *fingerprint,
+ void (*callback)(void *ctx, int result), void *ctx)
{
int ret;
ret = verify_host_key(host, port, keytype, keystr);
if (ret == 0) /* success - key matched OK */
- return;
+ return 1;
if (ret == 2) { /* key was different */
if (console_batch_mode) {
fprintf(stderr, wrongmsg_batch, keytype, fingerprint);
- cleanup_exit(1);
+ return 0;
}
fprintf(stderr, wrongmsg, keytype, fingerprint);
fflush(stderr);
if (ret == 1) { /* key was absent */
if (console_batch_mode) {
fprintf(stderr, absentmsg_batch, keytype, fingerprint);
- cleanup_exit(1);
+ return 0;
}
fprintf(stderr, absentmsg, keytype, fingerprint);
fflush(stderr);
if (line[0] != '\0' && line[0] != '\r' && line[0] != '\n') {
if (line[0] == 'y' || line[0] == 'Y')
store_host_key(host, port, keytype, keystr);
+ return 1;
} else {
fprintf(stderr, abandoned);
- cleanup_exit(0);
+ return 0;
}
}
/*
- * Ask whether the selected cipher is acceptable (since it was
+ * Ask whether the selected algorithm is acceptable (since it was
* below the configured 'warn' threshold).
- * cs: 0 = both ways, 1 = client->server, 2 = server->client
*/
-void askcipher(void *frontend, char *ciphername, int cs)
+int askalg(void *frontend, const char *algtype, const char *algname,
+ void (*callback)(void *ctx, int result), void *ctx)
{
static const char msg[] =
- "The first %scipher supported by the server is\n"
+ "The first %s supported by the server is\n"
"%s, which is below the configured warning threshold.\n"
"Continue with connection? (y/n) ";
static const char msg_batch[] =
- "The first %scipher supported by the server is\n"
+ "The first %s supported by the server is\n"
"%s, which is below the configured warning threshold.\n"
"Connection abandoned.\n";
static const char abandoned[] = "Connection abandoned.\n";
char line[32];
if (console_batch_mode) {
- fprintf(stderr, msg_batch,
- (cs == 0) ? "" :
- (cs == 1) ? "client-to-server " : "server-to-client ",
- ciphername);
- cleanup_exit(1);
+ fprintf(stderr, msg_batch, algtype, algname);
+ return 0;
}
- fprintf(stderr, msg,
- (cs == 0) ? "" :
- (cs == 1) ? "client-to-server " : "server-to-client ",
- ciphername);
+ fprintf(stderr, msg, algtype, algname);
fflush(stderr);
{
}
if (line[0] == 'y' || line[0] == 'Y') {
- return;
+ return 1;
} else {
fprintf(stderr, abandoned);
- cleanup_exit(0);
+ return 0;
}
}
* Ask whether to wipe a session log file before writing to it.
* Returns 2 for wipe, 1 for append, 0 for cancel (don't log).
*/
-int askappend(void *frontend, Filename filename)
+int askappend(void *frontend, Filename filename,
+ void (*callback)(void *ctx, int result), void *ctx)
{
static const char msgtemplate[] =
"The session log file \"%.*s\" already exists.\n"
if (console_batch_mode) {
if (maxlen > 0)
str[0] = '\0';
+ return 0;
} else {
tcgetattr(0, &oldmode);
newmode = oldmode;
if (is_pw)
fputs("\n", stdout);
+
+ return 1;
}
- return 1;
}
void frontend_keypress(void *handle)