-/* $Id: mac.c,v 1.58 2003/05/10 11:40:18 ben Exp $ */
+/* $Id$ */
/*
* Copyright (c) 1999, 2003 Ben Harris
* All rights reserved.
static int borednow = FALSE;
struct mac_gestalts mac_gestalts;
UInt32 sleeptime;
+static long timing_next_time;
static void mac_startup(void);
static void mac_eventloop(void);
NewAEEventHandlerUPP(&mac_aevt_quit), 0, FALSE);
}
+void timer_change_notify(long next)
+{
+ timing_next_time = next;
+}
+
static void mac_eventloop(void) {
Boolean gotevent;
EventRecord event;
RgnHandle cursrgn;
+ long next;
+ long ticksleft;
cursrgn = NewRgn();
sleeptime = 0;
for (;;) {
mac_adjustcursor(cursrgn);
+ ticksleft=timing_next_time-GETTICKCOUNT();
+ if (sleeptime > ticksleft && ticksleft >=0)
+ sleeptime=ticksleft;
gotevent = WaitNextEvent(everyEvent, &event, sleeptime, cursrgn);
+ if (timing_next_time <= GETTICKCOUNT()) {
+ if (run_timers(timing_next_time, &next)) {
+ timer_change_notify(next);
+ }
+ }
+
/*
* XXX For now, limit sleep time to 1/10 s to work around
* wake-before-sleep race in MacTCP code.
/* Temporary null routines for testing. */
-/*
- * FIXME: verify_ssh_host_key() should be passed a frontend handle,
- * but backends have to have a terminal handle instead, because they
- * pass it to from_backend(), so we accept a terminal handle here as
- * well, and hope no-one tries to call us with sensible arguments.
- */
void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
char *keystr, char *fingerprint)
{
Str255 stuff;
- Terminal *term = frontend;
- Session *s = term->frontend;
+ Session *s = frontend;
/*
* This function is horribly wrong. For one thing, the alert
* should use the Notification Manager to wake up the user. In
* any case, we shouldn't hold up processing of other connections'
* data just because this one's waiting for the user. It should
- * also handle a host key cache, of course, and see the note above
- * about the "frontend" argument and the one below about closing
- * the connection. All in all, a bit of a mess really.
+ * also handle a host key cache, of course, and see the note below
+ * about closing the connection. All in all, a bit of a mess
+ * really.
*/
stuff[0] = sprintf((char *)(&stuff[1]),
}
}
-void askcipher(void *frontend, char *ciphername, int cs)
+void askalg(void *frontend, const char *algtype, const char *algname)
{
}
mac_adjustmenus();
}
+void notify_remote_exit(void *fe) { /* XXX anything needed here? */ }
+
/*
* Local Variables:
* c-file-style: "simon"