Class UnixDomainSocketConnector

java.lang.Object
org.eclipse.jgit.transport.sshd.agent.AbstractConnector
org.eclipse.jgit.internal.transport.sshd.agent.connector.UnixDomainSocketConnector
All Implemented Interfaces:
Closeable, AutoCloseable, Connector

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

  • Constructor Details

    • UnixDomainSocketConnector

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

    • getLibrary

      private static UnixSockets getLibrary()
    • connect

      public boolean connect() throws 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:
      IOException - if connecting to the SSH agent failed
    • close

      public void close() throws IOException
      Throws:
      IOException
    • rpc

      public byte[] rpc(byte command, byte[] message) throws 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:
      IOException - if an error occurs
    • writeFully

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

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

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