@Override public SshAgentServer createServer(ConnectionService service) throws IOException { Session session = Objects.requireNonNull(service.getSession(), "No session"); ValidateUtils.checkInstanceOf(session, ServerSession.class, "The session used to create an agent server proxy must be a server session: %s", session); return new AgentServerProxy(service, newExecutor()); } }
protected File removeSocketFile(String socketPath, boolean debugEnabled) throws Exception { File socketFile = new File(socketPath); if (socketFile.exists()) { deleteFile(socketFile, "Deleted PIPE socket {}", debugEnabled); if (OsUtils.isUNIX()) { deleteFile(socketFile.getParentFile(), "Deleted parent PIPE socket {}", debugEnabled); } } return socketFile; }
if (!innerFinished.get()) { try { signalEOS(AprLibrary.getInstance(), debugEnabled); } catch (Exception e) { removeSocketFile(authSocket, debugEnabled); CloseableExecutorService executor = getExecutorService(); if ((executor != null) && (!executor.isShutdown())) { Collection<?> runners = executor.shutdownNow();
throw toIOException(result); throw toIOException(result); boolean debugEnabled = log.isDebugEnabled(); boolean traceEnabled = log.isTraceEnabled(); while (isOpen()) { try { long clientSock = Local.accept(handle); if (!isOpen()) { break; if (debugEnabled) { log.debug("run(open={}) {} while authentication forwarding: {}", isOpen(), e.getClass().getSimpleName(), e.getMessage()); log.trace("run(open=" + isOpen() + ") authentication forwarding failure details", e);
@Override public void run() { try { byte[] buf = new byte[1024]; OutputStream invIn = getInvertedIn(); while (true) { int result = Socket.recv(socket, buf, 0, buf.length); if (result == -Status.APR_EOF) { break; } else if (result < Status.APR_SUCCESS) { throw AgentServerProxy.toIOException(result); } invIn.write(buf, 0, result); invIn.flush(); } } catch (Exception e) { log.warn("Processing loop exception", e); } finally { close(false); } }
if (!innerFinished.get()) { try { signalEOS(AprLibrary.getInstance(), debugEnabled); } catch (Exception e) { removeSocketFile(authSocket, debugEnabled); CloseableExecutorService executor = getExecutorService(); if ((executor != null) && (!executor.isShutdown())) { Collection<?> runners = executor.shutdownNow();
throw toIOException(result); throw toIOException(result); boolean debugEnabled = log.isDebugEnabled(); boolean traceEnabled = log.isTraceEnabled(); while (isOpen()) { try { long clientSock = Local.accept(handle); if (!isOpen()) { break; if (debugEnabled) { log.debug("run(open={}) {} while authentication forwarding: {}", isOpen(), e.getClass().getSimpleName(), e.getMessage()); log.trace("run(open=" + isOpen() + ") authentication forwarding failure details", e);
@Override public void run() { try { byte[] buf = new byte[1024]; OutputStream invIn = getInvertedIn(); while (true) { int result = Socket.recv(socket, buf, 0, buf.length); if (result == -Status.APR_EOF) { break; } else if (result < Status.APR_SUCCESS) { throw AgentServerProxy.toIOException(result); } invIn.write(buf, 0, result); invIn.flush(); } } catch (Exception e) { log.warn("Processing loop exception", e); } finally { close(false); } }
@Override protected synchronized void doWriteData(byte[] data, int off, long len) throws IOException { ValidateUtils.checkTrue(len <= Integer.MAX_VALUE, "Data length exceeds int boundaries: %d", len); Window wLocal = getLocalWindow(); wLocal.consumeAndCheck(len); int result = Socket.send(socket, data, off, (int) len); if (result < Status.APR_SUCCESS) { throw AgentServerProxy.toIOException(result); } } }
@Override public SshAgentServer createServer(ConnectionService service) throws IOException { Session session = Objects.requireNonNull(service.getSession(), "No session"); ValidateUtils.checkInstanceOf(session, ServerSession.class, "The session used to create an agent server proxy must be a server session: %s", session); return new AgentServerProxy(service, newExecutor()); } }
protected File removeSocketFile(String socketPath, boolean debugEnabled) throws Exception { File socketFile = new File(socketPath); if (socketFile.exists()) { deleteFile(socketFile, "Deleted PIPE socket {}", debugEnabled); if (OsUtils.isUNIX()) { deleteFile(socketFile.getParentFile(), "Deleted parent PIPE socket {}", debugEnabled); } } return socketFile; }
@Override protected synchronized void doWriteData(byte[] data, int off, long len) throws IOException { ValidateUtils.checkTrue(len <= Integer.MAX_VALUE, "Data length exceeds int boundaries: %d", len); Window wLocal = getLocalWindow(); wLocal.consumeAndCheck(len); int result = Socket.send(socket, data, off, (int) len); if (result < Status.APR_SUCCESS) { throw AgentServerProxy.toIOException(result); } } }