1. 20 Aug, 2019 2 commits
  2. 12 Aug, 2019 1 commit
  3. 11 Aug, 2019 3 commits
  4. 10 Aug, 2019 1 commit
    • Adrien Béraud's avatar
      upnp: download xml doc using std::future · eb7bde60
      Adrien Béraud authored
      The UpnpDownloadXmlDoc is now called using shared_future. The api
      function is a blocking call and there were instances where,
      depending on the router and wifi speeds, the function might fail
      or hang. By using std::shared_future, if such a thing arises, the
      program won't block.
      
      Change-Id: Ibca8d926e8980ebd4519f0e6bbd6ce2125396159
      eb7bde60
  5. 06 Aug, 2019 1 commit
    • Eden Abitbol's avatar
      natpmp: activate natpmp thread · 3ee3e77b
      Eden Abitbol authored
      Enable the natpmp thread by setting the pmpRun_ variable to true.
      
      Removed extra mutex lock in UPnPContext class. Removed swap IGD
      protocol feature.
      
      Change-Id: I0490b38a5b2094c2751ddc6de8ac7f1e064e8644
      3ee3e77b
  6. 04 Aug, 2019 1 commit
  7. 02 Aug, 2019 1 commit
    • Eden Abitbol's avatar
      upnp: support libupnp and libnatnatpmp simultaneously · 60515d89
      Eden Abitbol authored
      Update libupnp to version 1.8.4.
      
      For windows, the IPV6 preprocessor must be undefined. Or else
      libupnp won't initialize. Added visual studio 2017 support
      via one patch for windows that also combines previous windows
      patches.
      
      UPnPController: Class that the jami classes use to control the
      opening and closing of ports. Every  service has it's own upnp
      controller. The controller does it's actions by using the upnp
      context class. Also refactored the functions used to add
      mappings. Instead of using two different functions with
      different types of parameters, we now use one function with
      parameters that have default values. The logic stays the same
      but the function call is more clear.
      
      UPnPContext: Class that holds a (linked) list of discovered IGDs
      and their corresponding protocols (which discovered them).
      Whenever the controller wants to add or remove a mapping, the
      context picks a valid IGD in it's list and uses the correct
      protocol to complete the required action. This class also has
      the ability to swap protocols for an IGD that was discovered
      by more then one protocol.
      
      UPnPProtocol: Virtual base class that defines the functions
      needed by the context to use the corresponding protocol.
      
      PUPnP: UPnPProtocol derived class that represents a upnp client
      that uses the portable upnp library (libupnp). Every time the
      client discovers a new IGD it uses a callback to add it to the
      context's main IGD linked list. It also has an internal list of
      IGDs that it discovered. Added features to this class include:
      	- IGD event subscription.
      	- Use UpnpInit2 function instead of deprecated UpnpInit
      	  function. It's also supposed to support IPv6.
      
      NatPmp: UPnPProtocol derived class that represents a upnp client
      that uses the NAT-PMP library (libnatpmp). Unlike libupnp,
      libnatpmp only supports discovering one IGD. Also uses callbacks
      to add the IGD it finds to the context's main IGD class.
      
      Also inclided debug warning prints whenever a controller opens
      and closes the ports. That way we can keep track of whenever
      the application opens and closes ports on the internet
      gateway device.
      
      Gitlab: #96
      
      Change-Id: I199271edac2c6d93dc60c24e2e2aefe36de7950c
      60515d89
  8. 31 May, 2019 1 commit
  9. 30 May, 2019 1 commit
    • Eden Abitbol's avatar
      upnp: Port mappings are not deleted upon IGD discovery anymore. · 852bd075
      Eden Abitbol authored
      Part of the discovery event handling for libupnp was to delete
      all port mappings associated with the local ip address of the
      application. I can only assume this was done to close pre-
      existing ports that were not properly closed when the application
      terminated. The problem with this logic is that since
      advertisements and discovery events are treated with the same
      switch case (fall through), the application was trying to close
      all the ports on the internet gateway everytime it got an
      advertisement. However, the application would then try to reopen
      the ports every time after closing them. And this would happen
      every five to ten seconds (i.e. whenever the application would
      catch and advertisement or discovery event from the internet
      gateway.)
      
      To fix this quickly, I modified the way the event handling treats
      discovery and advertisement events. Instead of having a list based
      on the URL of the internet gateway, I use a list of it's unique
      service ID. That way, as soon as the event occurs, we check if
      we don't already have this service ID in our list. If we don't,
      then we proceed as usual. If we do, we exit the event handling
      since it's already been processed.
      
      The advertisement bye bye event has also been implemented. When
      this event occurs, the corresponding internet gateway devices are
      deleted from the lists.
      
      Gitlab: #96
      
      Change-Id: Idd8023eba319b431b3a9328ebe648e75d61b1dc8
      852bd075
  10. 24 May, 2019 1 commit
  11. 29 Apr, 2019 1 commit
    • Sébastien Blin's avatar
      upnp: add TCP port mapping · ecf198bf
      Sébastien Blin authored
      P2P file transfer should support UPnP as a NAT traversal technique.
      
      Change-Id: I62f9990fd646c874f611d3dba7277bef54caeb46
      Gitlab: #86
      ecf198bf
  12. 02 Apr, 2019 1 commit
    • Adrien Béraud's avatar
      sources: rename to jami · 2130f067
      Adrien Béraud authored
      * rename namespace from ring to jami
      * rename logs methods from RING_* to JAMI_*
      * rename RING_VIDEO to ENABLE_VIDEO
      
      Change-Id: Ic98498652d7059fafe58a96220d565bcdfa53658
      2130f067
  13. 14 Mar, 2019 1 commit
  14. 02 Jan, 2019 1 commit
  15. 26 Jul, 2018 1 commit
  16. 13 Jun, 2018 1 commit
  17. 24 May, 2018 1 commit
  18. 23 Jan, 2018 1 commit
  19. 23 Mar, 2017 1 commit
    • Guillaume Roguez's avatar
      upnp: fix early crash by std::terminate · c4fc51a2
      Guillaume Roguez authored
      In NAP-PMP implementation, a std::thread member of
      UPnPContext class is placed before member used by the thread.
      This thread is run during the class initialization (ctor).
      So the thread can start and access to these members when
      they are not initialized.
      
      The consequence is a std::terminate() call causing the stop
      of daemon.
      
      Fix that by moving the thread member after *ALL* used members.
      Reviewed-by: Andreas Traczyk's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
      Change-Id: Ibb7334e653a9c80c566ffc3944c93a6ef64e0a8b
      c4fc51a2
  20. 28 Feb, 2017 1 commit
  21. 23 Jan, 2017 1 commit
  22. 05 Jan, 2017 1 commit
  23. 07 Nov, 2016 1 commit
  24. 15 Oct, 2016 1 commit
    • Adrien Béraud's avatar
      android: enable vp8, cleanup · e03b970d
      Adrien Béraud authored
      Fix and enable VPX on Android.
      Since the Android build moved to clang and libc++,
      it's no longer necessary to redefine some common
      standard C++ methods.
      
      Change-Id: I3488633782ded31bc260c5a234802ebd6f251377
      e03b970d
  25. 10 Aug, 2016 1 commit
  26. 08 Aug, 2016 1 commit
    • atraczyk's avatar
      daemon: avoid intrin.h conflict on Windows · c221eb0e
      atraczyk authored
      The Microsoft compiler will include the common header <intrin.h>
      regardless of the use of quotes. The file "intrin.h" should be renamed,
      and all references to it changed, as well as defining the UNUSED macro
      to nothing on the Windows platform.
      
      Change-Id: Id04d36e70d149746be8d78eed09aa963514b2810
      Tuleap: #801
      c221eb0e
  27. 04 Aug, 2016 1 commit
  28. 26 Jul, 2016 1 commit
  29. 25 Jul, 2016 1 commit
    • Adrien Béraud's avatar
      NAT-PMP: add initial support · 3165a70c
      Adrien Béraud authored
      * add optional dependency to libnatpmp
      * can run with or without UPnP
      * transparently replaces UPnP when available
      
      Change-Id: I1bbded421833cdc2506b42106e30cc8b3dde4c2d
      Tuleap: #805
      3165a70c
  30. 22 Jul, 2016 1 commit
    • Stepan Salenikovich's avatar
      add connectivityChanged API · 20f40205
      Stepan Salenikovich authored
      This allows the clients to notify the daemon when the conenctivity
      (ie: network status) has changed. The daemon will then try to detect
      the new IGD (UPnP) and re-connect all enabled accounts.
      
      Change-Id: I5c8fc57f75e48d86eda5d195b0586c61a26134ad
      Tuleap: #841
      20f40205
  31. 13 Jul, 2016 1 commit
    • Guillaume Roguez's avatar
      Revert "NAT-PMP: add initial support" · 1afa10bc
      Guillaume Roguez authored
      This reverts commit 150035a8.
      
      reasons of the revert:
      - doesn't link on Mac
      - doesn't build on IOS
      - build and link on linux, but the shared library is not found in rpath
      
      Change-Id: Ie2eb1fe587adea1b607fde727abe6c641762495b
      Notes: libnatpmp is not used on Android
      1afa10bc
  32. 11 Jul, 2016 1 commit
    • Adrien Béraud's avatar
      NAT-PMP: add initial support · 150035a8
      Adrien Béraud authored
      * add optional dependency to libnatpmp
      * can run with or without UPnP
      * transparently replaces UPnP when available
      
      Change-Id: I8477f3d91d8185f7872a3e00600daa7755ac0eee
      Tuleap: #805
      150035a8
  33. 07 Jul, 2016 1 commit
    • Stepan Salenikovich's avatar
      configure: remove --with-tls and --disable-dht · 3932c08d
      Stepan Salenikovich authored
      Ring no longer builds without GnuTLS and/or without openDHT, nor
      are we planning to support building Ring without them, so these
      should not exist as configuration options.
      
      The related preprocessor conditionals have also been removed.
      
      Change-Id: I8416ecc48f13a3fb77d9eb7d349b81f226e863f1
      Tuleap: #739
      3932c08d
  34. 10 May, 2016 1 commit
    • Guillaume Roguez's avatar
      mark all bool operator as explicit · 4933d789
      Guillaume Roguez authored
      This patch prevents unattended behaviour of == and != operator
      on instance of classes that user-overload bool operator.
      This is done by add explicit keyword to bool operator and
      explicitly define == and != operators where needed.
      
      Change-Id: Ic5c5d62c7b0231619539f0d046413ea8129ff515
      Tuleap: #674
      4933d789
  35. 22 Mar, 2016 1 commit
  36. 09 Mar, 2016 1 commit
  37. 04 Mar, 2016 1 commit
    • Stepan Salenikovich's avatar
      upnp: do not use IPv6 · aa119d78
      Stepan Salenikovich authored
      IPv6 is enabled in libupnp which ships with ubuntu 16.04, but the
      ipv6 init fails.
      
      Change-Id: I94a652b4b6270a4b50e237e103445df9c23f3abe
      Tuleap: #442
      aa119d78