The UPnP stack now opens and closes ports with an
asynchronous mechanic and with callbacks.
Every time a mapping request (open or close) is sent,
a callback is registered and managed by the context.
When the corresponding protocol executes the request and
gets an answer, the right callback is found and dispatched
to its controller. A timeout of 1 second is implemented
on each request.
Controllers can now be tracked with a unique Id (a string
that represents its location in memory).
The IGD class now tracks its current active ports and
manages the number of users for each port.
The PMPIGD class now operates using a queue of mapping
requests. Whenever a request is made to the natpmp protocol,
it saves the request to its corresponding list (mapToAdd,
mapToRemove or mapToRenew in the PMPIGD class) and notifies
the main natpmp thread. The thread then checks if there
is any pending map requests in the PMPIGD queue and treats
them accordingly.
Add Nat-Pmp support for windows.
Fixed bug where nat-pmp wouldn't find an IGD on a new interface
after a connectivity change. The problem stems from the fact
that, for one, the nat-pmp handle didn't get cleared internally
once a connectivity change occured. This would cause the nat-
pmp library to try and send searches on a socket that was
bound on the old gateway. Secondly, if you don't wait for a
little period of time, the natpmp library would discover the
old IGD on the old interface before the connectivity change
modifications were completed. Now we restart the nat-pmp
process one second after the connectivity change triggers.
Change-Id: I39a9b57e237deaa65eef4464a1838eaa3c5bbb03
If two daemons are necessary, "DBUS_SESSION_BUS_ADDRESS=xxx ./dring"
is enough. Or use another session.
Change-Id: I8e8b5db50cf2b372b44e4ae643ee3a6643ca5142
- For OVH sip trunk, if too many registeration requests are sent
at the same time, it will send back a 500 status code to prevent
us sending registeration request in certain time period.
- That means at the starting of the programme, the account is not
registered, which is the cause of the issue #643
Change-Id: I89dd7331704c6abdf1021c3e3cecd2b55516c4d1
- Video settings, and APIs will now use a device id, which will be
a path on platforms where everything is a file, and a DevicePath
with a bonus ffmpeg-dshow compliant prefix on Windows.
- The device's friendly name is uniquified, and stored in the
settings still, but only retrieved/translated for UI.
- MRLs are now constructed with the device id.
Change-Id: I092f08cc2cd31bd78aeec5c774c2cc33d75c1d4e
- Fixes wstring conversion issue when obtaining video capture device
friendly name, and uses device id when adding/removing devices using
the usb-pnp monitoring APIs. As the uid suffix reported by the pnp
api is different from what returns from the device enumerator, we
strip the uid and make substring searches for device nodes instead
of exact matches.
Change-Id: Ibe3d79ed0632c663c2b067772ca592d5c5d466e6
Gitlab: #171