From 6c077d1bf9629757944aa42cf4500a7472c1104f Mon Sep 17 00:00:00 2001 From: bdemsky Date: Tue, 6 Nov 2007 05:36:37 +0000 Subject: [PATCH] more changes --- Robust/src/ClassLibrary/InetAddress.java | 25 ++++++++++++++++++++++++ Robust/src/Runtime/socket.c | 16 +++++++++------ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/Robust/src/ClassLibrary/InetAddress.java b/Robust/src/ClassLibrary/InetAddress.java index 1ecbddae..7d44a3db 100644 --- a/Robust/src/ClassLibrary/InetAddress.java +++ b/Robust/src/ClassLibrary/InetAddress.java @@ -20,6 +20,21 @@ public class InetAddress { return address; } + public static InetAddress getLocalHost() { + return getByName("localhost"); + } + + public boolean equals(InetAddress ia) { + if (ia==null) + return false; + if (ia.address.length!=address.length) + return false; + for(int i=0;i0) + h+="."; + h+=(int)address[i]; + } + return h; + } } diff --git a/Robust/src/Runtime/socket.c b/Robust/src/Runtime/socket.c index 69e7c12d..e550a76a 100644 --- a/Robust/src/Runtime/socket.c +++ b/Robust/src/Runtime/socket.c @@ -192,6 +192,13 @@ int CALL12(___ServerSocket______createSocket____I, int port, struct ___ServerSoc #endif } +#ifdef MAC + if (setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, &n, sizeof (n)) < 0) { + perror("socket"); + exit(-1); + } +#endif + #ifdef TASK fcntl(fd, F_SETFD, 1); fcntl(fd, F_SETFL, fcntl(fd, F_GETFL)|O_NONBLOCK); @@ -308,14 +315,12 @@ int CALL02(___Socket______nativeRead_____AR_B, struct ___Socket___ * ___this___, struct listitem *tmp=stopforgc((struct garbagelist *)___params___); #endif #endif - int byteread; + int byteread=-1; // printf("Doing read on %d\n",fd); - while(1) { + do { byteread=read(fd, charstr, length); - - break; - } + } while(byteread==-1&&errno==EINTR); #ifdef THREADS #ifdef PRECISE_GC restartaftergc(tmp); @@ -334,7 +339,6 @@ int CALL02(___Socket______nativeRead_____AR_B, struct ___Socket___ * ___this___, if (byteread<0) { printf("ERROR IN NATIVEREAD\n"); perror(""); - byteread=0; } #ifdef TASK flagorand(VAR(___this___),0,0xFFFFFFFE); -- 2.34.1