duco-lw opened a new issue, #504:
URL: https://github.com/apache/mina-sshd/issues/504

   
https://github.com/apache/mina-sshd/blob/71b842f759f9879d7638bed175e5be006d9c0f46/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionHelper.java#L1149
   
   The `reason` is not passed through to the listener:
   ```
       protected void signalNegotiationEnd(
               SessionListener listener,
               Map<KexProposalOption, String> c2sOptions, 
Map<KexProposalOption, String> s2cOptions,
               Map<KexProposalOption, String> negotiatedGuess, Throwable 
reason) {
           if (listener == null) {
               return;
           }
   
           listener.sessionNegotiationEnd(this, c2sOptions, s2cOptions, 
negotiatedGuess, null);
       }
   ```
   The doc for this says the negotiation is successful if this is null:
   ```
       /**
        * Signals the end of the negotiation options handling
        *
        * @param session           The referenced {@link Session}
        * @param clientProposal    The client proposal options (un-modifiable)
        * @param serverProposal    The server proposal options (un-modifiable)
        * @param negotiatedOptions The successfully negotiated options so far - 
even if exception occurred (un-modifiable)
        * @param reason            Negotiation end reason - {@code null} if 
successful
        */
       default void sessionNegotiationEnd(
               Session session,
               Map<KexProposalOption, String> clientProposal,
               Map<KexProposalOption, String> serverProposal,
               Map<KexProposalOption, String> negotiatedOptions,
               Throwable reason) {
           // ignored
       }
   ```
   
https://github.com/apache/mina-sshd/blob/71b842f759f9879d7638bed175e5be006d9c0f46/sshd-core/src/main/java/org/apache/sshd/common/session/SessionListener.java#L151
   
   This looks like this will always be "successful", even in the error case?
   ```
           } catch (IOException | RuntimeException | Error e) {
               signalNegotiationEnd(c2sOptions, s2cOptions, negotiatedGuess, e);
               throw e;
           }
   ```
   
https://github.com/apache/mina-sshd/blob/71b842f759f9879d7638bed175e5be006d9c0f46/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java#L2259
   
   Would changing the line from
   ```
           listener.sessionNegotiationEnd(this, c2sOptions, s2cOptions, 
negotiatedGuess, null);
   ```
   to
   ```
           listener.sessionNegotiationEnd(this, c2sOptions, s2cOptions, 
negotiatedGuess, reason);
   ```
   break anything?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org

Reply via email to