You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/07/19 15:09:38 UTC
[commons-net] branch master updated: Use try-with-resources
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git
The following commit(s) were added to refs/heads/master by this push:
new bcd77d46 Use try-with-resources
bcd77d46 is described below
commit bcd77d46e5da200473b99f923518bdbc3d3ea0e1
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jul 19 11:08:07 2023 -0400
Use try-with-resources
---
.../org/apache/commons/net/bsd/RCommandClient.java | 37 ++++++++++------------
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/src/main/java/org/apache/commons/net/bsd/RCommandClient.java b/src/main/java/org/apache/commons/net/bsd/RCommandClient.java
index d8a0cb41..a790f0b2 100644
--- a/src/main/java/org/apache/commons/net/bsd/RCommandClient.java
+++ b/src/main/java/org/apache/commons/net/bsd/RCommandClient.java
@@ -216,31 +216,15 @@ public class RCommandClient extends RExecClient {
// port number limitations.
@Override
InputStream createErrorStream() throws IOException {
- int localPort;
final Socket socket;
- ServerSocket server = null;
-
- for (localPort = MAX_CLIENT_PORT; localPort >= MIN_CLIENT_PORT; --localPort) {
- try {
- server = _serverSocketFactory_.createServerSocket(localPort, 1, getLocalAddress());
- break; // got a socket
- } catch (final SocketException e) {
- continue;
- }
- }
-
- if (server == null) {
- throw new BindException("All ports in use.");
+ try (ServerSocket server = createServer()) {
+ _output_.write(Integer.toString(server.getLocalPort()).getBytes(StandardCharsets.UTF_8));
+ _output_.write(NULL_CHAR);
+ _output_.flush();
+ socket = server.accept();
}
- _output_.write(Integer.toString(server.getLocalPort()).getBytes(StandardCharsets.UTF_8)); // $NON-NLS
- _output_.write(NULL_CHAR);
- _output_.flush();
-
- socket = server.accept();
- server.close();
-
if (isRemoteVerificationEnabled() && !verifyRemote(socket)) {
socket.close();
throw new IOException("Security violation: unexpected connection attempt by " + socket.getInetAddress().getHostAddress());
@@ -249,6 +233,17 @@ public class RCommandClient extends RExecClient {
return new SocketInputStream(socket, socket.getInputStream());
}
+ private ServerSocket createServer() throws IOException {
+ for (int localPort = MAX_CLIENT_PORT; localPort >= MIN_CLIENT_PORT; --localPort) {
+ try {
+ return _serverSocketFactory_.createServerSocket(localPort, 1, getLocalAddress());
+ } catch (final SocketException e) {
+ continue;
+ }
+ }
+ throw new BindException("All ports in use.");
+ }
+
/**
* Same as <code> rcommand(localUsername, remoteUsername, command, false); </code>
*