X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/12bff6dc1d8d9d0eb9a20570216f87387cac59e9..b483d9acdf1138f5104aea605d3a6bf06bd95ae4:/mac/mac.c diff --git a/mac/mac.c b/mac/mac.c index eb69224d..b7070c04 100644 --- a/mac/mac.c +++ b/mac/mac.c @@ -1,4 +1,4 @@ -/* $Id: mac.c,v 1.58 2003/05/10 11:40:18 ben Exp $ */ +/* $Id$ */ /* * Copyright (c) 1999, 2003 Ben Harris * All rights reserved. @@ -71,6 +71,7 @@ static int cold = 1; 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); @@ -244,16 +245,32 @@ static void mac_startup(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. @@ -672,18 +689,11 @@ int agent_query(void *in, int inlen, void **out, int *outlen, /* 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 @@ -692,9 +702,9 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, * 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]), @@ -711,7 +721,7 @@ void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype, } } -void askcipher(void *frontend, char *ciphername, int cs) +void askalg(void *frontend, const char *algtype, const char *algname) { } @@ -791,6 +801,8 @@ void update_specials_menu(void *frontend) mac_adjustmenus(); } +void notify_remote_exit(void *fe) { /* XXX anything needed here? */ } + /* * Local Variables: * c-file-style: "simon"