Class UnixDomainSocketConnector

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, Connector

    public class UnixDomainSocketConnector
    extends AbstractConnector
    JNA-based implementation of communication through a Unix domain socket.
    • Constructor Detail

      • UnixDomainSocketConnector

        public UnixDomainSocketConnector​(java.lang.String socketFile)
        Creates a new instance.
        Parameters:
        socketFile - to use; if null or empty, use environment variable SSH_AUTH_SOCK
    • Method Detail

      • connect

        public boolean connect()
                        throws java.io.IOException
        Description copied from interface: Connector
        Connects to an SSH agent if there is one running. If called when already connected just returns true.
        Returns:
        true if an SSH agent is available and connected, if no SSH agent is available
        Throws:
        java.io.IOException - if connecting to the SSH agent failed
      • close

        public void close()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • rpc

        public byte[] rpc​(byte command,
                          byte[] message)
                   throws java.io.IOException
        Description copied from interface: Connector
        Performs a remote call to the SSH agent and returns the result.
        Parameters:
        command - to send
        message - to send; must have at least 5 bytes, and must have 5 unused bytes at the front.
        Returns:
        the result received
        Throws:
        java.io.IOException - if an error occurs
      • writeFully

        private void writeFully​(int fd,
                                byte[] message)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • readFully

        private void readFully​(int fd,
                               byte[] data)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • read

        private int read​(int fd,
                         byte[] buffer,
                         int offset,
                         int length)
                  throws java.io.IOException
        Throws:
        java.io.IOException