protected IRubyObject getSocknameCommon(ThreadContext context, String caller) { try { InetSocketAddress sock = getSocketAddress(); if (null == sock) { return Sockaddr.pack_sockaddr_in(context, 0, "0.0.0.0"); } else { return Sockaddr.pack_sockaddr_in(context, sock); } } catch (BadDescriptorException e) { throw context.runtime.newErrnoEBADFError(); } }
public static IRubyObject pack_sockaddr_in( ThreadContext context, IRubyObject port, IRubyObject host) { int portNum = port instanceof RubyString ? Integer.parseInt(port.convertToString().toString()) : RubyNumeric.fix2int(port); return Sockaddr.pack_sockaddr_in( context, portNum, host.isNil() ? null : host.convertToString().toString()); }