mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-02 03:52:49 -05:00
Fairly major hackery to get SSH going on the Mac. Half the support
functions are only dummy stubs, but it's still minimally usable. At least, as long as you don't want to do anything complex like logging out. [originally from svn r2500]
This commit is contained in:
57
mac/mac.c
57
mac/mac.c
@ -1,4 +1,4 @@
|
||||
/* $Id: mac.c,v 1.19 2003/01/05 12:53:38 ben Exp $ */
|
||||
/* $Id: mac.c,v 1.20 2003/01/08 22:46:12 ben Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1999 Ben Harris
|
||||
* All rights reserved.
|
||||
@ -57,10 +57,13 @@
|
||||
|
||||
#include "macresid.h"
|
||||
#include "putty.h"
|
||||
#include "ssh.h"
|
||||
#include "mac.h"
|
||||
|
||||
QDGlobals qd;
|
||||
|
||||
Session *sesslist;
|
||||
|
||||
static int cold = 1;
|
||||
struct mac_gestalts mac_gestalts;
|
||||
|
||||
@ -84,7 +87,7 @@ static void mac_adjustmenus(void);
|
||||
static void mac_closewindow(WindowPtr);
|
||||
static void mac_zoomwindow(WindowPtr, short);
|
||||
static void mac_shutdown(void);
|
||||
#pragma noreturn (mac_shutdown)
|
||||
#pragma noreturn (cleanup_exit)
|
||||
|
||||
struct mac_windows {
|
||||
WindowPtr about;
|
||||
@ -186,6 +189,15 @@ static void mac_startup(void) {
|
||||
|
||||
default_protocol = DEFAULT_PROTOCOL;
|
||||
default_port = DEFAULT_PORT;
|
||||
flags = FLAG_INTERACTIVE;
|
||||
|
||||
/*
|
||||
* Really grotty hack to ensure that anything that looks at the
|
||||
* global "cfg" variable gets something vaguely sensible.
|
||||
* Obviously, nothing should actually be using it, but that will
|
||||
* take a while to arrange.
|
||||
*/
|
||||
do_defaults(NULL, &cfg);
|
||||
|
||||
{
|
||||
short vol;
|
||||
@ -214,6 +226,7 @@ static void mac_eventloop(void) {
|
||||
if (gotevent)
|
||||
mac_event(&event);
|
||||
mactcp_poll();
|
||||
mac_pollterm();
|
||||
}
|
||||
DisposeRgn(cursrgn);
|
||||
}
|
||||
@ -457,7 +470,7 @@ static void mac_menucommand(long result) {
|
||||
mac_closewindow(window);
|
||||
goto done;
|
||||
case iQuit:
|
||||
mac_shutdown();
|
||||
cleanup_exit(0);
|
||||
goto done;
|
||||
}
|
||||
break;
|
||||
@ -597,14 +610,15 @@ static void mac_adjustcursor(RgnHandle cursrgn) {
|
||||
}
|
||||
}
|
||||
|
||||
static void mac_shutdown(void) {
|
||||
void cleanup_exit(int status)
|
||||
{
|
||||
|
||||
#if !TARGET_RT_MAC_CFM
|
||||
if (mac_gestalts.encvvers != 0)
|
||||
TerminateUnicodeConverter();
|
||||
#endif
|
||||
mactcp_shutdown();
|
||||
exit(0);
|
||||
exit(status);
|
||||
}
|
||||
|
||||
void fatalbox(char *fmt, ...) {
|
||||
@ -647,6 +661,39 @@ void connection_fatal(void *fontend, char *fmt, ...) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Null SSH agent client -- never finds an agent. */
|
||||
|
||||
int agent_exists(void)
|
||||
{
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void agent_query(void *in, int inlen, void **out, int *outlen)
|
||||
{
|
||||
|
||||
*out = NULL;
|
||||
*outlen = 0;
|
||||
}
|
||||
|
||||
/* Temporary null routines for testing. */
|
||||
|
||||
void verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
|
||||
char *keystr, char *fingerprint)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void askcipher(void *frontend, char *ciphername, int cs)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void old_keyfile_warning(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* c-file-style: "simon"
|
||||
|
Reference in New Issue
Block a user