diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | ext/socket/getaddrinfo.c | 3 | ||||
-rw-r--r-- | ext/socket/getnameinfo.c | 3 | ||||
-rw-r--r-- | ext/socket/socket.c | 1 | ||||
-rw-r--r-- | lib/cgi/session.rb | 49 | ||||
-rw-r--r-- | lib/mkmf.rb | 2 | ||||
-rw-r--r-- | numeric.c | 2 |
8 files changed, 44 insertions, 28 deletions
@@ -1,3 +1,8 @@ +Thu May 20 12:38:06 2004 Yukihiro Matsumoto <matz@ruby-lang.org> + + * numeric.c (flo_eq): alway check if operands are NaN. + [ruby-list:39685] + Thu May 20 12:34:39 2004 Dave Thomas <dave@pragprog.com> * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_visibility): @@ -2645,6 +2650,11 @@ Wed Jan 28 12:43:07 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * lib/rss: rss library imported. [ruby-dev:22726] +Wed Jan 28 04:29:41 2004 Eric Schwartz <emschwar@fc.hp.com> + + * lib/cgi/session.rb: use LOCK_SH to read, and a few other + improvements. [ruby-core:02328] + Tue Jan 27 15:00:14 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * misc/ruby-mode.el: better support for general delimited diff --git a/configure.in b/configure.in index 3e10b0311..5dd8cbdc1 100644 --- a/configure.in +++ b/configure.in @@ -354,6 +354,8 @@ freebsd*) LIBS="-lm $LIBS" ;; bow) ac_cv_func_setitimer=no ;; +superux*) ac_cv_func_setitimer=no + ;; *) LIBS="-lm $LIBS";; esac AC_CHECK_LIB(crypt, crypt) diff --git a/ext/socket/getaddrinfo.c b/ext/socket/getaddrinfo.c index c05fbd57b..14bedb2e9 100644 --- a/ext/socket/getaddrinfo.c +++ b/ext/socket/getaddrinfo.c @@ -56,6 +56,9 @@ #endif #include <netdb.h> #if defined(HAVE_RESOLV_H) +#ifdef _SX +#include <stdio.h> +#endif #include <resolv.h> #endif #include <unistd.h> diff --git a/ext/socket/getnameinfo.c b/ext/socket/getnameinfo.c index a75f233a8..4c9c8f03c 100644 --- a/ext/socket/getnameinfo.c +++ b/ext/socket/getnameinfo.c @@ -51,6 +51,9 @@ #endif #include <netdb.h> #if defined(HAVE_RESOLV_H) +#ifdef _SX +#include <stdio.h> +#endif #include <resolv.h> #endif #endif diff --git a/ext/socket/socket.c b/ext/socket/socket.c index a11756b28..0fe98c871 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -1132,6 +1132,7 @@ make_hostent_internal(arg) rb_ary_push(ary, names); rb_ary_push(ary, INT2NUM(addr->ai_family)); for (ai = addr; ai; ai = ai->ai_next) { + printf("SA_LEN(%d)=%d\n", ai->ai_addrlen, SA_LEN(ai->ai_addr)); rb_ary_push(ary, (*ipaddr)(ai->ai_addr, ai->ai_addrlen)); } diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb index 7115cae7d..cd6ce95f4 100644 --- a/lib/cgi/session.rb +++ b/lib/cgi/session.rb @@ -364,16 +364,11 @@ class CGI unless check_id(id) raise ArgumentError, "session_id `%s' is invalid" % id end - path = dir+"/"+prefix+id - path.untaint - unless File::exist? path + @path = dir+"/"+prefix+id + @path.untaint + unless File::exist? @path @hash = {} end - begin - @f = open(path, "r+") - rescue Errno::ENOENT - @f = open(path, "w+") - end end # Restore session state from the session's FileStore file. @@ -382,13 +377,17 @@ class CGI def restore unless @hash @hash = {} - @f.flock File::LOCK_EX - @f.rewind - for line in @f - line.chomp! - k, v = line.split('=',2) - @hash[CGI::unescape(k)] = CGI::unescape(v) - end + begin + f = File.open(@path, 'r') + f.flock File::LOCK_SH + for line in f + line.chomp! + k, v = line.split('=',2) + @hash[CGI::unescape(k)] = CGI::unescape(v) + end + ensure + f.close unless f.nil? + end end @hash end @@ -396,25 +395,25 @@ class CGI # Save session state to the session's FileStore file. def update return unless @hash - @f.rewind - for k,v in @hash - @f.printf "%s=%s\n", CGI::escape(k), CGI::escape(String(v)) - end - @f.truncate @f.tell + begin + f = File.open(@path, 'w') + f.flock File::LOCK_EX + for k,v in @hash + f.printf "%s=%s\n", CGI::escape(k), CGI::escape(String(v)) + end + ensure + f.close unless f.nil? + end end # Update and close the session's FileStore file. def close - return if @f.closed? update - @f.close end # Close and delete the session's FileStore file. def delete - path = @f.path - @f.close - File::unlink path + File::unlink @path end end diff --git a/lib/mkmf.rb b/lib/mkmf.rb index c8e98fb4e..a95fb7e32 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -603,7 +603,7 @@ def check_sizeof(type, header = nil, &b) end message(a = size ? "#{size}\n" : "failed\n") Logging::message "-------------------- %s\n", a - r + size end def find_executable0(bin, path = nil) @@ -834,9 +834,7 @@ flo_eq(x, y) return num_equal(x, y); } a = RFLOAT(x)->value; -#if defined __BORLANDC__ if (isnan(a) || isnan(b)) return Qfalse; -#endif return (a == b)?Qtrue:Qfalse; } |