Fix for UNICOS.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@538 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1996-05-13 02:18:42 +00:00
parent e5cdc04ffd
commit 9327c26477
3 changed files with 14 additions and 5 deletions

View File

@@ -1093,6 +1093,9 @@ initconn(void)
int a0, a1, a2, a3, p0, p1; int a0, a1, a2, a3, p0, p1;
if (passivemode) { if (passivemode) {
u_int32_t tmpaddr;
u_int16_t tmpport;
data = socket(AF_INET, SOCK_STREAM, 0); data = socket(AF_INET, SOCK_STREAM, 0);
if (data < 0) { if (data < 0) {
perror("ftp: socket"); perror("ftp: socket");
@@ -1124,12 +1127,14 @@ initconn(void)
memset(&data_addr, 0, sizeof(data_addr)); memset(&data_addr, 0, sizeof(data_addr));
data_addr.sin_family = AF_INET; data_addr.sin_family = AF_INET;
a = (char *)&data_addr.sin_addr.s_addr; tmpaddr = data_addr.sin_addr.s_addr;
a = (char *)&tmpaddr;
a[0] = a0 & 0xff; a[0] = a0 & 0xff;
a[1] = a1 & 0xff; a[1] = a1 & 0xff;
a[2] = a2 & 0xff; a[2] = a2 & 0xff;
a[3] = a3 & 0xff; a[3] = a3 & 0xff;
p = (char *)&data_addr.sin_port; tmpport = data_addr.sin_port;
p = (char *)&tmpport;
p[0] = p0 & 0xff; p[0] = p0 & 0xff;
p[1] = p1 & 0xff; p[1] = p1 & 0xff;

View File

@@ -5,6 +5,9 @@
#include <config.h> #include <config.h>
#endif #endif
#include <sys/bitypes.h>
#include <sys/cdefs.h>
#include <pwd.h> #include <pwd.h>
#include <signal.h> #include <signal.h>
#include <stdio.h> #include <stdio.h>

View File

@@ -118,11 +118,12 @@ main(int argc, char **argv)
xargv[4] = NULL; xargv[4] = NULL;
setpeer(argc+1, xargv); setpeer(argc+1, xargv);
} }
top = setjmp(toplevel) == 0; if (setjmp(toplevel) == 0) {
if (top) { top = 1;
(void) signal(SIGINT, intr); (void) signal(SIGINT, intr);
(void) signal(SIGPIPE, lostpeer); (void) signal(SIGPIPE, lostpeer);
} } else
top = 0;
for (;;) { for (;;) {
cmdscanner(top); cmdscanner(top);
top = 1; top = 1;