[macruby-changes] [5109] MacRuby/trunk/ext/socket/socket.c

source_changes at macosforge.org source_changes at macosforge.org
Mon Jan 3 15:56:17 PST 2011


Revision: 5109
          http://trac.macosforge.org/projects/ruby/changeset/5109
Author:   watson1978 at gmail.com
Date:     2011-01-03 15:56:10 -0800 (Mon, 03 Jan 2011)
Log Message:
-----------
Socket API's getservbyport should be passed the value of network byte order.

Test Script:
{{{
require 'socket'
require 'test/unit/assertions.rb'
include Test::Unit::Assertions

assert_equal("directplay", Socket.getservbyport(2234))
assert_equal("directplaysrvr", Socket.getservbyport(47624))

puts :ok
}}}

Modified Paths:
--------------
    MacRuby/trunk/ext/socket/socket.c

Modified: MacRuby/trunk/ext/socket/socket.c
===================================================================
--- MacRuby/trunk/ext/socket/socket.c	2011-01-03 23:14:14 UTC (rev 5108)
+++ MacRuby/trunk/ext/socket/socket.c	2011-01-03 23:56:10 UTC (rev 5109)
@@ -3252,7 +3252,7 @@
     if (NIL_P(proto)) proto = rb_str_new2("tcp");
     StringValue(proto);
 
-    sp = getservbyport(NUM2INT(port),  StringValueCStr(proto));
+    sp = getservbyport((int)htons((uint16_t)portnum),  StringValueCStr(proto));
     if (!sp) {
 	rb_raise(rb_eSocket, "no such service for port %ld/%s", NUM2LONG(port),
 		RSTRING_PTR(proto));
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20110103/3923c2db/attachment.html>


More information about the macruby-changes mailing list