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();
    }
  }
Example #2
0
  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());
  }