1. 30 Jul, 2018 1 commit
  2. 10 Apr, 2018 1 commit
    • Sébastien Blin's avatar
      datatransfer: avoid mismatch family errors using RFC 6156 · 1302c1d9
      Sébastien Blin authored
      RFC 6156 propose to use REQUESTED-ADDRESS-FAMILY to be able to
      communicate beetween a IPv6 network and a IPv4 network. Because
      this parameter is negociated during the allocation we should use
      two control channels to be able to communicate with all address
      families.
      
      Change-Id: Ie1659b20c4c7170697e4ad2949a519b0e87e35ae
      1302c1d9
  3. 16 Mar, 2018 1 commit
  4. 02 Mar, 2018 1 commit
  5. 30 Jan, 2018 1 commit
  6. 23 Jan, 2018 1 commit
  7. 10 Jan, 2018 1 commit
    • Guillaume Roguez's avatar
      data transfer: fix data transfer destruction · 73dea6d8
      Guillaume Roguez authored
      fix crash occuring during data transfer destruction due to nullptr access
      when the turn transport is destroyed.
      
      list of changes:
      * fix Turn/PJSIP callbacks registration (was a NPA due to unique_ptr dtor implementation)
      * add a shutdown method to GenericSocket.
      * implement shutdown into TlsSession and TurnTransport.
      * use shutdown to unlock PeerConnection blocked into a read.
      * do not call blocking methods that raises CtrlMsg into the eventloop.
      * destroy clients/servers before turn socket .
      * fix Turn pool cache destruction causing bad mem free.
      
      Change-Id: I9995ce9419e8af965def9328a5de4a8973a4334f
      Reviewed-by: default avatarAnthony Léonard <anthony.leonard@savoirfairelinux.com>
      73dea6d8
  8. 03 Jan, 2018 1 commit
    • Guillaume Roguez's avatar
      make TlsSession great again · bdafdfb4
      Guillaume Roguez authored
      Or at least independant of underlaying transport...
      
      To make TlsSession able to handle both TLS and DTLS
      this patch removes the ICE dependency and replace is
      by the generic network ABC class 'GenericTransport'.
      As a first step this class is declared in tls_session.h.
      Side effects of this change are:
      
      * refactoring of PMTUD procedure: 'MTU' for gnutls has the meaning
        on 'payload-for-gnutls' so this information is now drived by
        the generic transport and not hardcoded anymore.
        The minimal value of probing remains hardcoded, as is a minimum
        given by RFC's documentation and it's based on an IPv4 packet
        associated with UDP protocol.
      
      * getMtu() is now maxPayload() and represent correctly what
        the application must have.
      
      * TlsSession implements itself GenericTransport: we can chain
        GenericTransport instances to construct an overlayed transport
        protocol.
      
      * TlsSession is now considered as non thread-safe for its public API.
        Caller must bring itself this property.
        This permit to remove a redundant mutex in send() operation.
        Note: and it's the case in the only user (SipsIceTransport),
        that why the mutex is redundant in 100% of cases.
      
      Notice the benefit of this genericity refactoring let us
      write a unit-test for this TlsSession class without having
      an heavy ICE transport to mock-up.
      
      Also ICE transport gained of this by adding a new IceSocketTransport
      to replace IceSocket in a near future (need async IO in GenericSocket,
      but not required for the moment).
      
      Change-Id: I6f4591ed6c76fa9cb5519c6e9296f8fc3a6798aa
      Reviewed-by: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>
      bdafdfb4
  9. 21 Nov, 2017 1 commit
    • Guillaume Roguez's avatar
      TurnTransport: better IO api and fixes · bbfcd574
      Guillaume Roguez authored
      * API additions:
        - peerAddresses
        - readlinefrom
        - writelineto
      * API changes:
        - recvfrom: char*/length version
        - sendto: per-peer call, not longer a map
      * Add more API documentation
      * Max TURN buffer size changed to 4096 bytes
      * Better IO buffer management with peers
      * Fix auth data (was temporary buffer pushing garbage values to server)
      * Turn tests modified for API changes
      
      Change-Id: I0bffe114301e8cb1e2f2e37d7a0eb5ba67f38c61
      Reviewed-by: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>
      bbfcd574
  10. 20 Nov, 2017 1 commit
  11. 04 Oct, 2017 1 commit
    • Guillaume Roguez's avatar
      add pjnath TurnTransport class · f1819432
      Guillaume Roguez authored
      TurnTransport class is a C++ wrapper on PJNATH turn socket API.
      Bring an easy to use socket connected to a TURN server.
      Support TCP (even with peer) and UDP connection types.
      
      Requires rfc6062 support into pjproject 2.6, given by patch:
      88c820ee / contrib: implement rfc6062 in pjnath
      
      Include fonctional tests working with turn.ring.cx.
      Run tests as usual with "make check" command.
      
      Change-Id: Idf14c2ea192cab2fccf99b142492086284920a6b
      Reviewed-by: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>
      f1819432