From 061fd36d75bff6335d2c6fdced5a70eb14bc8322 Mon Sep 17 00:00:00 2001 From: knu Date: Fri, 6 Jun 2008 08:05:24 +0000 Subject: * ext/openssl/ossl_ssl_session.c (ossl_ssl_session_initialize): Add a null check for ssl; submitted by akira yamada in [ruby-dev:34950]. * ext/openssl/ossl_ssl.c (Init_ossl_ssl): Define OP_NO_TICKET if SSL_OP_NO_TICKET is present; submitted by akira yamada in [ruby-dev:34944]. * test/openssl/test_ssl.rb (OpenSSL#test_server_session): Add a workaround for the case where OpenSSL is configured with --enable-tlsext; submitted by akira yamada in [ruby-dev:34944]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 14 ++++++++++++++ ext/openssl/ossl_ssl.c | 3 +++ ext/openssl/ossl_ssl_session.c | 2 +- lib/cgi/session.rb | 4 ++-- lib/cgi/session/pstore.rb | 2 +- lib/delegate.rb | 2 +- lib/erb.rb | 2 +- lib/forwardable.rb | 2 +- lib/irb/extend-command.rb | 2 +- lib/irb/help.rb | 2 +- lib/irb/notifier.rb | 2 +- lib/irb/ruby-lex.rb | 2 +- lib/irb/slex.rb | 2 +- lib/logger.rb | 2 +- lib/net/https.rb | 4 ++-- lib/optparse.rb | 6 +++--- lib/pstore.rb | 4 ++-- lib/rdoc/parsers/parse_c.rb | 8 ++++---- lib/rdoc/parsers/parse_f95.rb | 8 ++++---- lib/resolv.rb | 4 ++-- lib/rexml/attlistdecl.rb | 2 +- lib/rexml/document.rb | 2 +- lib/rexml/element.rb | 6 +++--- lib/rexml/formatters/pretty.rb | 2 +- lib/rexml/functions.rb | 2 +- lib/rexml/text.rb | 2 +- lib/rexml/xpath.rb | 2 +- lib/rinda/ring.rb | 4 ++-- lib/time.rb | 4 +++- lib/webrick/httpproxy.rb | 2 +- lib/webrick/httpresponse.rb | 2 +- missing/vsnprintf.c | 2 +- object.c | 17 +++++++++++++++-- test/openssl/test_ssl.rb | 7 ++++++- version.h | 2 +- win32/win32.h | 1 + 36 files changed, 87 insertions(+), 49 deletions(-) diff --git a/ChangeLog b/ChangeLog index aa0ae8c70d..6ea2b95f26 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +Fri Jun 6 17:04:56 2008 Akinori MUSHA + + * ext/openssl/ossl_ssl_session.c (ossl_ssl_session_initialize): + Add a null check for ssl; submitted by akira yamada + in [ruby-dev:34950]. + + * ext/openssl/ossl_ssl.c (Init_ossl_ssl): Define OP_NO_TICKET if + SSL_OP_NO_TICKET is present; submitted by akira yamada + in [ruby-dev:34944]. + + * test/openssl/test_ssl.rb (OpenSSL#test_server_session): Add a + workaround for the case where OpenSSL is configured with + --enable-tlsext; submitted by akira yamada in [ruby-dev:34944]. + Fri Jun 6 16:58:23 2008 Nobuyoshi Nakada * ext/iconv/iconv.c (iconv_iconv): fix for length argument and now diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index 675fe657b0..01b86fec27 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -1466,6 +1466,9 @@ Init_ossl_ssl() ossl_ssl_def_const(OP_NO_SSLv2); ossl_ssl_def_const(OP_NO_SSLv3); ossl_ssl_def_const(OP_NO_TLSv1); +#if defined(SSL_OP_NO_TICKET) + ossl_ssl_def_const(OP_NO_TICKET); +#endif ossl_ssl_def_const(OP_PKCS1_CHECK_1); ossl_ssl_def_const(OP_PKCS1_CHECK_2); ossl_ssl_def_const(OP_NETSCAPE_CA_DN_BUG); diff --git a/ext/openssl/ossl_ssl_session.c b/ext/openssl/ossl_ssl_session.c index 82de3efbe3..63c2bbb87a 100644 --- a/ext/openssl/ossl_ssl_session.c +++ b/ext/openssl/ossl_ssl_session.c @@ -47,7 +47,7 @@ static VALUE ossl_ssl_session_initialize(VALUE self, VALUE arg1) Data_Get_Struct(arg1, SSL, ssl); - if ((ctx = SSL_get1_session(ssl)) == NULL) + if (!ssl || (ctx = SSL_get1_session(ssl)) == NULL) ossl_raise(eSSLSession, "no session available"); } else { BIO *in = ossl_obj2bio(arg1); diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb index e7e7587c65..a6e999bc34 100644 --- a/lib/cgi/session.rb +++ b/lib/cgi/session.rb @@ -230,7 +230,7 @@ class CGI # session_path:: the path for which this session applies. Defaults # to the directory of the CGI script. # - # +option+ is also passed on to the session storage class initialiser; see + # +option+ is also passed on to the session storage class initializer; see # the documentation for each session storage class for the options # they support. # @@ -357,7 +357,7 @@ class CGI # characters; automatically generated session ids observe # this requirement. # - # +option+ is a hash of options for the initialiser. The + # +option+ is a hash of options for the initializer. The # following options are recognised: # # tmpdir:: the directory to use for storing the FileStore diff --git a/lib/cgi/session/pstore.rb b/lib/cgi/session/pstore.rb index bd93d0a6ff..3d204d5dc0 100644 --- a/lib/cgi/session/pstore.rb +++ b/lib/cgi/session/pstore.rb @@ -30,7 +30,7 @@ class CGI # characters; automatically generated session ids observe # this requirement. # - # +option+ is a hash of options for the initialiser. The + # +option+ is a hash of options for the initializer. The # following options are recognised: # # tmpdir:: the directory to use for storing the PStore diff --git a/lib/delegate.rb b/lib/delegate.rb index 0bf5cae7cb..bd2b5e4813 100644 --- a/lib/delegate.rb +++ b/lib/delegate.rb @@ -250,7 +250,7 @@ SimpleDelegater = SimpleDelegator # your class. # # class MyClass < DelegateClass( ClassToDelegateTo ) # Step 1 -# def initiaize +# def initialize # super(obj_of_ClassToDelegateTo) # Step 2 # end # end diff --git a/lib/erb.rb b/lib/erb.rb index a37832dafe..2ae5a1ab4a 100644 --- a/lib/erb.rb +++ b/lib/erb.rb @@ -656,7 +656,7 @@ class ERB # # def build # b = binding - # # create and run templates, filling member data variebles + # # create and run templates, filling member data variables # ERB.new(<<-'END_PRODUCT'.gsub(/^\s+/, ""), 0, "", "@product").result b # <%= PRODUCT[:name] %> # <%= PRODUCT[:desc] %> diff --git a/lib/forwardable.rb b/lib/forwardable.rb index b6344cd4f6..cc6e4ee418 100644 --- a/lib/forwardable.rb +++ b/lib/forwardable.rb @@ -38,7 +38,7 @@ # @q = [ ] # prepare delegate object # end # -# # setup prefered interface, enq() and deq()... +# # setup preferred interface, enq() and deq()... # def_delegator :@q, :push, :enq # def_delegator :@q, :shift, :deq # diff --git a/lib/irb/extend-command.rb b/lib/irb/extend-command.rb index 8994f2f8d2..508721c11d 100644 --- a/lib/irb/extend-command.rb +++ b/lib/irb/extend-command.rb @@ -112,7 +112,7 @@ module IRB end end - # aliases = [commans_alias, flag], ... + # aliases = [commands_alias, flag], ... def self.def_extend_command(cmd_name, cmd_class, load_file = nil, *aliases) case cmd_class when Symbol diff --git a/lib/irb/help.rb b/lib/irb/help.rb index f091999bd1..4921de6ec9 100644 --- a/lib/irb/help.rb +++ b/lib/irb/help.rb @@ -1,5 +1,5 @@ # -# irb/help.rb - print usase module +# irb/help.rb - print usage module # $Release Version: 0.9.5$ # $Revision$ # $Date$ diff --git a/lib/irb/notifier.rb b/lib/irb/notifier.rb index c8e66fa859..0f79bc5a8d 100644 --- a/lib/irb/notifier.rb +++ b/lib/irb/notifier.rb @@ -1,5 +1,5 @@ # -# notifier.rb - optput methods used by irb +# notifier.rb - output methods used by irb # $Release Version: 0.9.5$ # $Revision$ # $Date$ diff --git a/lib/irb/ruby-lex.rb b/lib/irb/ruby-lex.rb index ab584d5253..313a809ccd 100644 --- a/lib/irb/ruby-lex.rb +++ b/lib/irb/ruby-lex.rb @@ -1,5 +1,5 @@ # -# irb/ruby-lex.rb - ruby lexcal analizer +# irb/ruby-lex.rb - ruby lexcal analyzer # $Release Version: 0.9.5$ # $Revision$ # $Date$ diff --git a/lib/irb/slex.rb b/lib/irb/slex.rb index a6ea6fb473..f7e3a3b2b2 100644 --- a/lib/irb/slex.rb +++ b/lib/irb/slex.rb @@ -1,5 +1,5 @@ # -# irb/slex.rb - symple lex analizer +# irb/slex.rb - simple lex analyzer # $Release Version: 0.9.5$ # $Revision$ # $Date$ diff --git a/lib/logger.rb b/lib/logger.rb index 60e72424ad..9030fa1d0d 100644 --- a/lib/logger.rb +++ b/lib/logger.rb @@ -1,4 +1,4 @@ -# logger.rb - saimple logging utility +# logger.rb - simple logging utility # Copyright (C) 2000-2003, 2005 NAKAMURA, Hiroshi . require 'monitor' diff --git a/lib/net/https.rb b/lib/net/https.rb index e296dbbed4..7847c3ffea 100644 --- a/lib/net/https.rb +++ b/lib/net/https.rb @@ -65,11 +65,11 @@ It can be replaced by the following code: : key, key=((|key|)) Sets an OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object. - (This method is appeared in Michal Rokos's OpenSSL extention.) + (This method is appeared in Michal Rokos's OpenSSL extension.) : cert, cert=((|cert|)) Sets an OpenSSL::X509::Certificate object as client certificate - (This method is appeared in Michal Rokos's OpenSSL extention). + (This method is appeared in Michal Rokos's OpenSSL extension). : ca_file, ca_file=((|path|)) Sets path of a CA certification file in PEM format. diff --git a/lib/optparse.rb b/lib/optparse.rb index 0479c5af6b..134b540cfb 100644 --- a/lib/optparse.rb +++ b/lib/optparse.rb @@ -826,7 +826,7 @@ class OptionParser # # Directs to reject specified class argument. # - # +t+:: Argument class speficier, any object including Class. + # +t+:: Argument class specifier, any object including Class. # # reject(t) # @@ -1037,13 +1037,13 @@ class OptionParser # "-x[OPTIONAL]" # "-x" # There is also a special form which matches character range (not full - # set of regural expression): + # set of regular expression): # "-[a-z]MANDATORY" # "-[a-z][OPTIONAL]" # "-[a-z]" # # [Argument style and description:] - # Instead of specifying mandatory or optional orguments directly in the + # Instead of specifying mandatory or optional arguments directly in the # switch parameter, this separate parameter can be used. # "=MANDATORY" # "=[OPTIONAL]" diff --git a/lib/pstore.rb b/lib/pstore.rb index 6df64474ab..ab495d9ed7 100644 --- a/lib/pstore.rb +++ b/lib/pstore.rb @@ -11,14 +11,14 @@ require "fileutils" require "digest/md5" # -# PStore implements a file based persistance mechanism based on a Hash. User +# PStore implements a file based persistence mechanism based on a Hash. User # code can store hierarchies of Ruby objects (values) into the data store file # by name (keys). An object hierarchy may be just a single object. User code # may later read values back from the data store or even update data, as needed. # # The transactional behavior ensures that any changes succeed or fail together. # This can be used to ensure that the data store is not left in a transitory -# state, where some values were upated but others were not. +# state, where some values were updated but others were not. # # Behind the scenes, Ruby objects are stored to the data store file with # Marshal. That carries the usual limitations. Proc objects cannot be diff --git a/lib/rdoc/parsers/parse_c.rb b/lib/rdoc/parsers/parse_c.rb index 25fc66af3f..7eefa29706 100644 --- a/lib/rdoc/parsers/parse_c.rb +++ b/lib/rdoc/parsers/parse_c.rb @@ -117,10 +117,10 @@ module RDoc # method in the HTML output. This method must be in the same source file # as the rb_define_method. # - # C classes can be diagramed (see /tc/dl/ruby/ruby/error.c), and RDoc + # C classes can be diagrammed (see /tc/dl/ruby/ruby/error.c), and RDoc # integrates C and Ruby source into one tree # - # The comment blocks may include special direcives: + # The comment blocks may include special directives: # # [Document-class: name] # This comment block is documentation for the given class. Use this @@ -131,10 +131,10 @@ module RDoc # automatically find the method from it's declaration # # [call-seq: text up to an empty line] - # Because C source doesn't give descripive names to Ruby-level parameters, + # Because C source doesn't give descriptive names to Ruby-level parameters, # you need to document the calling sequence explicitly # - # In additon, RDoc assumes by default that the C method implementing a + # In addition, RDoc assumes by default that the C method implementing a # Ruby function is in the same source file as the rb_define_method call. # If this isn't the case, add the comment # diff --git a/lib/rdoc/parsers/parse_f95.rb b/lib/rdoc/parsers/parse_f95.rb index f3f6d76103..f1a1ae4d4b 100644 --- a/lib/rdoc/parsers/parse_f95.rb +++ b/lib/rdoc/parsers/parse_f95.rb @@ -201,7 +201,7 @@ module RDoc @progress = $stderr unless options.quiet end - # devine code constructs + # define code constructs def scan # remove private comment @@ -1065,7 +1065,7 @@ module RDoc # # If "all" argument is true, information of all arguments are returned. # If "modified_params" is true, list of arguments are decorated, - # for exameple, optional arguments are parenthetic as "[arg]". + # for example, optional arguments are parenthetic as "[arg]". # def find_arguments(args, text, all=nil, indent=nil, modified_params=nil) return unless args || all @@ -1143,8 +1143,8 @@ EOF # # Comments just after module or subprogram, or arguments are - # returnd. If "COMMENTS_ARE_UPPER" is true, comments just before - # modules or subprograms are returnd + # returned. If "COMMENTS_ARE_UPPER" is true, comments just before + # modules or subprograms are returned # def find_comments text return "" unless text diff --git a/lib/resolv.rb b/lib/resolv.rb index 08f80e071c..a3ed32ed6d 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -252,7 +252,7 @@ class Resolv end ## - # Iterates over all hostnames for +address+ retrived from the hosts file. + # Iterates over all hostnames for +address+ retrieved from the hosts file. def each_name(address, &proc) lazy_initialize @@ -2015,7 +2015,7 @@ class Resolv end ## - # A String reperesentation of this IPv4 address. + # A String representation of this IPv4 address. ## # The raw IPv4 address as a String. diff --git a/lib/rexml/attlistdecl.rb b/lib/rexml/attlistdecl.rb index d4b5c38af6..ef4721b5ce 100644 --- a/lib/rexml/attlistdecl.rb +++ b/lib/rexml/attlistdecl.rb @@ -44,7 +44,7 @@ module REXML @pairs.keys.include? key end - # Itterate over the key/value pairs: + # Iterate over the key/value pairs: # attlist_decl.each { |attribute_name, attribute_value| ... } def each(&block) @pairs.each(&block) diff --git a/lib/rexml/document.rb b/lib/rexml/document.rb index 81e63c60f1..54aa691ad8 100644 --- a/lib/rexml/document.rb +++ b/lib/rexml/document.rb @@ -147,7 +147,7 @@ module REXML # A controversial point is whether Document should always write the XML # declaration () whether or not one is given by the # user (or source document). REXML does not write one if one was not - # specified, because it adds unneccessary bandwidth to applications such + # specified, because it adds unnecessary bandwidth to applications such # as XML-RPC. # # See also the classes in the rexml/formatters package for the proper way diff --git a/lib/rexml/element.rb b/lib/rexml/element.rb index 92612036a1..3db87c6126 100644 --- a/lib/rexml/element.rb +++ b/lib/rexml/element.rb @@ -360,7 +360,7 @@ module REXML # Iterates through the children, yielding for each Element that # has a particular text set. # text:: - # the text to search for. If nil, or not supplied, will itterate + # the text to search for. If nil, or not supplied, will iterate # over all +Element+ children that contain at least one +Text+ node. # max:: # (optional) causes this method to return after yielding @@ -989,7 +989,7 @@ module REXML end alias :size :length - # Itterates over the attributes of an Element. Yields actual Attribute + # Iterates over the attributes of an Element. Yields actual Attribute # nodes, not String values. # # doc = Document.new '' @@ -1006,7 +1006,7 @@ module REXML end end - # Itterates over each attribute of an Element, yielding the expanded name + # Iterates over each attribute of an Element, yielding the expanded name # and value as a pair of Strings. # # doc = Document.new '' diff --git a/lib/rexml/formatters/pretty.rb b/lib/rexml/formatters/pretty.rb index 22b6d857cd..d21175d34a 100644 --- a/lib/rexml/formatters/pretty.rb +++ b/lib/rexml/formatters/pretty.rb @@ -125,7 +125,7 @@ module REXML end def wrap(string, width) - # Recursivly wrap string at width. + # Recursively wrap string at width. return string if string.length <= width place = string.rindex(' ', width) # Position in string with last ' ' before cutoff return string[0,place] + "\n" + wrap(string[place+1..-1], width) diff --git a/lib/rexml/functions.rb b/lib/rexml/functions.rb index 8293e9c5ac..fefc9ef940 100644 --- a/lib/rexml/functions.rb +++ b/lib/rexml/functions.rb @@ -235,7 +235,7 @@ module REXML # from string then we ignore the second & # subsequent mappings # - # if a charactcer maps to nil then we delete it + # if a character maps to nil then we delete it # in the output. This happens if the from # string is longer than the to string # diff --git a/lib/rexml/text.rb b/lib/rexml/text.rb index 9804aa710b..2bc00429b3 100644 --- a/lib/rexml/text.rb +++ b/lib/rexml/text.rb @@ -189,7 +189,7 @@ module REXML end def wrap(string, width, addnewline=false) - # Recursivly wrap string at width. + # Recursively wrap string at width. return string if string.length <= width place = string.rindex(' ', width) # Position in string with last ' ' before cutoff if addnewline then diff --git a/lib/rexml/xpath.rb b/lib/rexml/xpath.rb index 939399e283..e8813efd3e 100644 --- a/lib/rexml/xpath.rb +++ b/lib/rexml/xpath.rb @@ -30,7 +30,7 @@ module REXML parser.parse(path, element).flatten[0] end - # Itterates over nodes that match the given path, calling the supplied + # Iterates over nodes that match the given path, calling the supplied # block with the match. # element:: # The context element diff --git a/lib/rinda/ring.rb b/lib/rinda/ring.rb index ac8a716216..1fad92dbc7 100644 --- a/lib/rinda/ring.rb +++ b/lib/rinda/ring.rb @@ -19,7 +19,7 @@ module Rinda # 1. A RingServer begins listening on the broadcast UDP address. # 2. A RingFinger sends a UDP packet containing the DRb URI where it will # listen for a reply. - # 3. The RingServer recieves the UDP packet and connects back to the + # 3. The RingServer receives the UDP packet and connects back to the # provided DRb URI with the DRb service. class RingServer @@ -119,7 +119,7 @@ module Rinda end ## - # Contains all discoverd TupleSpaces except for the primary. + # Contains all discovered TupleSpaces except for the primary. def self.to_a finger.to_a diff --git a/lib/time.rb b/lib/time.rb index 2de21cd7c8..a37a067390 100644 --- a/lib/time.rb +++ b/lib/time.rb @@ -363,7 +363,7 @@ class Time min = $5.to_i sec = $6.to_i usec = 0 - usec = $7.to_f * 1000000 if $7 + usec = ($7[1..-1] + '000000')[0,6].to_i if $7 if $8 zone = $8 year, mon, day, hour, min, sec = @@ -621,6 +621,8 @@ if __FILE__ == $0 t = Time.utc(1960, 12, 31, 23, 0, 0, 123456) assert_equal("1960-12-31T23:00:00.123456Z", t.xmlschema(6)) end + + assert_equal(249, Time.xmlschema("2008-06-05T23:49:23.000249+09:00").usec) end def test_completion diff --git a/lib/webrick/httpproxy.rb b/lib/webrick/httpproxy.rb index 14e3499775..9295259085 100644 --- a/lib/webrick/httpproxy.rb +++ b/lib/webrick/httpproxy.rb @@ -47,7 +47,7 @@ module WEBrick req.header.delete("proxy-authorization") end - # Some header fields shuold not be transfered. + # Some header fields should not be transferred. HopByHop = %w( connection keep-alive proxy-authenticate upgrade proxy-authorization te trailers transfer-encoding ) ShouldNotTransfer = %w( set-cookie proxy-connection ) diff --git a/lib/webrick/httpresponse.rb b/lib/webrick/httpresponse.rb index d0f232d1e1..62156b1abd 100644 --- a/lib/webrick/httpresponse.rb +++ b/lib/webrick/httpresponse.rb @@ -132,7 +132,7 @@ module WEBrick end end - # Determin the message length (RFC2616 -- 4.4 Message Length) + # Determine the message length (RFC2616 -- 4.4 Message Length) if @status == 304 || @status == 204 || HTTPStatus::info?(@status) @header.delete('content-length') @body = "" diff --git a/missing/vsnprintf.c b/missing/vsnprintf.c index 6afdfa189f..dd4f75cfd8 100644 --- a/missing/vsnprintf.c +++ b/missing/vsnprintf.c @@ -496,7 +496,7 @@ BSD_vfprintf(fp, fmt0, ap) /* * Choose PADSIZE to trade efficiency vs. size. If larger printf - * fields occur frequently, increase PADSIZE and make the initialisers + * fields occur frequently, increase PADSIZE and make the initializers * below longer. */ #define PADSIZE 16 /* pad chunk size */ diff --git a/object.c b/object.c index 813518676f..3b6b8385f2 100644 --- a/object.c +++ b/object.c @@ -1573,8 +1573,21 @@ rb_class_initialize(argc, argv, klass) * call-seq: * class.allocate() => obj * - * Allocates space for a new object of class's class. The - * returned object must be an instance of class. + * Allocates space for a new object of class's class and does not + * call initialize on the new instance. The returned object must be an + * instance of class. + * + * klass = Class.new do + * def initialize(*args) + * @initialized = true + * end + * + * def initialized? + * @initialized || false + * end + * end + * + * klass.allocate.initialized? #=> false * */ diff --git a/test/openssl/test_ssl.rb b/test/openssl/test_ssl.rb index 82caa26cff..29d3d19edc 100644 --- a/test/openssl/test_ssl.rb +++ b/test/openssl/test_ssl.rb @@ -499,7 +499,12 @@ class OpenSSL::TestSSL < Test::Unit::TestCase start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true, :ctx_proc => ctx_proc, :server_proc => server_proc) do |server, port| 10.times do |i| sock = TCPSocket.new("127.0.0.1", port) - ssl = OpenSSL::SSL::SSLSocket.new(sock) + ctx = OpenSSL::SSL::SSLContext.new + if defined?(OpenSSL::SSL::OP_NO_TICKET) + # disable RFC4507 support + ctx.options = OpenSSL::SSL::OP_NO_TICKET + end + ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx) ssl.sync_close = true ssl.session = first_session if first_session ssl.connect diff --git a/version.h b/version.h index 015891dc0f..279cd8c558 100644 --- a/version.h +++ b/version.h @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2008-06-06" #define RUBY_VERSION_CODE 187 #define RUBY_RELEASE_CODE 20080606 -#define RUBY_PATCHLEVEL 5 +#define RUBY_PATCHLEVEL 6 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 diff --git a/win32/win32.h b/win32/win32.h index abac2b1e3d..4d97ee4d5c 100644 --- a/win32/win32.h +++ b/win32/win32.h @@ -25,6 +25,7 @@ #endif #ifdef USE_WINSOCK2 #include +#include #include #else #include -- cgit v1.2.3