/*\r
* Linking module for programs that do not support selection of backend\r
- * (such as pscp or pterm).\r
+ * (such as pterm).\r
*/\r
\r
#include <stdio.h>\r
--- /dev/null
+/*\r
+ * Linking module for programs that are restricted to only using SSH\r
+ * (pscp and psftp). These do not support selection of backend, but\r
+ * must still have a backends[] array mentioning SSH because\r
+ * settings.c will want to consult it during session load.\r
+ */\r
+\r
+#include <stdio.h>\r
+#include "putty.h"\r
+\r
+const int be_default_protocol = PROT_SSH;\r
+\r
+Backend *backends[] = {\r
+ &ssh_backend,\r
+ NULL\r
+};\r
set Makever -DSVN_REV=$(revision)\r
ifneq "$(!numeric $(revision))" "yes" set Makever $(Makever) -DMODIFIED\r
ifneq "$(RELEASE)" "" set Makever $(Makever) -DRELEASE=$(RELEASE)\r
+ifneq "$(PRERELEASE)" "" set Makever $(Makever) -DPRERELEASE=$(PRERELEASE)\r
ifneq "$(date)" "" set Makever $(Makever) -DSNAPSHOT=$(date)\r
set Makeargs VER="$(Makever)"\r
ifneq "$(XFLAGS)" "" set Makeargs $(Makeargs) XFLAGS="$(XFLAGS)"\r
# Set up the version string for the docs build.\r
set Docmakeargs VERSION="PuTTY revision $(revision)"\r
ifneq "$(RELEASE)" "" set Docmakeargs VERSION="PuTTY release $(RELEASE)"\r
+ifneq "$(PRERELEASE)" "" set Docmakeargs VERSION="PuTTY pre-release $(PRERELEASE):r$(revision)"\r
ifneq "$(date)" "" set Docmakeargs VERSION="PuTTY development snapshot $(date)"\r
\r
# Set up the version string for the Unix source archive.\r
set Unxver r$(revision)\r
ifneq "$(RELEASE)" "" set Unxver $(RELEASE)\r
+ifneq "$(PRERELEASE)" "" set Unxver $(PRERELEASE)pre $(revision)\r
ifneq "$(date)" "" set Unxver $(date)\r
\r
# Set up the various version strings for the installer.\r
ifneq "$(RELEASE)" "" set Ivertext Release $(RELEASE)\r
ifneq "$(RELEASE)" "" set Irev 0\r
ifneq "$(RELEASE)" "" set Ifilename putty-$(RELEASE)-installer.exe\r
+ifneq "$(PRERELEASE)" "" set Iversion $(PRERELEASE):r$(revision)\r
+ifneq "$(PRERELEASE)" "" set Iname PuTTY pre-release $(PRERELEASE):r$(revision)\r
+ifneq "$(PRERELEASE)" "" set Ivertext Pre-release $(PRERELEASE):r$(revision)\r
+ifneq "$(PRERELEASE)" "" set Ifilename putty-$(PRERELEASE)-pre$(revision)-installer.exe\r
ifneq "$(date)" "" set Iversion $(date):r$(revision)\r
ifneq "$(date)" "" set Iname PuTTY development snapshot $(date):r$(revision)\r
ifneq "$(date)" "" set Ivertext Development snapshot $(date):r$(revision)\r
ifneq "$(date)" "" set Ifilename putty-$(date)-installer.exe\r
\r
-# Set up the version string for the installer.\r
-set Iversion r$(revision)\r
-ifneq "$(RELEASE)" "" set Iversion $(RELEASE)\r
-ifneq "$(date)" "" set Iversion $(date):r$(revision)\r
-\r
in putty do ./mksrcarc.sh\r
in putty do ./mkunxarc.sh $(Unxver)\r
in putty do perl mkfiles.pl\r
-\define{versionidplink} \versionid $Id: plink.but 9202 2011-07-12 18:26:18Z simon $\r
+\define{versionidplink} \versionid $Id: plink.but 9366 2011-12-10 12:08:09Z simon $\r
\r
\C{plink} Using the command-line connection tool \i{Plink}\r
\r
\r
\c Z:\sysosd>plink\r
\c PuTTY Link: command-line connection utility\r
-\c Release 0.61\r
+\c Release 0.62\r
\c Usage: plink [options] [user@]host [command]\r
\c ("host" can also be a PuTTY saved session name)\r
\c Options:\r
-\define{versionidpscp} \versionid $Id: pscp.but 9202 2011-07-12 18:26:18Z simon $\r
+\define{versionidpscp} \versionid $Id: pscp.but 9366 2011-12-10 12:08:09Z simon $\r
\r
\#FIXME: Need examples\r
\r
\r
\c Z:\owendadmin>pscp\r
\c PuTTY Secure Copy client\r
-\c Release 0.61\r
+\c Release 0.62\r
\c Usage: pscp [options] [user@]host:source target\r
\c pscp [options] source [source...] [user@]host:target\r
\c pscp [options] -ls [user@]host:filespec\r
uxnet.o uxnoise.o uxplink.o uxproxy.o uxsel.o uxser.o \\r
uxsignal.o uxstore.o version.o wildcard.o x11fwd.o \r
\r
-pscp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) $(ULDFLAGS) -o $@ be_none.o cmdline.o cproxy.o int64.o \\r
+ $(CC) $(ULDFLAGS) -o $@ be_ssh.o cmdline.o cproxy.o int64.o \\r
logging.o misc.o pgssapi.o pinger.o portfwd.o proxy.o pscp.o \\r
settings.o sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o \\r
sshbn.o sshcrc.o sshcrcda.o sshdes.o sshdh.o sshdss.o \\r
uxproxy.o uxsel.o uxsftp.o uxstore.o version.o wildcard.o \\r
x11fwd.o \r
\r
-psftp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) $(ULDFLAGS) -o $@ be_none.o cmdline.o cproxy.o int64.o \\r
+ $(CC) $(ULDFLAGS) -o $@ be_ssh.o cmdline.o cproxy.o int64.o \\r
logging.o misc.o pgssapi.o pinger.o portfwd.o proxy.o \\r
psftp.o settings.o sftp.o ssh.o sshaes.o ssharcf.o \\r
sshblowf.o sshbn.o sshcrc.o sshcrcda.o sshdes.o sshdh.o \\r
../puttymem.h ../tree234.h ../windows/winhelp.h \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(FWHACK) $(CFLAGS) $(XFLAGS) -c $<\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(FWHACK) $(CFLAGS) $(XFLAGS) -c $<\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
ver=\r
docver=\r
;;\r
+ *pre)\r
+ set -- "${1%pre}" "$2"\r
+ case "$1" in *[!.0-9a-z~]*) echo "Malformed prerelease ID '$1'">&2;exit 1;;esac\r
+ case "$2" in *[!.0-9a-z~]*) echo "Malformed prerelease revision '$1'">&2;exit 1;;esac\r
+ autoconfver="$1~pre$2"\r
+ arcsuffix="-$autoconfver"\r
+ ver="-DPRERELEASE=$1 -DSVN_REV=$2"\r
+ docver="VERSION=\"PuTTY prerelease $1:r$2\""\r
+ ;;\r
*)\r
- case "$1" in *[!.0-9a-z]*) echo "Malformed release ID '$1'">&2;exit 1;;esac\r
+ case "$1" in *[!.0-9a-z~]*) echo "Malformed release ID '$1'">&2;exit 1;;esac\r
arcsuffix="-$1"\r
ver="-DRELEASE=$1"\r
docver="VERSION=\"PuTTY release $1\""\r
# to proxy.c depending on whether we're crypto-avoidant or not.\r
BE_ALL = be_all cproxy\r
BE_NOSSH = be_nossh nocproxy\r
-BE_SSH = be_none cproxy\r
+BE_SSH = be_ssh cproxy\r
BE_NONE = be_none nocproxy\r
# More backend sets, with the additional Windows serial-port module.\r
W_BE_ALL = be_all_s winser cproxy\r
for (maxlen = i = 0; i < nvals; i++) {\r
const char *s = val2key(mapping, nvals, array[i]);\r
if (s) {\r
- maxlen += 1 + strlen(s);\r
+ maxlen += (maxlen > 0 ? 1 : 0) + strlen(s);\r
}\r
}\r
\r
- buf = snewn(maxlen, char);\r
+ buf = snewn(maxlen + 1, char);\r
p = buf;\r
\r
for (i = 0; i < nvals; i++) {\r
}\r
}\r
\r
- assert(p - buf == maxlen - 1); /* maxlen counted the NUL */\r
+ assert(p - buf == maxlen);\r
+ *p = '\0';\r
\r
write_setting_s(sesskey, name, buf);\r
\r
AUTH_TYPE_PUBLICKEY_OFFER_LOUD,\r
AUTH_TYPE_PUBLICKEY_OFFER_QUIET,\r
AUTH_TYPE_PASSWORD,\r
- AUTH_TYPE_GSSAPI,\r
+ AUTH_TYPE_GSSAPI, /* always QUIET */\r
AUTH_TYPE_KEYBOARD_INTERACTIVE,\r
AUTH_TYPE_KEYBOARD_INTERACTIVE_QUIET\r
} type;\r
/*\r
* We have received an unequivocal Access\r
* Denied. This can translate to a variety of\r
- * messages:\r
- * \r
- * - if we'd just tried "none" authentication,\r
- * it's not worth printing anything at all\r
- * \r
- * - if we'd just tried a public key _offer_,\r
- * the message should be "Server refused our\r
- * key" (or no message at all if the key\r
- * came from Pageant)\r
- * \r
- * - if we'd just tried anything else, the\r
- * message really should be "Access denied".\r
- * \r
+ * messages, or no message at all.\r
+ *\r
+ * For forms of authentication which are attempted\r
+ * implicitly, by which I mean without printing\r
+ * anything in the window indicating that we're\r
+ * trying them, we should never print 'Access\r
+ * denied'.\r
+ *\r
+ * If we do print a message saying that we're\r
+ * attempting some kind of authentication, it's OK\r
+ * to print a followup message saying it failed -\r
+ * but the message may sometimes be more specific\r
+ * than simply 'Access denied'.\r
+ *\r
* Additionally, if we'd just tried password\r
* authentication, we should break out of this\r
* whole loop so as to go back to the username\r
s->type == AUTH_TYPE_PUBLICKEY_OFFER_QUIET) {\r
if (s->type == AUTH_TYPE_PUBLICKEY_OFFER_LOUD)\r
c_write_str(ssh, "Server refused our key\r\n");\r
- logevent("Server refused public key");\r
+ logevent("Server refused our key");\r
+ } else if (s->type == AUTH_TYPE_PUBLICKEY) {\r
+ /* This _shouldn't_ happen except by a\r
+ * protocol bug causing client and server to\r
+ * disagree on what is a correct signature. */\r
+ c_write_str(ssh, "Server refused public-key signature"\r
+ " despite accepting key!\r\n");\r
+ logevent("Server refused public-key signature"\r
+ " despite accepting key!");\r
} else if (s->type==AUTH_TYPE_KEYBOARD_INTERACTIVE_QUIET) {\r
- /* server declined keyboard-interactive; ignore */\r
- } else {\r
+ /* quiet, so no c_write */\r
+ logevent("Server refused keyboard-interactive authentication");\r
+ } else if (s->type==AUTH_TYPE_GSSAPI) {\r
+ /* always quiet, so no c_write */\r
+ /* also, the code down in the GSSAPI block has\r
+ * already logged this in the Event Log */\r
+ } else if (s->type == AUTH_TYPE_KEYBOARD_INTERACTIVE) {\r
+ logevent("Keyboard-interactive authentication failed");\r
+ c_write_str(ssh, "Access denied\r\n");\r
+ } else {\r
+ assert(s->type == AUTH_TYPE_PASSWORD);\r
+ logevent("Password authentication failed");\r
c_write_str(ssh, "Access denied\r\n");\r
- logevent("Access denied");\r
- if (s->type == AUTH_TYPE_PASSWORD &&\r
- ssh->cfg.change_username) {\r
+\r
+ if (ssh->cfg.change_username) {\r
/* XXX perhaps we should allow\r
* keyboard-interactive to do this too? */\r
s->we_are_in = FALSE;\r
sfree(sigdata);\r
\r
ssh2_pkt_send(ssh, s->pktout);\r
+ logevent("Sent public key signature");\r
s->type = AUTH_TYPE_PUBLICKEY;\r
key->alg->freekey(key->data);\r
}\r
ssh2_pkt_addstring(s->pktout, s->username);\r
ssh2_pkt_addstring(s->pktout, "ssh-connection");\r
ssh2_pkt_addstring(s->pktout, "gssapi-with-mic");\r
+ logevent("Attempting GSSAPI authentication");\r
\r
/* add mechanism info */\r
s->gsslib->indicate_mech(s->gsslib, &s->gss_buf);\r
ssh2_pkt_addstring(s->pktout, ""); /* lang */\r
ssh2_pkt_addstring(s->pktout, ""); /* submethods */\r
ssh2_pkt_send(ssh, s->pktout);\r
+ \r
+ logevent("Attempting keyboard-interactive authentication");\r
\r
crWaitUntilV(pktin);\r
if (pktin->type != SSH2_MSG_USERAUTH_INFO_REQUEST) {\r
* user without actually issuing any prompts).\r
* Give up on it entirely. */\r
s->gotit = TRUE;\r
- if (pktin->type == SSH2_MSG_USERAUTH_FAILURE)\r
- logevent("Keyboard-interactive authentication refused");\r
s->type = AUTH_TYPE_KEYBOARD_INTERACTIVE_QUIET;\r
s->kbd_inter_refused = TRUE; /* don't try it again */\r
continue;\r
}\r
ssh2_pkt_send_with_padding(ssh, s->pktout, 256);\r
\r
+ /*\r
+ * Free the prompts structure from this iteration.\r
+ * If there's another, a new one will be allocated\r
+ * when we return to the top of this while loop.\r
+ */\r
+ free_prompts(s->cur_prompt);\r
+\r
/*\r
* Get the next packet in case it's another\r
* INFO_REQUEST.\r
break_run = ((tattr ^ attr) & term->attr_mask) != 0;\r
\r
/* Special hack for VT100 Linedraw glyphs */\r
- if (tchar >= 0x23BA && tchar <= 0x23BD)\r
+ if ((tchar >= 0x23BA && tchar <= 0x23BD) ||\r
+ (j > 0 && (newline[j-1].chr >= 0x23BA &&\r
+ newline[j-1].chr <= 0x23BD)))\r
break_run = TRUE;\r
\r
/*\r
uxnoise.o uxplink.o uxproxy.o uxsel.o uxser.o uxsignal.o \\r
uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS) \r
\r
-pscp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o pscp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
uxgss.o uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o \\r
uxsftp.o uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS)\r
\r
-psftp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o psftp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
../puttymem.h ../tree234.h ../windows/winhelp.h \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_nos_s.c\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_ssh.c\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
uxnoise.o uxplink.o uxproxy.o uxsel.o uxser.o uxsignal.o \\r
uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS) \r
\r
-pscp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o pscp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
uxgss.o uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o \\r
uxsftp.o uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS)\r
\r
-psftp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o psftp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
../puttymem.h ../tree234.h ../windows/winhelp.h \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_nos_s.c\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_ssh.c\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
uxnoise.o uxplink.o uxproxy.o uxsel.o uxser.o uxsignal.o \\r
uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS) \r
\r
-pscp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o pscp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
uxgss.o uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o \\r
uxsftp.o uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS)\r
\r
-psftp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o psftp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
../puttymem.h ../tree234.h ../windows/winhelp.h \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_nos_s.c\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_ssh.c\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
char ver[] = "Release " STR(RELEASE);\r
char sshver[] = "PuTTY-Release-" STR(RELEASE);\r
\r
+#elif defined PRERELEASE\r
+\r
+char ver[] = "Pre-release " STR(PRERELEASE) ":r" STR(SVN_REV);\r
+char sshver[] = "PuTTY-Prerelease-" STR(PRERELEASE) ":r" STR(SVN_REV);\r
+\r
#elif defined SVN_REV\r
\r
char ver[] = "Custom build r" STR(SVN_REV) ", " __DATE__ " " __TIME__;\r
CompilerSettings=0000000000000000000000\r\r
\r\r
[Unit1]\r\r
-FileName=..\..\..\be_none.c\r\r
+FileName=..\..\..\be_ssh.c\r\r
Folder=Source Files\r\r
Compile=1\r\r
CompileCpp=0\r\r
CompilerSettings=0000000000000000000000\r\r
\r\r
[Unit1]\r\r
-FileName=..\..\..\be_none.c\r\r
+FileName=..\..\..\be_ssh.c\r\r
Folder=Source Files\r\r
Compile=1\r\r
CompileCpp=0\r\r
plink.rsp\r
ilink32 -ap -Gn -L$(BCB)\lib @plink.rsp\r
\r
-pscp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+pscp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj pscp.obj \\r
pscp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
wintime.obj x11fwd.obj pscp.rsp\r
ilink32 -ap -Gn -L$(BCB)\lib @pscp.rsp\r
\r
-psftp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+psftp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj psftp.obj \\r
psftp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
\r
pscp.rsp: $(MAKEFILE)\r
echo c0x32 + > pscp.rsp\r
- echo be_none.obj cmdline.obj cproxy.obj int64.obj + >> pscp.rsp\r
+ echo be_ssh.obj cmdline.obj cproxy.obj int64.obj + >> pscp.rsp\r
echo logging.obj misc.obj pgssapi.obj pinger.obj + >> pscp.rsp\r
echo portfwd.obj proxy.obj pscp.obj settings.obj + >> pscp.rsp\r
echo sftp.obj ssh.obj sshaes.obj ssharcf.obj + >> pscp.rsp\r
\r
psftp.rsp: $(MAKEFILE)\r
echo c0x32 + > psftp.rsp\r
- echo be_none.obj cmdline.obj cproxy.obj int64.obj + >> psftp.rsp\r
+ echo be_ssh.obj cmdline.obj cproxy.obj int64.obj + >> psftp.rsp\r
echo logging.obj misc.obj pgssapi.obj pinger.obj + >> psftp.rsp\r
echo portfwd.obj proxy.obj psftp.obj settings.obj + >> psftp.rsp\r
echo sftp.obj ssh.obj sshaes.obj ssharcf.obj + >> psftp.rsp\r
..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
..\charset\charset.h\r
+be_ssh.obj: ..\be_ssh.c ..\putty.h ..\puttyps.h ..\network.h ..\misc.h \\r
+ ..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
+ ..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
+ ..\charset\charset.h\r
cmdgen.obj: ..\cmdgen.c ..\putty.h ..\ssh.h ..\puttyps.h ..\network.h \\r
..\misc.h ..\puttymem.h ..\tree234.h ..\int64.h \\r
..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
-lcomctl32 -lcomdlg32 -lgdi32 -limm32 -lole32 -lshell32 \\r
-luser32 -lwinmm -lwinspool\r
\r
-pscp.exe: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp.exe: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o pscp.res.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
windefs.o wingss.o winhandl.o winmisc.o winnet.o winnoise.o \\r
winnojmp.o winpgntc.o winproxy.o winsftp.o winstore.o \\r
wintime.o x11fwd.o\r
- $(CC) $(LDFLAGS) -o $@ -Wl,-Map,pscp.map be_none.o cmdline.o \\r
- cproxy.o int64.o logging.o misc.o pgssapi.o pinger.o \\r
- portfwd.o proxy.o pscp.o pscp.res.o settings.o sftp.o ssh.o \\r
- sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
- sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
- sshrand.o sshrsa.o sshsh256.o sshsh512.o sshsha.o sshzlib.o \\r
- timing.o tree234.o version.o wildcard.o wincons.o windefs.o \\r
- wingss.o winhandl.o winmisc.o winnet.o winnoise.o winnojmp.o \\r
+ $(CC) $(LDFLAGS) -o $@ -Wl,-Map,pscp.map be_ssh.o cmdline.o cproxy.o \\r
+ int64.o logging.o misc.o pgssapi.o pinger.o portfwd.o \\r
+ proxy.o pscp.o pscp.res.o settings.o sftp.o ssh.o sshaes.o \\r
+ ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o sshdes.o \\r
+ sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o sshrand.o \\r
+ sshrsa.o sshsh256.o sshsh512.o sshsha.o sshzlib.o timing.o \\r
+ tree234.o version.o wildcard.o wincons.o windefs.o wingss.o \\r
+ winhandl.o winmisc.o winnet.o winnoise.o winnojmp.o \\r
winpgntc.o winproxy.o winsftp.o winstore.o wintime.o \\r
x11fwd.o -ladvapi32 -lcomctl32 -lcomdlg32 -lgdi32 -limm32 \\r
-lole32 -lshell32 -luser32 -lwinmm -lwinspool\r
\r
-psftp.exe: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp.exe: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o psftp.res.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
windefs.o wingss.o winhandl.o winmisc.o winnet.o winnoise.o \\r
winnojmp.o winpgntc.o winproxy.o winsftp.o winstore.o \\r
wintime.o x11fwd.o\r
- $(CC) $(LDFLAGS) -o $@ -Wl,-Map,psftp.map be_none.o cmdline.o \\r
+ $(CC) $(LDFLAGS) -o $@ -Wl,-Map,psftp.map be_ssh.o cmdline.o \\r
cproxy.o int64.o logging.o misc.o pgssapi.o pinger.o \\r
portfwd.o proxy.o psftp.o psftp.res.o settings.o sftp.o \\r
ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_nos_s.c\r
\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_ssh.c\r
+\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
x11fwd.obj shell32.lib wsock32.lib ws2_32.lib winspool.lib \\r
winmm.lib imm32.lib\r
\r
-pscp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+pscp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj pscp.obj \\r
pscp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
winmisc.obj winnet.obj winnoise.obj winnojmp.obj \\r
winpgntc.obj winproxy.obj winsftp.obj winstore.obj \\r
wintime.obj x11fwd.obj\r
- lcclnk -o pscp.exe be_none.obj cmdline.obj cproxy.obj int64.obj \\r
- logging.obj misc.obj pgssapi.obj pinger.obj portfwd.obj \\r
- proxy.obj pscp.obj pscp.res settings.obj sftp.obj ssh.obj \\r
- sshaes.obj ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj \\r
- sshcrcda.obj sshdes.obj sshdh.obj sshdss.obj sshgssc.obj \\r
- sshmd5.obj sshpubk.obj sshrand.obj sshrsa.obj sshsh256.obj \\r
- sshsh512.obj sshsha.obj sshzlib.obj timing.obj tree234.obj \\r
- version.obj wildcard.obj wincons.obj windefs.obj wingss.obj \\r
- winhandl.obj winmisc.obj winnet.obj winnoise.obj \\r
- winnojmp.obj winpgntc.obj winproxy.obj winsftp.obj \\r
- winstore.obj wintime.obj x11fwd.obj shell32.lib wsock32.lib \\r
- ws2_32.lib winspool.lib winmm.lib imm32.lib\r
+ lcclnk -o pscp.exe be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj \\r
+ misc.obj pgssapi.obj pinger.obj portfwd.obj proxy.obj \\r
+ pscp.obj pscp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
+ ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
+ sshdes.obj sshdh.obj sshdss.obj sshgssc.obj sshmd5.obj \\r
+ sshpubk.obj sshrand.obj sshrsa.obj sshsh256.obj sshsh512.obj \\r
+ sshsha.obj sshzlib.obj timing.obj tree234.obj version.obj \\r
+ wildcard.obj wincons.obj windefs.obj wingss.obj winhandl.obj \\r
+ winmisc.obj winnet.obj winnoise.obj winnojmp.obj \\r
+ winpgntc.obj winproxy.obj winsftp.obj winstore.obj \\r
+ wintime.obj x11fwd.obj shell32.lib wsock32.lib ws2_32.lib \\r
+ winspool.lib winmm.lib imm32.lib\r
\r
-psftp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+psftp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj psftp.obj \\r
psftp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
winmisc.obj winnet.obj winnoise.obj winnojmp.obj \\r
winpgntc.obj winproxy.obj winsftp.obj winstore.obj \\r
wintime.obj x11fwd.obj\r
- lcclnk -o psftp.exe be_none.obj cmdline.obj cproxy.obj int64.obj \\r
+ lcclnk -o psftp.exe be_ssh.obj cmdline.obj cproxy.obj int64.obj \\r
logging.obj misc.obj pgssapi.obj pinger.obj portfwd.obj \\r
proxy.obj psftp.obj psftp.res settings.obj sftp.obj ssh.obj \\r
sshaes.obj ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj \\r
..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
..\charset\charset.h\r
lcc -O -p6 $(COMPAT) $(CFLAGS) $(XFLAGS) ..\be_nos_s.c\r
+be_ssh.obj: ..\be_ssh.c ..\putty.h ..\puttyps.h ..\network.h ..\misc.h \\r
+ ..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
+ ..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
+ ..\charset\charset.h\r
+ lcc -O -p6 $(COMPAT) $(CFLAGS) $(XFLAGS) ..\be_ssh.c\r
cmdgen.obj: ..\cmdgen.c ..\putty.h ..\ssh.h ..\puttyps.h ..\network.h \\r
..\misc.h ..\puttymem.h ..\tree234.h ..\int64.h \\r
..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
plink.rsp\r
link $(LFLAGS) $(XLFLAGS) -out:plink.exe -map:plink.map @plink.rsp\r
\r
-pscp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+pscp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj pscp.obj \\r
pscp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
wintime.obj x11fwd.obj pscp.rsp\r
link $(LFLAGS) $(XLFLAGS) -out:pscp.exe -map:pscp.map @pscp.rsp\r
\r
-psftp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+psftp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj psftp.obj \\r
psftp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
\r
pscp.rsp: $(MAKEFILE)\r
echo /nologo /subsystem:console > pscp.rsp\r
- echo advapi32.lib be_none.obj cmdline.obj comctl32.lib >> pscp.rsp\r
+ echo advapi32.lib be_ssh.obj cmdline.obj comctl32.lib >> pscp.rsp\r
echo comdlg32.lib cproxy.obj gdi32.lib imm32.lib >> pscp.rsp\r
echo int64.obj logging.obj misc.obj ole32.lib >> pscp.rsp\r
echo pgssapi.obj pinger.obj portfwd.obj proxy.obj >> pscp.rsp\r
\r
psftp.rsp: $(MAKEFILE)\r
echo /nologo /subsystem:console > psftp.rsp\r
- echo advapi32.lib be_none.obj cmdline.obj comctl32.lib >> psftp.rsp\r
+ echo advapi32.lib be_ssh.obj cmdline.obj comctl32.lib >> psftp.rsp\r
echo comdlg32.lib cproxy.obj gdi32.lib imm32.lib >> psftp.rsp\r
echo int64.obj logging.obj misc.obj ole32.lib >> psftp.rsp\r
echo pgssapi.obj pinger.obj portfwd.obj proxy.obj >> psftp.rsp\r
..\charset\charset.h\r
cl $(COMPAT) $(CFLAGS) $(XFLAGS) /c ..\be_nos_s.c\r
\r
+be_ssh.obj: ..\be_ssh.c ..\putty.h ..\puttyps.h ..\network.h ..\misc.h \\r
+ ..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
+ ..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
+ ..\charset\charset.h\r
+ cl $(COMPAT) $(CFLAGS) $(XFLAGS) /c ..\be_ssh.c\r
+\r
cmdgen.obj: ..\cmdgen.c ..\putty.h ..\ssh.h ..\puttyps.h ..\network.h \\r
..\misc.h ..\puttymem.h ..\tree234.h ..\int64.h \\r
..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
# Begin Source File\r
\r
-SOURCE=..\..\..\be_none.c\r
+SOURCE=..\..\..\be_ssh.c\r
+\r
+!IF "$(CFG)" == "pscp - Win32 Release"\r
+\r
+!ELSEIF "$(CFG)" == "pscp - Win32 Debug"\r
+\r
+# ADD CPP /Zi\r
+\r
+!ENDIF \r
+\r
# End Source File\r
# Begin Source File\r
\r
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
# Begin Source File\r
\r
-SOURCE=..\..\..\be_none.c\r
+SOURCE=..\..\..\be_ssh.c\r
+\r
+!IF "$(CFG)" == "psftp - Win32 Release"\r
+\r
+!ELSEIF "$(CFG)" == "psftp - Win32 Debug"\r
+\r
+# ADD CPP /Zi\r
+\r
+!ENDIF \r
+\r
# End Source File\r
# Begin Source File\r
\r
; -*- no -*-\r
-; $Id: putty.iss 9202 2011-07-12 18:26:18Z simon $\r
+; $Id: putty.iss 9366 2011-12-10 12:08:09Z simon $\r
;\r
; -- Inno Setup installer script for PuTTY and its related tools.\r
; Last tested with Inno Setup 5.0.8.\r
\r
[Setup]\r
AppName=PuTTY\r
-AppVerName=PuTTY version 0.61\r
-VersionInfoTextVersion=Release 0.61\r
-AppVersion=0.61\r
-VersionInfoVersion=0.61.0.0\r
+AppVerName=PuTTY version 0.62\r
+VersionInfoTextVersion=Release 0.62\r
+AppVersion=0.62\r
+VersionInfoVersion=0.62.0.0\r
AppPublisher=Simon Tatham\r
AppPublisherURL=http://www.chiark.greenend.org.uk/~sgtatham/putty/\r
AppReadmeFile={app}\README.txt\r
\r
/* We keep this around even for snapshots, for monotonicity of version\r
* numbering. It needs to be kept up to date. NB _comma_-separated. */\r
-#define BASE_VERSION 0,61\r
+#define BASE_VERSION 0,62\r
\r
#if defined SNAPSHOT\r
\r
#define VERSION_TEXT "Release " STR(RELEASE)\r
#define BINARY_VERSION BASE_VERSION,0,0\r
\r
+#elif defined PRERELEASE\r
+\r
+#define VERSION_TEXT "Pre-release " STR(PRERELEASE) ":r" STR(SVN_REV);\r
+#define BINARY_VERSION BASE_VERSION,SVN_REV,0\r
+\r
#elif defined SVN_REV\r
\r
#define VERSION_TEXT "Custom build r" STR(SVN_REV)\r
dec = dec * 2 - font_height;\r
\r
oldpen = SelectObject(hdc, CreatePen(PS_SOLID, 0, fg));\r
- MoveToEx(hdc, x, y + dec, NULL);\r
- LineTo(hdc, x + len * char_width, y + dec);\r
+ MoveToEx(hdc, line_box.left, line_box.top + dec, NULL);\r
+ LineTo(hdc, line_box.right, line_box.top + dec);\r
oldpen = SelectObject(hdc, oldpen);\r
DeleteObject(oldpen);\r
}\r
}\r
}\r
\r
+#ifndef NO_SECURITY\r
+/*\r
+ * Versions of Pageant prior to 0.61 expected this SID on incoming\r
+ * communications. For backwards compatibility, and more particularly\r
+ * for compatibility with derived works of PuTTY still using the old\r
+ * Pageant client code, we accept it as an alternative to the one\r
+ * returned from get_user_sid() in winpgntc.c.\r
+ */\r
+PSID get_default_sid(void)\r
+{\r
+ HANDLE proc = NULL;\r
+ DWORD sidlen;\r
+ PSECURITY_DESCRIPTOR psd = NULL;\r
+ PSID sid = NULL, copy = NULL, ret = NULL;\r
+\r
+ if ((proc = OpenProcess(MAXIMUM_ALLOWED, FALSE,\r
+ GetCurrentProcessId())) == NULL)\r
+ goto cleanup;\r
+\r
+ if (p_GetSecurityInfo(proc, SE_KERNEL_OBJECT, OWNER_SECURITY_INFORMATION,\r
+ &sid, NULL, NULL, NULL, &psd) != ERROR_SUCCESS)\r
+ goto cleanup;\r
+\r
+ sidlen = GetLengthSid(sid);\r
+\r
+ copy = (PSID)smalloc(sidlen);\r
+\r
+ if (!CopySid(sidlen, copy, sid))\r
+ goto cleanup;\r
+\r
+ /* Success. Move sid into the return value slot, and null it out\r
+ * to stop the cleanup code freeing it. */\r
+ ret = copy;\r
+ copy = NULL;\r
+\r
+ cleanup:\r
+ if (proc != NULL)\r
+ CloseHandle(proc);\r
+ if (psd != NULL)\r
+ LocalFree(psd);\r
+ if (copy != NULL)\r
+ sfree(copy);\r
+\r
+ return ret;\r
+}\r
+#endif\r
+\r
static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,\r
WPARAM wParam, LPARAM lParam)\r
{\r
void *p;\r
HANDLE filemap;\r
#ifndef NO_SECURITY\r
- PSID mapowner, ourself;\r
- PSECURITY_DESCRIPTOR psd1 = NULL, psd2 = NULL;\r
+ PSID mapowner, ourself, ourself2;\r
#endif\r
+ PSECURITY_DESCRIPTOR psd = NULL;\r
int ret = 0;\r
\r
cds = (COPYDATASTRUCT *) lParam;\r
return 0;\r
}\r
\r
+ if ((ourself2 = get_default_sid()) == NULL) {\r
+#ifdef DEBUG_IPC\r
+ debug(("couldn't get default SID\n"));\r
+#endif\r
+ return 0;\r
+ }\r
+\r
if ((rc = p_GetSecurityInfo(filemap, SE_KERNEL_OBJECT,\r
OWNER_SECURITY_INFORMATION,\r
&mapowner, NULL, NULL, NULL,\r
- &psd1) != ERROR_SUCCESS)) {\r
+ &psd) != ERROR_SUCCESS)) {\r
#ifdef DEBUG_IPC\r
debug(("couldn't get owner info for filemap: %d\n",\r
rc));\r
}\r
#ifdef DEBUG_IPC\r
{\r
- LPTSTR ours, theirs;\r
+ LPTSTR ours, ours2, theirs;\r
ConvertSidToStringSid(mapowner, &theirs);\r
ConvertSidToStringSid(ourself, &ours);\r
- debug(("got both sids: ours=%s theirs=%s\n",\r
- ours, theirs));\r
+ ConvertSidToStringSid(ourself2, &ours2);\r
+ debug(("got sids:\n oursnew=%s\n oursold=%s\n"\r
+ " theirs=%s\n", ours, ours2, theirs));\r
LocalFree(ours);\r
+ LocalFree(ours2);\r
LocalFree(theirs);\r
}\r
#endif\r
- if (!EqualSid(mapowner, ourself))\r
+ if (!EqualSid(mapowner, ourself) &&\r
+ !EqualSid(mapowner, ourself2)) {\r
+ CloseHandle(filemap);\r
return 0; /* security ID mismatch! */\r
+ }\r
#ifdef DEBUG_IPC\r
debug(("security stuff matched\n"));\r
#endif\r
- LocalFree(psd1);\r
- LocalFree(psd2);\r
+ LocalFree(psd);\r
+ sfree(ourself);\r
+ sfree(ourself2);\r
} else {\r
#ifdef DEBUG_IPC\r
debug(("security APIs not present\n"));\r
/*\r
* Linking module for programs that do not support selection of backend\r
- * (such as pscp or pterm).\r
+ * (such as pterm).\r
*/\r
\r
#include <stdio.h>\r
--- /dev/null
+/*\r
+ * Linking module for programs that are restricted to only using SSH\r
+ * (pscp and psftp). These do not support selection of backend, but\r
+ * must still have a backends[] array mentioning SSH because\r
+ * settings.c will want to consult it during session load.\r
+ */\r
+\r
+#include <stdio.h>\r
+#include "putty.h"\r
+\r
+const int be_default_protocol = PROT_SSH;\r
+\r
+Backend *backends[] = {\r
+ &ssh_backend,\r
+ NULL\r
+};\r
set Makever -DSVN_REV=$(revision)\r
ifneq "$(!numeric $(revision))" "yes" set Makever $(Makever) -DMODIFIED\r
ifneq "$(RELEASE)" "" set Makever $(Makever) -DRELEASE=$(RELEASE)\r
+ifneq "$(PRERELEASE)" "" set Makever $(Makever) -DPRERELEASE=$(PRERELEASE)\r
ifneq "$(date)" "" set Makever $(Makever) -DSNAPSHOT=$(date)\r
set Makeargs VER="$(Makever)"\r
ifneq "$(XFLAGS)" "" set Makeargs $(Makeargs) XFLAGS="$(XFLAGS)"\r
# Set up the version string for the docs build.\r
set Docmakeargs VERSION="PuTTY revision $(revision)"\r
ifneq "$(RELEASE)" "" set Docmakeargs VERSION="PuTTY release $(RELEASE)"\r
+ifneq "$(PRERELEASE)" "" set Docmakeargs VERSION="PuTTY pre-release $(PRERELEASE):r$(revision)"\r
ifneq "$(date)" "" set Docmakeargs VERSION="PuTTY development snapshot $(date)"\r
\r
# Set up the version string for the Unix source archive.\r
set Unxver r$(revision)\r
ifneq "$(RELEASE)" "" set Unxver $(RELEASE)\r
+ifneq "$(PRERELEASE)" "" set Unxver $(PRERELEASE)pre $(revision)\r
ifneq "$(date)" "" set Unxver $(date)\r
\r
# Set up the various version strings for the installer.\r
ifneq "$(RELEASE)" "" set Ivertext Release $(RELEASE)\r
ifneq "$(RELEASE)" "" set Irev 0\r
ifneq "$(RELEASE)" "" set Ifilename putty-$(RELEASE)-installer.exe\r
+ifneq "$(PRERELEASE)" "" set Iversion $(PRERELEASE):r$(revision)\r
+ifneq "$(PRERELEASE)" "" set Iname PuTTY pre-release $(PRERELEASE):r$(revision)\r
+ifneq "$(PRERELEASE)" "" set Ivertext Pre-release $(PRERELEASE):r$(revision)\r
+ifneq "$(PRERELEASE)" "" set Ifilename putty-$(PRERELEASE)-pre$(revision)-installer.exe\r
ifneq "$(date)" "" set Iversion $(date):r$(revision)\r
ifneq "$(date)" "" set Iname PuTTY development snapshot $(date):r$(revision)\r
ifneq "$(date)" "" set Ivertext Development snapshot $(date):r$(revision)\r
ifneq "$(date)" "" set Ifilename putty-$(date)-installer.exe\r
\r
-# Set up the version string for the installer.\r
-set Iversion r$(revision)\r
-ifneq "$(RELEASE)" "" set Iversion $(RELEASE)\r
-ifneq "$(date)" "" set Iversion $(date):r$(revision)\r
-\r
in putty do ./mksrcarc.sh\r
in putty do ./mkunxarc.sh $(Unxver)\r
in putty do perl mkfiles.pl\r
-\define{versionidplink} \versionid $Id: plink.but 9202 2011-07-12 18:26:18Z simon $\r
+\define{versionidplink} \versionid $Id: plink.but 9366 2011-12-10 12:08:09Z simon $\r
\r
\C{plink} Using the command-line connection tool \i{Plink}\r
\r
\r
\c Z:\sysosd>plink\r
\c PuTTY Link: command-line connection utility\r
-\c Release 0.61\r
+\c Release 0.62\r
\c Usage: plink [options] [user@]host [command]\r
\c ("host" can also be a PuTTY saved session name)\r
\c Options:\r
-\define{versionidpscp} \versionid $Id: pscp.but 9202 2011-07-12 18:26:18Z simon $\r
+\define{versionidpscp} \versionid $Id: pscp.but 9366 2011-12-10 12:08:09Z simon $\r
\r
\#FIXME: Need examples\r
\r
\r
\c Z:\owendadmin>pscp\r
\c PuTTY Secure Copy client\r
-\c Release 0.61\r
+\c Release 0.62\r
\c Usage: pscp [options] [user@]host:source target\r
\c pscp [options] source [source...] [user@]host:target\r
\c pscp [options] -ls [user@]host:filespec\r
uxnet.o uxnoise.o uxplink.o uxproxy.o uxsel.o uxser.o \\r
uxsignal.o uxstore.o version.o wildcard.o x11fwd.o \r
\r
-pscp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) $(ULDFLAGS) -o $@ be_none.o cmdline.o cproxy.o int64.o \\r
+ $(CC) $(ULDFLAGS) -o $@ be_ssh.o cmdline.o cproxy.o int64.o \\r
logging.o misc.o pgssapi.o pinger.o portfwd.o proxy.o pscp.o \\r
settings.o sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o \\r
sshbn.o sshcrc.o sshcrcda.o sshdes.o sshdh.o sshdss.o \\r
uxproxy.o uxsel.o uxsftp.o uxstore.o version.o wildcard.o \\r
x11fwd.o \r
\r
-psftp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) $(ULDFLAGS) -o $@ be_none.o cmdline.o cproxy.o int64.o \\r
+ $(CC) $(ULDFLAGS) -o $@ be_ssh.o cmdline.o cproxy.o int64.o \\r
logging.o misc.o pgssapi.o pinger.o portfwd.o proxy.o \\r
psftp.o settings.o sftp.o ssh.o sshaes.o ssharcf.o \\r
sshblowf.o sshbn.o sshcrc.o sshcrcda.o sshdes.o sshdh.o \\r
../puttymem.h ../tree234.h ../windows/winhelp.h \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(FWHACK) $(CFLAGS) $(XFLAGS) -c $<\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(FWHACK) $(CFLAGS) $(XFLAGS) -c $<\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
ver=\r
docver=\r
;;\r
+ *pre)\r
+ set -- "${1%pre}" "$2"\r
+ case "$1" in *[!.0-9a-z~]*) echo "Malformed prerelease ID '$1'">&2;exit 1;;esac\r
+ case "$2" in *[!.0-9a-z~]*) echo "Malformed prerelease revision '$1'">&2;exit 1;;esac\r
+ autoconfver="$1~pre$2"\r
+ arcsuffix="-$autoconfver"\r
+ ver="-DPRERELEASE=$1 -DSVN_REV=$2"\r
+ docver="VERSION=\"PuTTY prerelease $1:r$2\""\r
+ ;;\r
*)\r
- case "$1" in *[!.0-9a-z]*) echo "Malformed release ID '$1'">&2;exit 1;;esac\r
+ case "$1" in *[!.0-9a-z~]*) echo "Malformed release ID '$1'">&2;exit 1;;esac\r
arcsuffix="-$1"\r
ver="-DRELEASE=$1"\r
docver="VERSION=\"PuTTY release $1\""\r
# to proxy.c depending on whether we're crypto-avoidant or not.\r
BE_ALL = be_all cproxy\r
BE_NOSSH = be_nossh nocproxy\r
-BE_SSH = be_none cproxy\r
+BE_SSH = be_ssh cproxy\r
BE_NONE = be_none nocproxy\r
# More backend sets, with the additional Windows serial-port module.\r
W_BE_ALL = be_all_s winser cproxy\r
for (maxlen = i = 0; i < nvals; i++) {\r
const char *s = val2key(mapping, nvals, array[i]);\r
if (s) {\r
- maxlen += 1 + strlen(s);\r
+ maxlen += (maxlen > 0 ? 1 : 0) + strlen(s);\r
}\r
}\r
\r
- buf = snewn(maxlen, char);\r
+ buf = snewn(maxlen + 1, char);\r
p = buf;\r
\r
for (i = 0; i < nvals; i++) {\r
}\r
}\r
\r
- assert(p - buf == maxlen - 1); /* maxlen counted the NUL */\r
+ assert(p - buf == maxlen);\r
+ *p = '\0';\r
\r
write_setting_s(sesskey, name, buf);\r
\r
AUTH_TYPE_PUBLICKEY_OFFER_LOUD,\r
AUTH_TYPE_PUBLICKEY_OFFER_QUIET,\r
AUTH_TYPE_PASSWORD,\r
- AUTH_TYPE_GSSAPI,\r
+ AUTH_TYPE_GSSAPI, /* always QUIET */\r
AUTH_TYPE_KEYBOARD_INTERACTIVE,\r
AUTH_TYPE_KEYBOARD_INTERACTIVE_QUIET\r
} type;\r
/*\r
* We have received an unequivocal Access\r
* Denied. This can translate to a variety of\r
- * messages:\r
- * \r
- * - if we'd just tried "none" authentication,\r
- * it's not worth printing anything at all\r
- * \r
- * - if we'd just tried a public key _offer_,\r
- * the message should be "Server refused our\r
- * key" (or no message at all if the key\r
- * came from Pageant)\r
- * \r
- * - if we'd just tried anything else, the\r
- * message really should be "Access denied".\r
- * \r
+ * messages, or no message at all.\r
+ *\r
+ * For forms of authentication which are attempted\r
+ * implicitly, by which I mean without printing\r
+ * anything in the window indicating that we're\r
+ * trying them, we should never print 'Access\r
+ * denied'.\r
+ *\r
+ * If we do print a message saying that we're\r
+ * attempting some kind of authentication, it's OK\r
+ * to print a followup message saying it failed -\r
+ * but the message may sometimes be more specific\r
+ * than simply 'Access denied'.\r
+ *\r
* Additionally, if we'd just tried password\r
* authentication, we should break out of this\r
* whole loop so as to go back to the username\r
s->type == AUTH_TYPE_PUBLICKEY_OFFER_QUIET) {\r
if (s->type == AUTH_TYPE_PUBLICKEY_OFFER_LOUD)\r
c_write_str(ssh, "Server refused our key\r\n");\r
- logevent("Server refused public key");\r
+ logevent("Server refused our key");\r
+ } else if (s->type == AUTH_TYPE_PUBLICKEY) {\r
+ /* This _shouldn't_ happen except by a\r
+ * protocol bug causing client and server to\r
+ * disagree on what is a correct signature. */\r
+ c_write_str(ssh, "Server refused public-key signature"\r
+ " despite accepting key!\r\n");\r
+ logevent("Server refused public-key signature"\r
+ " despite accepting key!");\r
} else if (s->type==AUTH_TYPE_KEYBOARD_INTERACTIVE_QUIET) {\r
- /* server declined keyboard-interactive; ignore */\r
- } else {\r
+ /* quiet, so no c_write */\r
+ logevent("Server refused keyboard-interactive authentication");\r
+ } else if (s->type==AUTH_TYPE_GSSAPI) {\r
+ /* always quiet, so no c_write */\r
+ /* also, the code down in the GSSAPI block has\r
+ * already logged this in the Event Log */\r
+ } else if (s->type == AUTH_TYPE_KEYBOARD_INTERACTIVE) {\r
+ logevent("Keyboard-interactive authentication failed");\r
+ c_write_str(ssh, "Access denied\r\n");\r
+ } else {\r
+ assert(s->type == AUTH_TYPE_PASSWORD);\r
+ logevent("Password authentication failed");\r
c_write_str(ssh, "Access denied\r\n");\r
- logevent("Access denied");\r
- if (s->type == AUTH_TYPE_PASSWORD &&\r
- ssh->cfg.change_username) {\r
+\r
+ if (ssh->cfg.change_username) {\r
/* XXX perhaps we should allow\r
* keyboard-interactive to do this too? */\r
s->we_are_in = FALSE;\r
sfree(sigdata);\r
\r
ssh2_pkt_send(ssh, s->pktout);\r
+ logevent("Sent public key signature");\r
s->type = AUTH_TYPE_PUBLICKEY;\r
key->alg->freekey(key->data);\r
}\r
ssh2_pkt_addstring(s->pktout, s->username);\r
ssh2_pkt_addstring(s->pktout, "ssh-connection");\r
ssh2_pkt_addstring(s->pktout, "gssapi-with-mic");\r
+ logevent("Attempting GSSAPI authentication");\r
\r
/* add mechanism info */\r
s->gsslib->indicate_mech(s->gsslib, &s->gss_buf);\r
ssh2_pkt_addstring(s->pktout, ""); /* lang */\r
ssh2_pkt_addstring(s->pktout, ""); /* submethods */\r
ssh2_pkt_send(ssh, s->pktout);\r
+ \r
+ logevent("Attempting keyboard-interactive authentication");\r
\r
crWaitUntilV(pktin);\r
if (pktin->type != SSH2_MSG_USERAUTH_INFO_REQUEST) {\r
* user without actually issuing any prompts).\r
* Give up on it entirely. */\r
s->gotit = TRUE;\r
- if (pktin->type == SSH2_MSG_USERAUTH_FAILURE)\r
- logevent("Keyboard-interactive authentication refused");\r
s->type = AUTH_TYPE_KEYBOARD_INTERACTIVE_QUIET;\r
s->kbd_inter_refused = TRUE; /* don't try it again */\r
continue;\r
}\r
ssh2_pkt_send_with_padding(ssh, s->pktout, 256);\r
\r
+ /*\r
+ * Free the prompts structure from this iteration.\r
+ * If there's another, a new one will be allocated\r
+ * when we return to the top of this while loop.\r
+ */\r
+ free_prompts(s->cur_prompt);\r
+\r
/*\r
* Get the next packet in case it's another\r
* INFO_REQUEST.\r
break_run = ((tattr ^ attr) & term->attr_mask) != 0;\r
\r
/* Special hack for VT100 Linedraw glyphs */\r
- if (tchar >= 0x23BA && tchar <= 0x23BD)\r
+ if ((tchar >= 0x23BA && tchar <= 0x23BD) ||\r
+ (j > 0 && (newline[j-1].chr >= 0x23BA &&\r
+ newline[j-1].chr <= 0x23BD)))\r
break_run = TRUE;\r
\r
/*\r
uxnoise.o uxplink.o uxproxy.o uxsel.o uxser.o uxsignal.o \\r
uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS) \r
\r
-pscp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o pscp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
uxgss.o uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o \\r
uxsftp.o uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS)\r
\r
-psftp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o psftp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
../puttymem.h ../tree234.h ../windows/winhelp.h \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_nos_s.c\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_ssh.c\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
uxnoise.o uxplink.o uxproxy.o uxsel.o uxser.o uxsignal.o \\r
uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS) \r
\r
-pscp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o pscp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
uxgss.o uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o \\r
uxsftp.o uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS)\r
\r
-psftp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o psftp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
../puttymem.h ../tree234.h ../windows/winhelp.h \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_nos_s.c\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_ssh.c\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
uxnoise.o uxplink.o uxproxy.o uxsel.o uxser.o uxsignal.o \\r
uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS) \r
\r
-pscp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o pscp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
uxgss.o uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o \\r
uxsftp.o uxstore.o version.o wildcard.o x11fwd.o $(ULDFLAGS)\r
\r
-psftp: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o settings.o sftp.o ssh.o \\r
sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
time.o timing.o tree234.o uxagentc.o uxcons.o uxgss.o \\r
uxmisc.o uxnet.o uxnoise.o uxproxy.o uxsel.o uxsftp.o \\r
uxstore.o version.o wildcard.o x11fwd.o\r
- $(CC) -o $@ be_none.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
+ $(CC) -o $@ be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o \\r
pgssapi.o pinger.o portfwd.o proxy.o psftp.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
../puttymem.h ../tree234.h ../windows/winhelp.h \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_nos_s.c\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_ssh.c\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
char ver[] = "Release " STR(RELEASE);\r
char sshver[] = "PuTTY-Release-" STR(RELEASE);\r
\r
+#elif defined PRERELEASE\r
+\r
+char ver[] = "Pre-release " STR(PRERELEASE) ":r" STR(SVN_REV);\r
+char sshver[] = "PuTTY-Prerelease-" STR(PRERELEASE) ":r" STR(SVN_REV);\r
+\r
#elif defined SVN_REV\r
\r
char ver[] = "Custom build r" STR(SVN_REV) ", " __DATE__ " " __TIME__;\r
CompilerSettings=0000000000000000000000\r\r
\r\r
[Unit1]\r\r
-FileName=..\..\..\be_none.c\r\r
+FileName=..\..\..\be_ssh.c\r\r
Folder=Source Files\r\r
Compile=1\r\r
CompileCpp=0\r\r
CompilerSettings=0000000000000000000000\r\r
\r\r
[Unit1]\r\r
-FileName=..\..\..\be_none.c\r\r
+FileName=..\..\..\be_ssh.c\r\r
Folder=Source Files\r\r
Compile=1\r\r
CompileCpp=0\r\r
plink.rsp\r
ilink32 -ap -Gn -L$(BCB)\lib @plink.rsp\r
\r
-pscp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+pscp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj pscp.obj \\r
pscp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
wintime.obj x11fwd.obj pscp.rsp\r
ilink32 -ap -Gn -L$(BCB)\lib @pscp.rsp\r
\r
-psftp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+psftp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj psftp.obj \\r
psftp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
\r
pscp.rsp: $(MAKEFILE)\r
echo c0x32 + > pscp.rsp\r
- echo be_none.obj cmdline.obj cproxy.obj int64.obj + >> pscp.rsp\r
+ echo be_ssh.obj cmdline.obj cproxy.obj int64.obj + >> pscp.rsp\r
echo logging.obj misc.obj pgssapi.obj pinger.obj + >> pscp.rsp\r
echo portfwd.obj proxy.obj pscp.obj settings.obj + >> pscp.rsp\r
echo sftp.obj ssh.obj sshaes.obj ssharcf.obj + >> pscp.rsp\r
\r
psftp.rsp: $(MAKEFILE)\r
echo c0x32 + > psftp.rsp\r
- echo be_none.obj cmdline.obj cproxy.obj int64.obj + >> psftp.rsp\r
+ echo be_ssh.obj cmdline.obj cproxy.obj int64.obj + >> psftp.rsp\r
echo logging.obj misc.obj pgssapi.obj pinger.obj + >> psftp.rsp\r
echo portfwd.obj proxy.obj psftp.obj settings.obj + >> psftp.rsp\r
echo sftp.obj ssh.obj sshaes.obj ssharcf.obj + >> psftp.rsp\r
..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
..\charset\charset.h\r
+be_ssh.obj: ..\be_ssh.c ..\putty.h ..\puttyps.h ..\network.h ..\misc.h \\r
+ ..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
+ ..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
+ ..\charset\charset.h\r
cmdgen.obj: ..\cmdgen.c ..\putty.h ..\ssh.h ..\puttyps.h ..\network.h \\r
..\misc.h ..\puttymem.h ..\tree234.h ..\int64.h \\r
..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
-lcomctl32 -lcomdlg32 -lgdi32 -limm32 -lole32 -lshell32 \\r
-luser32 -lwinmm -lwinspool\r
\r
-pscp.exe: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+pscp.exe: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o pscp.o pscp.res.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
windefs.o wingss.o winhandl.o winmisc.o winnet.o winnoise.o \\r
winnojmp.o winpgntc.o winproxy.o winsftp.o winstore.o \\r
wintime.o x11fwd.o\r
- $(CC) $(LDFLAGS) -o $@ -Wl,-Map,pscp.map be_none.o cmdline.o \\r
- cproxy.o int64.o logging.o misc.o pgssapi.o pinger.o \\r
- portfwd.o proxy.o pscp.o pscp.res.o settings.o sftp.o ssh.o \\r
- sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o \\r
- sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o \\r
- sshrand.o sshrsa.o sshsh256.o sshsh512.o sshsha.o sshzlib.o \\r
- timing.o tree234.o version.o wildcard.o wincons.o windefs.o \\r
- wingss.o winhandl.o winmisc.o winnet.o winnoise.o winnojmp.o \\r
+ $(CC) $(LDFLAGS) -o $@ -Wl,-Map,pscp.map be_ssh.o cmdline.o cproxy.o \\r
+ int64.o logging.o misc.o pgssapi.o pinger.o portfwd.o \\r
+ proxy.o pscp.o pscp.res.o settings.o sftp.o ssh.o sshaes.o \\r
+ ssharcf.o sshblowf.o sshbn.o sshcrc.o sshcrcda.o sshdes.o \\r
+ sshdh.o sshdss.o sshgssc.o sshmd5.o sshpubk.o sshrand.o \\r
+ sshrsa.o sshsh256.o sshsh512.o sshsha.o sshzlib.o timing.o \\r
+ tree234.o version.o wildcard.o wincons.o windefs.o wingss.o \\r
+ winhandl.o winmisc.o winnet.o winnoise.o winnojmp.o \\r
winpgntc.o winproxy.o winsftp.o winstore.o wintime.o \\r
x11fwd.o -ladvapi32 -lcomctl32 -lcomdlg32 -lgdi32 -limm32 \\r
-lole32 -lshell32 -luser32 -lwinmm -lwinspool\r
\r
-psftp.exe: be_none.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
+psftp.exe: be_ssh.o cmdline.o cproxy.o int64.o logging.o misc.o pgssapi.o \\r
pinger.o portfwd.o proxy.o psftp.o psftp.res.o settings.o \\r
sftp.o ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
sshcrcda.o sshdes.o sshdh.o sshdss.o sshgssc.o sshmd5.o \\r
windefs.o wingss.o winhandl.o winmisc.o winnet.o winnoise.o \\r
winnojmp.o winpgntc.o winproxy.o winsftp.o winstore.o \\r
wintime.o x11fwd.o\r
- $(CC) $(LDFLAGS) -o $@ -Wl,-Map,psftp.map be_none.o cmdline.o \\r
+ $(CC) $(LDFLAGS) -o $@ -Wl,-Map,psftp.map be_ssh.o cmdline.o \\r
cproxy.o int64.o logging.o misc.o pgssapi.o pinger.o \\r
portfwd.o proxy.o psftp.o psftp.res.o settings.o sftp.o \\r
ssh.o sshaes.o ssharcf.o sshblowf.o sshbn.o sshcrc.o \\r
../charset/charset.h\r
$(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_nos_s.c\r
\r
+be_ssh.o: ../be_ssh.c ../putty.h ../puttyps.h ../network.h ../misc.h \\r
+ ../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
+ ../puttymem.h ../tree234.h ../windows/winhelp.h \\r
+ ../charset/charset.h\r
+ $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c ../be_ssh.c\r
+\r
cmdgen.o: ../cmdgen.c ../putty.h ../ssh.h ../puttyps.h ../network.h \\r
../misc.h ../puttymem.h ../tree234.h ../int64.h \\r
../windows/winstuff.h ../macosx/osx.h ../unix/unix.h \\r
x11fwd.obj shell32.lib wsock32.lib ws2_32.lib winspool.lib \\r
winmm.lib imm32.lib\r
\r
-pscp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+pscp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj pscp.obj \\r
pscp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
winmisc.obj winnet.obj winnoise.obj winnojmp.obj \\r
winpgntc.obj winproxy.obj winsftp.obj winstore.obj \\r
wintime.obj x11fwd.obj\r
- lcclnk -o pscp.exe be_none.obj cmdline.obj cproxy.obj int64.obj \\r
- logging.obj misc.obj pgssapi.obj pinger.obj portfwd.obj \\r
- proxy.obj pscp.obj pscp.res settings.obj sftp.obj ssh.obj \\r
- sshaes.obj ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj \\r
- sshcrcda.obj sshdes.obj sshdh.obj sshdss.obj sshgssc.obj \\r
- sshmd5.obj sshpubk.obj sshrand.obj sshrsa.obj sshsh256.obj \\r
- sshsh512.obj sshsha.obj sshzlib.obj timing.obj tree234.obj \\r
- version.obj wildcard.obj wincons.obj windefs.obj wingss.obj \\r
- winhandl.obj winmisc.obj winnet.obj winnoise.obj \\r
- winnojmp.obj winpgntc.obj winproxy.obj winsftp.obj \\r
- winstore.obj wintime.obj x11fwd.obj shell32.lib wsock32.lib \\r
- ws2_32.lib winspool.lib winmm.lib imm32.lib\r
+ lcclnk -o pscp.exe be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj \\r
+ misc.obj pgssapi.obj pinger.obj portfwd.obj proxy.obj \\r
+ pscp.obj pscp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
+ ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
+ sshdes.obj sshdh.obj sshdss.obj sshgssc.obj sshmd5.obj \\r
+ sshpubk.obj sshrand.obj sshrsa.obj sshsh256.obj sshsh512.obj \\r
+ sshsha.obj sshzlib.obj timing.obj tree234.obj version.obj \\r
+ wildcard.obj wincons.obj windefs.obj wingss.obj winhandl.obj \\r
+ winmisc.obj winnet.obj winnoise.obj winnojmp.obj \\r
+ winpgntc.obj winproxy.obj winsftp.obj winstore.obj \\r
+ wintime.obj x11fwd.obj shell32.lib wsock32.lib ws2_32.lib \\r
+ winspool.lib winmm.lib imm32.lib\r
\r
-psftp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+psftp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj psftp.obj \\r
psftp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
winmisc.obj winnet.obj winnoise.obj winnojmp.obj \\r
winpgntc.obj winproxy.obj winsftp.obj winstore.obj \\r
wintime.obj x11fwd.obj\r
- lcclnk -o psftp.exe be_none.obj cmdline.obj cproxy.obj int64.obj \\r
+ lcclnk -o psftp.exe be_ssh.obj cmdline.obj cproxy.obj int64.obj \\r
logging.obj misc.obj pgssapi.obj pinger.obj portfwd.obj \\r
proxy.obj psftp.obj psftp.res settings.obj sftp.obj ssh.obj \\r
sshaes.obj ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj \\r
..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
..\charset\charset.h\r
lcc -O -p6 $(COMPAT) $(CFLAGS) $(XFLAGS) ..\be_nos_s.c\r
+be_ssh.obj: ..\be_ssh.c ..\putty.h ..\puttyps.h ..\network.h ..\misc.h \\r
+ ..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
+ ..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
+ ..\charset\charset.h\r
+ lcc -O -p6 $(COMPAT) $(CFLAGS) $(XFLAGS) ..\be_ssh.c\r
cmdgen.obj: ..\cmdgen.c ..\putty.h ..\ssh.h ..\puttyps.h ..\network.h \\r
..\misc.h ..\puttymem.h ..\tree234.h ..\int64.h \\r
..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
plink.rsp\r
link $(LFLAGS) $(XLFLAGS) -out:plink.exe -map:plink.map @plink.rsp\r
\r
-pscp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+pscp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj pscp.obj \\r
pscp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
wintime.obj x11fwd.obj pscp.rsp\r
link $(LFLAGS) $(XLFLAGS) -out:pscp.exe -map:pscp.map @pscp.rsp\r
\r
-psftp.exe: be_none.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
+psftp.exe: be_ssh.obj cmdline.obj cproxy.obj int64.obj logging.obj misc.obj \\r
pgssapi.obj pinger.obj portfwd.obj proxy.obj psftp.obj \\r
psftp.res settings.obj sftp.obj ssh.obj sshaes.obj \\r
ssharcf.obj sshblowf.obj sshbn.obj sshcrc.obj sshcrcda.obj \\r
\r
pscp.rsp: $(MAKEFILE)\r
echo /nologo /subsystem:console > pscp.rsp\r
- echo advapi32.lib be_none.obj cmdline.obj comctl32.lib >> pscp.rsp\r
+ echo advapi32.lib be_ssh.obj cmdline.obj comctl32.lib >> pscp.rsp\r
echo comdlg32.lib cproxy.obj gdi32.lib imm32.lib >> pscp.rsp\r
echo int64.obj logging.obj misc.obj ole32.lib >> pscp.rsp\r
echo pgssapi.obj pinger.obj portfwd.obj proxy.obj >> pscp.rsp\r
\r
psftp.rsp: $(MAKEFILE)\r
echo /nologo /subsystem:console > psftp.rsp\r
- echo advapi32.lib be_none.obj cmdline.obj comctl32.lib >> psftp.rsp\r
+ echo advapi32.lib be_ssh.obj cmdline.obj comctl32.lib >> psftp.rsp\r
echo comdlg32.lib cproxy.obj gdi32.lib imm32.lib >> psftp.rsp\r
echo int64.obj logging.obj misc.obj ole32.lib >> psftp.rsp\r
echo pgssapi.obj pinger.obj portfwd.obj proxy.obj >> psftp.rsp\r
..\charset\charset.h\r
cl $(COMPAT) $(CFLAGS) $(XFLAGS) /c ..\be_nos_s.c\r
\r
+be_ssh.obj: ..\be_ssh.c ..\putty.h ..\puttyps.h ..\network.h ..\misc.h \\r
+ ..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
+ ..\puttymem.h ..\tree234.h ..\windows\winhelp.h \\r
+ ..\charset\charset.h\r
+ cl $(COMPAT) $(CFLAGS) $(XFLAGS) /c ..\be_ssh.c\r
+\r
cmdgen.obj: ..\cmdgen.c ..\putty.h ..\ssh.h ..\puttyps.h ..\network.h \\r
..\misc.h ..\puttymem.h ..\tree234.h ..\int64.h \\r
..\windows\winstuff.h ..\macosx\osx.h ..\unix\unix.h \\r
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
# Begin Source File\r
\r
-SOURCE=..\..\..\be_none.c\r
+SOURCE=..\..\..\be_ssh.c\r
+\r
+!IF "$(CFG)" == "pscp - Win32 Release"\r
+\r
+!ELSEIF "$(CFG)" == "pscp - Win32 Debug"\r
+\r
+# ADD CPP /Zi\r
+\r
+!ENDIF \r
+\r
# End Source File\r
# Begin Source File\r
\r
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
# Begin Source File\r
\r
-SOURCE=..\..\..\be_none.c\r
+SOURCE=..\..\..\be_ssh.c\r
+\r
+!IF "$(CFG)" == "psftp - Win32 Release"\r
+\r
+!ELSEIF "$(CFG)" == "psftp - Win32 Debug"\r
+\r
+# ADD CPP /Zi\r
+\r
+!ENDIF \r
+\r
# End Source File\r
# Begin Source File\r
\r
; -*- no -*-\r
-; $Id: putty.iss 9202 2011-07-12 18:26:18Z simon $\r
+; $Id: putty.iss 9366 2011-12-10 12:08:09Z simon $\r
;\r
; -- Inno Setup installer script for PuTTY and its related tools.\r
; Last tested with Inno Setup 5.0.8.\r
\r
[Setup]\r
AppName=PuTTY\r
-AppVerName=PuTTY version 0.61\r
-VersionInfoTextVersion=Release 0.61\r
-AppVersion=0.61\r
-VersionInfoVersion=0.61.0.0\r
+AppVerName=PuTTY version 0.62\r
+VersionInfoTextVersion=Release 0.62\r
+AppVersion=0.62\r
+VersionInfoVersion=0.62.0.0\r
AppPublisher=Simon Tatham\r
AppPublisherURL=http://www.chiark.greenend.org.uk/~sgtatham/putty/\r
AppReadmeFile={app}\README.txt\r
\r
/* We keep this around even for snapshots, for monotonicity of version\r
* numbering. It needs to be kept up to date. NB _comma_-separated. */\r
-#define BASE_VERSION 0,61\r
+#define BASE_VERSION 0,62\r
\r
#if defined SNAPSHOT\r
\r
#define VERSION_TEXT "Release " STR(RELEASE)\r
#define BINARY_VERSION BASE_VERSION,0,0\r
\r
+#elif defined PRERELEASE\r
+\r
+#define VERSION_TEXT "Pre-release " STR(PRERELEASE) ":r" STR(SVN_REV);\r
+#define BINARY_VERSION BASE_VERSION,SVN_REV,0\r
+\r
#elif defined SVN_REV\r
\r
#define VERSION_TEXT "Custom build r" STR(SVN_REV)\r
dec = dec * 2 - font_height;\r
\r
oldpen = SelectObject(hdc, CreatePen(PS_SOLID, 0, fg));\r
- MoveToEx(hdc, x, y + dec, NULL);\r
- LineTo(hdc, x + len * char_width, y + dec);\r
+ MoveToEx(hdc, line_box.left, line_box.top + dec, NULL);\r
+ LineTo(hdc, line_box.right, line_box.top + dec);\r
oldpen = SelectObject(hdc, oldpen);\r
DeleteObject(oldpen);\r
}\r
}\r
}\r
\r
+#ifndef NO_SECURITY\r
+/*\r
+ * Versions of Pageant prior to 0.61 expected this SID on incoming\r
+ * communications. For backwards compatibility, and more particularly\r
+ * for compatibility with derived works of PuTTY still using the old\r
+ * Pageant client code, we accept it as an alternative to the one\r
+ * returned from get_user_sid() in winpgntc.c.\r
+ */\r
+PSID get_default_sid(void)\r
+{\r
+ HANDLE proc = NULL;\r
+ DWORD sidlen;\r
+ PSECURITY_DESCRIPTOR psd = NULL;\r
+ PSID sid = NULL, copy = NULL, ret = NULL;\r
+\r
+ if ((proc = OpenProcess(MAXIMUM_ALLOWED, FALSE,\r
+ GetCurrentProcessId())) == NULL)\r
+ goto cleanup;\r
+\r
+ if (p_GetSecurityInfo(proc, SE_KERNEL_OBJECT, OWNER_SECURITY_INFORMATION,\r
+ &sid, NULL, NULL, NULL, &psd) != ERROR_SUCCESS)\r
+ goto cleanup;\r
+\r
+ sidlen = GetLengthSid(sid);\r
+\r
+ copy = (PSID)smalloc(sidlen);\r
+\r
+ if (!CopySid(sidlen, copy, sid))\r
+ goto cleanup;\r
+\r
+ /* Success. Move sid into the return value slot, and null it out\r
+ * to stop the cleanup code freeing it. */\r
+ ret = copy;\r
+ copy = NULL;\r
+\r
+ cleanup:\r
+ if (proc != NULL)\r
+ CloseHandle(proc);\r
+ if (psd != NULL)\r
+ LocalFree(psd);\r
+ if (copy != NULL)\r
+ sfree(copy);\r
+\r
+ return ret;\r
+}\r
+#endif\r
+\r
static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,\r
WPARAM wParam, LPARAM lParam)\r
{\r
void *p;\r
HANDLE filemap;\r
#ifndef NO_SECURITY\r
- PSID mapowner, ourself;\r
- PSECURITY_DESCRIPTOR psd1 = NULL, psd2 = NULL;\r
+ PSID mapowner, ourself, ourself2;\r
#endif\r
+ PSECURITY_DESCRIPTOR psd = NULL;\r
int ret = 0;\r
\r
cds = (COPYDATASTRUCT *) lParam;\r
return 0;\r
}\r
\r
+ if ((ourself2 = get_default_sid()) == NULL) {\r
+#ifdef DEBUG_IPC\r
+ debug(("couldn't get default SID\n"));\r
+#endif\r
+ return 0;\r
+ }\r
+\r
if ((rc = p_GetSecurityInfo(filemap, SE_KERNEL_OBJECT,\r
OWNER_SECURITY_INFORMATION,\r
&mapowner, NULL, NULL, NULL,\r
- &psd1) != ERROR_SUCCESS)) {\r
+ &psd) != ERROR_SUCCESS)) {\r
#ifdef DEBUG_IPC\r
debug(("couldn't get owner info for filemap: %d\n",\r
rc));\r
}\r
#ifdef DEBUG_IPC\r
{\r
- LPTSTR ours, theirs;\r
+ LPTSTR ours, ours2, theirs;\r
ConvertSidToStringSid(mapowner, &theirs);\r
ConvertSidToStringSid(ourself, &ours);\r
- debug(("got both sids: ours=%s theirs=%s\n",\r
- ours, theirs));\r
+ ConvertSidToStringSid(ourself2, &ours2);\r
+ debug(("got sids:\n oursnew=%s\n oursold=%s\n"\r
+ " theirs=%s\n", ours, ours2, theirs));\r
LocalFree(ours);\r
+ LocalFree(ours2);\r
LocalFree(theirs);\r
}\r
#endif\r
- if (!EqualSid(mapowner, ourself))\r
+ if (!EqualSid(mapowner, ourself) &&\r
+ !EqualSid(mapowner, ourself2)) {\r
+ CloseHandle(filemap);\r
return 0; /* security ID mismatch! */\r
+ }\r
#ifdef DEBUG_IPC\r
debug(("security stuff matched\n"));\r
#endif\r
- LocalFree(psd1);\r
- LocalFree(psd2);\r
+ LocalFree(psd);\r
+ sfree(ourself);\r
+ sfree(ourself2);\r
} else {\r
#ifdef DEBUG_IPC\r
debug(("security APIs not present\n"));\r