mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
Merge from trunk up to r8020.
[originally from svn r8021]
[r8020 == 14d825d42f
]
This commit is contained in:
commit
85c227326c
@ -209,7 +209,7 @@ seems to be working so far.
|
||||
|
||||
Currently, release versions of PuTTY tools only run on full Win32
|
||||
systems and Unix. \q{Win32} includes Windows 95, 98, and ME, and it
|
||||
includes Windows NT, Windows 2000 and Windows XP.
|
||||
includes Windows NT, 2000, XP, and Vista.
|
||||
|
||||
In the development code, a partial port to the Mac OS (see
|
||||
\k{faq-mac-port}) is under way.
|
||||
@ -1398,11 +1398,12 @@ and pay any costs, we can't provide this.
|
||||
\H{faq-misc} Miscellaneous questions
|
||||
|
||||
\S{faq-openssh}{Question} Is PuTTY a port of \i{OpenSSH}, or based on
|
||||
OpenSSH?
|
||||
OpenSSH or OpenSSL?
|
||||
|
||||
No, it isn't. PuTTY is almost completely composed of code written
|
||||
from scratch for PuTTY. The only code we share with OpenSSH is the
|
||||
detector for SSH-1 CRC compensation attacks, written by CORE SDI S.A.
|
||||
detector for SSH-1 CRC compensation attacks, written by CORE SDI
|
||||
S.A; we share no code at all with OpenSSL.
|
||||
|
||||
\S{faq-sillyputty}{Question} Where can I buy silly putty?
|
||||
|
||||
|
@ -40,7 +40,7 @@ option has a double minus sign, even though none of the others do.
|
||||
This is because this option is supplied automatically by GTK.
|
||||
Sorry.)
|
||||
|
||||
\dt \cw{\-name} \e{font-name}
|
||||
\dt \cw{\-name} \e{name}
|
||||
|
||||
\dd Specify the name under which \cw{pterm} looks up X resources.
|
||||
Normally it will look them up as (for example) \cw{pterm.Font}. If
|
||||
|
@ -175,7 +175,8 @@ int net_service_lookup(char *service)
|
||||
return 0;
|
||||
}
|
||||
|
||||
SockAddr platform_get_x11_unix_address(int displaynum, char **canonicalname)
|
||||
SockAddr platform_get_x11_unix_address(const char *display, int displaynum,
|
||||
char **canonicalname)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
41
mkauto.sh
41
mkauto.sh
@ -7,6 +7,41 @@
|
||||
# well as from outside.
|
||||
test -f unix.h && cd ..
|
||||
|
||||
# Track down automake's copy of install-sh
|
||||
cp `aclocal --print-ac-dir | sed 's/aclocal$/automake/'`/install-sh unix/.
|
||||
(cd unix && autoreconf && rm -rf aclocal.m4 autom4te.cache)
|
||||
# Persuade automake to give us a copy of its install-sh. This is a
|
||||
# pain because I don't actually want to have to _use_ automake.
|
||||
# Instead, I construct a trivial unrelated automake project in a
|
||||
# temporary subdirectory, run automake so that it'll copy
|
||||
# install-sh into that directory, then copy it back out again.
|
||||
# Hideous, but it should work.
|
||||
|
||||
mkdir automake-grievous-hack
|
||||
cat > automake-grievous-hack/hello.c << EOF
|
||||
#include <stdio.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
printf("hello, world\n");
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
cat > automake-grievous-hack/Makefile.am << EOF
|
||||
bin_PROGRAMS = hello
|
||||
hello_SOURCES = hello.c
|
||||
EOF
|
||||
cat > automake-grievous-hack/configure.ac << EOF
|
||||
AC_INIT
|
||||
AM_INIT_AUTOMAKE(hello, 1.0)
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_PROG_CC
|
||||
AC_OUTPUT
|
||||
EOF
|
||||
echo Some news > automake-grievous-hack/NEWS
|
||||
echo Some text > automake-grievous-hack/README
|
||||
echo Some people > automake-grievous-hack/AUTHORS
|
||||
echo Some changes > automake-grievous-hack/ChangeLog
|
||||
rm -f install-sh # this won't work if we accidentally have one _here_
|
||||
(cd automake-grievous-hack && autoreconf -i && \
|
||||
cp install-sh ../unix/install-sh)
|
||||
rm -rf automake-grievous-hack
|
||||
|
||||
# That was the hard bit. Now run autoconf on our real configure.in.
|
||||
(cd unix && autoreconf && rm -rf aclocal.m4 autom4te.cache)
|
||||
|
3
ssh.h
3
ssh.h
@ -344,7 +344,8 @@ extern void platform_get_x11_auth(char *display, int *proto,
|
||||
unsigned char *data, int *datalen);
|
||||
extern const char platform_x11_best_transport[];
|
||||
/* best X11 hostname for this platform if none specified */
|
||||
SockAddr platform_get_x11_unix_address(int displaynum, char **canonicalname);
|
||||
SockAddr platform_get_x11_unix_address(const char *display, int displaynum,
|
||||
char **canonicalname);
|
||||
/* make up a SockAddr naming the address for displaynum */
|
||||
char *platform_get_x_display(void);
|
||||
/* allocated local X display string, if any */
|
||||
|
20
unix/uxnet.c
20
unix/uxnet.c
@ -1292,15 +1292,29 @@ int net_service_lookup(char *service)
|
||||
return 0;
|
||||
}
|
||||
|
||||
SockAddr platform_get_x11_unix_address(int displaynum, char **canonicalname)
|
||||
SockAddr platform_get_x11_unix_address(const char *display, int displaynum,
|
||||
char **canonicalname)
|
||||
{
|
||||
SockAddr ret = snew(struct SockAddr_tag);
|
||||
int n;
|
||||
|
||||
memset(ret, 0, sizeof *ret);
|
||||
ret->family = AF_UNIX;
|
||||
n = snprintf(ret->hostname, sizeof ret->hostname,
|
||||
"%s%d", X11_UNIX_PATH, displaynum);
|
||||
/*
|
||||
* Mac OS X Leopard uses an innovative X display naming
|
||||
* convention in which the entire display name is the path to
|
||||
* the Unix socket, including the trailing :0 which only
|
||||
* _looks_ like a display number. Heuristically, I think
|
||||
* detecting this by means of a leading slash ought to be
|
||||
* adequate.
|
||||
*/
|
||||
if (display[0] == '/') {
|
||||
n = snprintf(ret->hostname, sizeof ret->hostname,
|
||||
"%s", display);
|
||||
} else {
|
||||
n = snprintf(ret->hostname, sizeof ret->hostname,
|
||||
"%s%d", X11_UNIX_PATH, displaynum);
|
||||
}
|
||||
if(n < 0)
|
||||
ret->error = "snprintf failed";
|
||||
else if(n >= sizeof ret->hostname)
|
||||
|
@ -1637,7 +1637,8 @@ int net_service_lookup(char *service)
|
||||
return 0;
|
||||
}
|
||||
|
||||
SockAddr platform_get_x11_unix_address(int displaynum, char **canonicalname)
|
||||
SockAddr platform_get_x11_unix_address(const char *display, int displaynum,
|
||||
char **canonicalname)
|
||||
{
|
||||
SockAddr ret = snew(struct SockAddr_tag);
|
||||
memset(ret, 0, sizeof(struct SockAddr_tag));
|
||||
|
4
x11fwd.c
4
x11fwd.c
@ -301,9 +301,9 @@ const char *x11_init(Socket * s, char *display, void *c, void *auth,
|
||||
host[n] = '\0';
|
||||
sfree(display);
|
||||
|
||||
if(!strcmp(host, "unix")) {
|
||||
if(!strcmp(host, "unix") || host[0] == '/') {
|
||||
/* use AF_UNIX sockets (doesn't make sense on all platforms) */
|
||||
addr = platform_get_x11_unix_address(displaynum,
|
||||
addr = platform_get_x11_unix_address(display, displaynum,
|
||||
&dummy_realhost);
|
||||
port = 0; /* to show we are not confused */
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user