Skip to content

Closing wss connections might not work as expected #120

Closed

Description

@Davidiusdadi

Communication via wss in general works fine by now.

Unfortunately closing wss connections is implemented in a very basic way:

public void close() throws IOException {
        sslEngine.closeOutbound();
        sslEngine.getSession().invalidate();
        if( sc.isOpen() )
            sc.write( wrap( emptybuffer ) );
        sc.close();
    }

It is possible that sc.write will not send enough bytes ( i measured 37 bytes ) at once to complete the TLS close notify. Calling sc.write in a loop might block the current thread indefinitely so that is not an option.

As a result your peer host might complain about an unexpectedly closed connection after HE initiated the websocket close handshake.

It will take me a few days to implement the close handshaking the nonblocking way.

Please excuse my humble English.

Activity

  1. marci4 commented on May 28, 2017

    @marci4
    Collaborator

    Code changed with #488.

    Closing issue!
    Greetings
    marci4

  2. added this to the Release 1.3.4 milestone on May 28, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions