Skip to content
Snippets Groups Projects
  1. Jul 15, 2020
    • Tatsuhiro Tsujikawa's avatar
      Use struct sockaddr · f18bb854
      Tatsuhiro Tsujikawa authored
      Pass struct sockaddr to ngtcp2 so that it knows how to deal with
      address change in more detailed manner (e.g., just compare IP address
      without port).
      f18bb854
  2. Mar 22, 2020
    • Tatsuhiro Tsujikawa's avatar
      Drop connection if the very first Initial packet is corrupted · 2ec42740
      Tatsuhiro Tsujikawa authored
      This commit adds special handling for the very first Initial packet
      which is corrupted and discarded.  If server receives such packet, it
      has to drop connection silently without sending any CONNECTION_CLOSE.
      Then valid packet might come later.  Keeping connection state is
      harmful because corrupted packet has wrong SCID, which drops later
      valid packet because mismatched SCID.  New error code
      NGTCP2_ERR_DROP_CONN is added which tells server application to drop
      connection silently.
      2ec42740
  3. Feb 03, 2020
  4. May 19, 2019
  5. Feb 03, 2019
  6. Jun 09, 2018
  7. Dec 19, 2017
  8. Sep 26, 2017
  9. Sep 13, 2017
    • nickfajones's avatar
      Add packet send error checking and retry · 3200cdc5
      nickfajones authored
      This patch represents phase 2 of the "Close all
      connections on exit" feature, as well as including
      a number of other benefits for both client and server:
      
      - Packet writing is now moved to a function: send_packet
        this function will sense a number of different errors
        on the sendto system call, and categorise these as
        either fatal or non fatal (able to be retried).
        Non fatal errors will most likely be caused by the
        kernel tx queue being full, which means the packet
        should be writable at a later time.
        This code is loosely based on similar code in the
        Berkeley Internet Name Daemon (BIND), which I
        assume would know how to send UDP packets.
      - Functions that write packets will observe the
        send_packet return value and if the network error is
        non fatal, the packet that was to be sent will be
        retained and writability on the socket file
        descriptor will be polled through the event reactor.
      - When writes are once again possible on the socket,
        the stored packets will be sent first, to preserve
        ordering at the send side, and only once this
        packet is sent will the core library be queried
        for more new transport level and application level
        packets, which themselves may need to be queued.
      3200cdc5
  10. Jun 25, 2017
  11. Jun 24, 2017
  12. Jun 19, 2017
  13. Jun 18, 2017
  14. Jun 16, 2017