Class LinuxSocket


  • @UnstableApi
    public final class LinuxSocket
    extends Socket
    A socket which provides access Linux native methods.
    • Field Detail

      • INET6_ANY

        static final java.net.InetAddress INET6_ANY
      • INET_ANY

        private static final java.net.InetAddress INET_ANY
    • Constructor Detail

      • LinuxSocket

        LinuxSocket​(int fd)
    • Method Detail

      • setTimeToLive

        void setTimeToLive​(int ttl)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • setInterface

        void setInterface​(java.net.InetAddress address)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • setNetworkInterface

        void setNetworkInterface​(java.net.NetworkInterface netInterface)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • getInterface

        java.net.InetAddress getInterface()
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getNetworkInterface

        java.net.NetworkInterface getNetworkInterface()
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • inetAddress

        private static java.net.InetAddress inetAddress​(int value)
      • joinGroup

        void joinGroup​(java.net.InetAddress group,
                       java.net.NetworkInterface netInterface,
                       java.net.InetAddress source)
                throws java.io.IOException
        Throws:
        java.io.IOException
      • leaveGroup

        void leaveGroup​(java.net.InetAddress group,
                        java.net.NetworkInterface netInterface,
                        java.net.InetAddress source)
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • interfaceIndex

        private static int interfaceIndex​(java.net.NetworkInterface networkInterface)
      • interfaceIndex

        private static int interfaceIndex​(java.net.InetAddress address)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpDeferAccept

        void setTcpDeferAccept​(int deferAccept)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpQuickAck

        void setTcpQuickAck​(boolean quickAck)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpCork

        void setTcpCork​(boolean tcpCork)
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • setSoBusyPoll

        void setSoBusyPoll​(int loopMicros)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpNotSentLowAt

        void setTcpNotSentLowAt​(long tcpNotSentLowAt)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpFastOpen

        void setTcpFastOpen​(int tcpFastopenBacklog)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpKeepIdle

        void setTcpKeepIdle​(int seconds)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpKeepIntvl

        void setTcpKeepIntvl​(int seconds)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpKeepCnt

        void setTcpKeepCnt​(int probes)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpUserTimeout

        void setTcpUserTimeout​(int milliseconds)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • setIpFreeBind

        void setIpFreeBind​(boolean enabled)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • setIpTransparent

        void setIpTransparent​(boolean enabled)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • setIpRecvOrigDestAddr

        void setIpRecvOrigDestAddr​(boolean enabled)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • getTimeToLive

        int getTimeToLive()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpInfo

        void getTcpInfo​(EpollTcpInfo info)
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpMd5Sig

        void setTcpMd5Sig​(java.net.InetAddress address,
                          byte[] key)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • isTcpCork

        boolean isTcpCork()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getSoBusyPoll

        int getSoBusyPoll()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpDeferAccept

        int getTcpDeferAccept()
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • isTcpQuickAck

        boolean isTcpQuickAck()
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpNotSentLowAt

        long getTcpNotSentLowAt()
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpKeepIdle

        int getTcpKeepIdle()
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpKeepIntvl

        int getTcpKeepIntvl()
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpKeepCnt

        int getTcpKeepCnt()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpUserTimeout

        int getTcpUserTimeout()
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • isIpFreeBind

        boolean isIpFreeBind()
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • isIpTransparent

        boolean isIpTransparent()
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • isIpRecvOrigDestAddr

        boolean isIpRecvOrigDestAddr()
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • getPeerCredentials

        PeerCredentials getPeerCredentials()
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • isLoopbackModeDisabled

        boolean isLoopbackModeDisabled()
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • setLoopbackModeDisabled

        void setLoopbackModeDisabled​(boolean loopbackModeDisabled)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • isUdpGro

        boolean isUdpGro()
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • setUdpGro

        void setUdpGro​(boolean gro)
                throws java.io.IOException
        Throws:
        java.io.IOException
      • sendFile

        long sendFile​(DefaultFileRegion src,
                      long baseOffset,
                      long offset,
                      long length)
               throws java.io.IOException
        Throws:
        java.io.IOException
      • bindVSock

        public void bindVSock​(VSockAddress address)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • connectVSock

        public boolean connectVSock​(VSockAddress address)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • remoteVSockAddress

        public VSockAddress remoteVSockAddress()
      • localVSockAddress

        public VSockAddress localVSockAddress()
      • getIntAt

        private static int getIntAt​(byte[] array,
                                    int startIndex)
      • deriveInetAddress

        private static java.net.InetAddress deriveInetAddress​(java.net.NetworkInterface netInterface,
                                                              boolean ipv6)
      • newSocket

        public static LinuxSocket newSocket​(int fd)
      • newVSockStream

        public static LinuxSocket newVSockStream()
      • newVSockStream0

        static int newVSockStream0()
      • newSocketStream

        public static LinuxSocket newSocketStream​(boolean ipv6)
      • newSocketStream

        public static LinuxSocket newSocketStream()
      • newSocketDgram

        public static LinuxSocket newSocketDgram​(boolean ipv6)
      • newSocketDgram

        public static LinuxSocket newSocketDgram()
      • newSocketDomain

        public static LinuxSocket newSocketDomain()
      • newSocketDomainDgram

        public static LinuxSocket newSocketDomainDgram()
      • unsafeInetAddrByName

        private static java.net.InetAddress unsafeInetAddrByName​(java.lang.String inetName)
      • newVSockStreamFd

        private static int newVSockStreamFd()
      • bindVSock

        private static int bindVSock​(int fd,
                                     int cid,
                                     int port)
      • connectVSock

        private static int connectVSock​(int fd,
                                        int cid,
                                        int port)
      • remoteVSockAddress

        private static byte[] remoteVSockAddress​(int fd)
      • localVSockAddress

        private static byte[] localVSockAddress​(int fd)
      • joinGroup

        private static void joinGroup​(int fd,
                                      boolean ipv6,
                                      byte[] group,
                                      byte[] interfaceAddress,
                                      int scopeId,
                                      int interfaceIndex)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • joinSsmGroup

        private static void joinSsmGroup​(int fd,
                                         boolean ipv6,
                                         byte[] group,
                                         byte[] interfaceAddress,
                                         int scopeId,
                                         int interfaceIndex,
                                         byte[] source)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • leaveGroup

        private static void leaveGroup​(int fd,
                                       boolean ipv6,
                                       byte[] group,
                                       byte[] interfaceAddress,
                                       int scopeId,
                                       int interfaceIndex)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • leaveSsmGroup

        private static void leaveSsmGroup​(int fd,
                                          boolean ipv6,
                                          byte[] group,
                                          byte[] interfaceAddress,
                                          int scopeId,
                                          int interfaceIndex,
                                          byte[] source)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • sendFile

        private static long sendFile​(int socketFd,
                                     DefaultFileRegion src,
                                     long baseOffset,
                                     long offset,
                                     long length)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpDeferAccept

        private static int getTcpDeferAccept​(int fd)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • isTcpQuickAck

        private static int isTcpQuickAck​(int fd)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • isTcpCork

        private static int isTcpCork​(int fd)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • getSoBusyPoll

        private static int getSoBusyPoll​(int fd)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpNotSentLowAt

        private static int getTcpNotSentLowAt​(int fd)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpKeepIdle

        private static int getTcpKeepIdle​(int fd)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpKeepIntvl

        private static int getTcpKeepIntvl​(int fd)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpKeepCnt

        private static int getTcpKeepCnt​(int fd)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpUserTimeout

        private static int getTcpUserTimeout​(int fd)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • getTimeToLive

        private static int getTimeToLive​(int fd)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • isIpFreeBind

        private static int isIpFreeBind​(int fd)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • isIpTransparent

        private static int isIpTransparent​(int fd)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • isIpRecvOrigDestAddr

        private static int isIpRecvOrigDestAddr​(int fd)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • getTcpInfo

        private static void getTcpInfo​(int fd,
                                       long[] array)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • getPeerCredentials

        private static PeerCredentials getPeerCredentials​(int fd)
                                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpDeferAccept

        private static void setTcpDeferAccept​(int fd,
                                              int deferAccept)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpQuickAck

        private static void setTcpQuickAck​(int fd,
                                           int quickAck)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpCork

        private static void setTcpCork​(int fd,
                                       int tcpCork)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • setSoBusyPoll

        private static void setSoBusyPoll​(int fd,
                                          int loopMicros)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpNotSentLowAt

        private static void setTcpNotSentLowAt​(int fd,
                                               int tcpNotSentLowAt)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpFastOpen

        private static void setTcpFastOpen​(int fd,
                                           int tcpFastopenBacklog)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpKeepIdle

        private static void setTcpKeepIdle​(int fd,
                                           int seconds)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpKeepIntvl

        private static void setTcpKeepIntvl​(int fd,
                                            int seconds)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpKeepCnt

        private static void setTcpKeepCnt​(int fd,
                                          int probes)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpUserTimeout

        private static void setTcpUserTimeout​(int fd,
                                              int milliseconds)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • setIpFreeBind

        private static void setIpFreeBind​(int fd,
                                          int freeBind)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • setIpTransparent

        private static void setIpTransparent​(int fd,
                                             int transparent)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • setIpRecvOrigDestAddr

        private static void setIpRecvOrigDestAddr​(int fd,
                                                  int transparent)
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • setTcpMd5Sig

        private static void setTcpMd5Sig​(int fd,
                                         boolean ipv6,
                                         byte[] address,
                                         int scopeId,
                                         byte[] key)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • setInterface

        private static void setInterface​(int fd,
                                         boolean ipv6,
                                         byte[] interfaceAddress,
                                         int scopeId,
                                         int networkInterfaceIndex)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getInterface

        private static int getInterface​(int fd,
                                        boolean ipv6)
      • getIpMulticastLoop

        private static int getIpMulticastLoop​(int fd,
                                              boolean ipv6)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • setIpMulticastLoop

        private static void setIpMulticastLoop​(int fd,
                                               boolean ipv6,
                                               int enabled)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • setTimeToLive

        private static void setTimeToLive​(int fd,
                                          int ttl)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • isUdpGro

        private static int isUdpGro​(int fd)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • setUdpGro

        private static void setUdpGro​(int fd,
                                      int gro)
                               throws java.io.IOException
        Throws:
        java.io.IOException