Author: ek.kato
Date: Sat Feb 28 17:53:39 2009
New Revision: 5870
Modified:
trunk/scm/fileio.scm
trunk/scm/socket.scm
trunk/uim/socket.c
Log:
* uim/socket.c (c_getaddrinfo) : Don't crash even when network is
not connected, and return '() in that case.
* scm/socket.scm (call-with-getaddrinfo)
* scm/fileio.scm (call-with-open-file-port)
- Follow the change in getaddrinfo.
Modified: trunk/scm/fileio.scm
==============================================================================
--- trunk/scm/fileio.scm (original)
+++ trunk/scm/fileio.scm Sat Feb 28 17:53:39 2009
@@ -64,7 +64,8 @@
(fd! port #f))
(define (call-with-open-file-port fd thunk)
- (and (< 0 fd)
+ (and (not (null? fd))
+ (< 0 fd)
(let ((ret (thunk (open-file-port fd))))
(file-close fd)
ret)))
Modified: trunk/scm/socket.scm
==============================================================================
--- trunk/scm/socket.scm (original)
+++ trunk/scm/socket.scm Sat Feb 28 17:53:39 2009
@@ -66,7 +66,8 @@
(define (call-with-getaddrinfo hostname servname hints thunk)
(let* ((res (getaddrinfo hostname servname hints))
(ret (thunk res)))
- (freeaddrinfo (car res))
+ (if (not (null? res))
+ (freeaddrinfo (car res)))
ret))
(define (call-with-sockaddr-un family path thunk)
Modified: trunk/uim/socket.c
==============================================================================
--- trunk/uim/socket.c (original)
+++ trunk/uim/socket.c Sat Feb 28 17:53:39 2009
@@ -244,10 +244,7 @@
error = getaddrinfo(hostname, servname, hints, &res0);
if (error) {
const char *errstr = gai_strerror(error);
-
- free(servname);
- uim_notify_fatal("getaddrinfo: %s", gai_strerror(error));
- ERROR_OBJ(errstr, CONS(hostname_, servname_));
+ uim_notify_fatal("getaddrinfo: %s", errstr);
}
free(servname);