public static RubyArray unpack_sockaddr_in(ThreadContext context, IRubyObject addr) { final Ruby runtime = context.runtime; if (addr instanceof Addrinfo) { Addrinfo addrinfo = (Addrinfo)addr; if (((RubyBoolean)addrinfo.ip_p(context)).isFalse()) { throw runtime.newArgumentError("not an AF_INET/AF_INET6 sockaddr"); } return RubyArray.newArray(runtime, addrinfo.ip_port(context), addrinfo.ip_address(context)); } ByteList val = addr.convertToString().getByteList(); return unpack_sockaddr_in(context, val); }
public static InetSocketAddress addressFromArg(ThreadContext context, IRubyObject arg) { InetSocketAddress iaddr; if (arg instanceof Addrinfo) { Addrinfo addrinfo = (Addrinfo)arg; if (!addrinfo.ip_p(context).isTrue()) { throw context.runtime.newTypeError("not an INET or INET6 address: " + addrinfo); } iaddr = new InetSocketAddress(addrinfo.getInetAddress(), addrinfo.getPort()); } else { iaddr = addressFromSockaddr_in(context, arg); } return iaddr; }
public static RubyArray unpack_sockaddr_in(ThreadContext context, IRubyObject addr) { final Ruby runtime = context.runtime; if (addr instanceof Addrinfo) { Addrinfo addrinfo = (Addrinfo)addr; if (((RubyBoolean)addrinfo.ip_p(context)).isFalse()) { throw runtime.newArgumentError("not an AF_INET/AF_INET6 sockaddr"); } return RubyArray.newArray(runtime, addrinfo.ip_port(context), addrinfo.ip_address(context)); } ByteList val = addr.convertToString().getByteList(); return unpack_sockaddr_in(context, val); }
public static InetSocketAddress addressFromArg(ThreadContext context, IRubyObject arg) { InetSocketAddress iaddr; if (arg instanceof Addrinfo) { Addrinfo addrinfo = (Addrinfo)arg; if (!addrinfo.ip_p(context).isTrue()) { throw context.runtime.newTypeError("not an INET or INET6 address: " + addrinfo); } iaddr = new InetSocketAddress(addrinfo.getInetAddress(), addrinfo.getPort()); } else { iaddr = addressFromSockaddr_in(context, arg); } return iaddr; }
@JRubyMethod() public IRubyObject bind(ThreadContext context, IRubyObject addr, IRubyObject backlog) { final InetSocketAddress iaddr; if (addr instanceof Addrinfo) { Addrinfo addrInfo = (Addrinfo) addr; if (!addrInfo.ip_p(context).isTrue()) { throw context.runtime.newTypeError("not an INET or INET6 address: " + addrInfo); } iaddr = new InetSocketAddress(addrInfo.getInetAddress().getHostAddress(), addrInfo.getPort()); } else { iaddr = Sockaddr.addressFromSockaddr_in(context, addr); } doBind(context, getChannel(), iaddr, RubyFixnum.fix2int(backlog)); return RubyFixnum.zero(context.runtime); }
@JRubyMethod() public IRubyObject bind(ThreadContext context, IRubyObject addr, IRubyObject backlog) { final InetSocketAddress iaddr; if (addr instanceof Addrinfo) { Addrinfo addrInfo = (Addrinfo) addr; if (!addrInfo.ip_p(context).isTrue()) { throw context.runtime.newTypeError("not an INET or INET6 address: " + addrInfo); } iaddr = new InetSocketAddress(addrInfo.getInetAddress().getHostAddress(), addrInfo.getPort()); } else { iaddr = Sockaddr.addressFromSockaddr_in(context, addr); } doBind(context, getChannel(), iaddr, RubyFixnum.fix2int(backlog)); return RubyFixnum.zero(context.runtime); }