Adrien Béraud
7e4478123f
proxy client: use time_point::max() on persistent put
2018-04-21 12:22:00 -04:00
Adrien Béraud
1a2d783c2a
op cache: keep listeners alive for some time after cancel
2018-04-20 11:35:45 -04:00
Adrien Béraud
e140116fed
proxy client: close old socket when restarting listeners
2018-04-19 11:31:08 -04:00
Adrien Béraud
7b3ce69b62
proxy client: send remote token on cancel
2018-04-16 15:04:57 -04:00
Adrien Béraud
ab0f4f6f17
proxy client: refresh now in case of refresh notification
2018-04-13 11:14:40 -04:00
Adrien Béraud
e3114cd5b9
proxy client: catch name resolving exception
2018-04-13 11:09:34 -04:00
Adrien Béraud
e088cd10be
proxy server: keep only one push listener per token.key.clientId
2018-04-10 16:01:14 -04:00
Adrien Béraud
7b88a2122a
proxy: always use string tokens
2018-04-10 12:48:19 -04:00
Adrien Béraud
4884306135
proxy client: restart listeners on reconnect
...
* track IPv4, IPv6 connectivity seperately
* properly restart listeners when connected
* get proxy info in parallel for multiple AF
2018-04-08 19:54:43 -04:00
Adrien Béraud
fd11a4b3e4
proxy client: prevent callback during cancelAllListeners
2018-04-08 19:54:00 -04:00
Adrien Béraud
b3c637536f
proxy client: prevent use-after-free after destruction
2018-04-08 19:54:00 -04:00
Adrien Béraud
1debe012c1
proxy client: restart listeners on connectivity change
2018-04-08 19:54:00 -04:00
Adrien Béraud
368a842d2e
proxy client: don't block resolving address
2018-04-08 19:53:59 -04:00
Adrien Béraud
d250e9b630
proxy client: avoid sending listen with push notifications
2018-04-08 19:53:59 -04:00
Adrien Béraud
3ff6863287
proxy client: add logs
2018-04-08 19:53:59 -04:00
Adrien Béraud
567fa1c703
proxy client: retrieve search from callback
2018-04-06 11:43:51 -04:00
Adrien Béraud
1acace1b91
proxy client: add missing mutex, cleanup
2018-04-05 02:35:01 -04:00
Sébastien Blin
5b71af3cec
proxy: remove useless callback_id
...
callback_id was used for token problems which are not present anymore.
Now token is sufficient and we can remove callback_id.
2018-04-03 10:43:56 -04:00
Sébastien Blin
393a403ff2
proxy_client: fix address split
2018-03-29 11:00:33 -04:00
Adrien Béraud
62e4655d4f
Merge pull request #264 from AmarOk1412/fixPublicAddr
...
dht_proxy_client: fix getPublicAdresss parsing
2018-03-28 16:44:34 -04:00
Sébastien Blin
60d43319e2
dht_proxy_client: fix getPublicAdresss
...
Retrieve all public ips (Ipv6 + v4). Has to resolve all proxy
address (so two get requests to get all ips)
2018-03-28 15:59:04 -04:00
Adrien Béraud
0edee443f5
cache: improve value expiration handling
2018-03-28 09:54:04 -04:00
Adrien Béraud
647de16f1c
proxy client: implement getLocal(), getLocalById()
2018-03-16 13:34:41 -04:00
Adrien Béraud
2f4acd26d6
dhtinterface: add listen() callback to signal expired values
2018-03-16 13:34:41 -04:00
Adrien Béraud
48bb804792
proxy client: add cache for values and operations
2018-03-16 13:34:40 -04:00
Sébastien Blin
2315dc089a
proxy_client: avoid to call getConnectivityStatus() when destroying
...
Because getConnectivityStatus is called each time an operation fails,
when destroying the proxy_client, we stop all operations so it fails.
2018-03-14 11:33:01 -04:00
Sébastien Blin
547fa2eff5
dht_proxy_client: fix getCallback for push notifications
...
Note: Also fix Value deserialization
2018-03-05 19:15:04 -05:00
Sébastien Blin
6f4283b7d5
proxyclient: avoid useless opFailed when correctly cancel a listen
2018-03-01 16:11:49 -05:00
Sébastien Blin
22ef53acef
dhtproxy: fix cancelListen with pushNotifications
...
Fill the body of the UNSUBSCRIBE method and fix dhtnode application
2018-02-26 15:25:48 -05:00
Sébastien Blin
63c9c607bd
pushnotifications: fix build without push notifications, improve travis script
2018-02-26 13:27:06 -05:00
Adrien Béraud
636eb1972d
proxy client: improve robustness, switch behavior
2018-01-18 16:36:13 -05:00
Adrien Béraud
27a250d2c0
proxyclient: fall to disconnected in case of connectivity failure
2018-01-17 12:09:39 -05:00
Adrien Béraud
0420ebcce3
dhtinterface: pass listen filters by value
2018-01-17 11:40:18 -05:00
Adrien Béraud
15e3696b88
proxy client: fix build when push notifications are disabled
2018-01-13 16:16:19 -05:00
Adrien Béraud
ca693a6ac1
pushNotificationReceived: take a map<string, string>
...
JSON is used for the DHT proxy protocol and to communicate with gorush.
Push notifications services might use any format, not necessarily JSON.
Push values are received as a map<string, string>, so receive them in
that format.
2018-01-12 13:20:07 -05:00
Adrien Béraud
ef82a7ecba
proxy client: make proxy status check asynchronous
2018-01-11 14:24:59 -05:00
Adrien Béraud
a0d8f4734a
dhtproxy: allow token refresh, set clientID ( #6 )
...
* add method to set the push token independently from other configuration,
since the push token can be updated during runtime.
* allow to provide a "clientID" to be sent in push notifications,
used to demultiplex push notifications to multiple OpenDHT nodes running
on the same host. For instance Ring uses the accountID as the clientID
to know which account received the push notification.
* use {"platform":"android"/"ios"} to communicate the platform instead of {"isAndroid":true/false}.
2018-01-10 16:32:57 -05:00
Sébastien Blin
37a9a3d9da
dhtproxy: inject push notifications in opendht
...
+ add the ability to inject push notifications in opendht to call
correct callbacks
+ if a timeout occurs and no cancelListen was called, relaunch the
listen operation
+ Pass devicekey to enable push notifications for DhtProxyClient
+ Update sockaddr to fix the build on all platforms
Note: update dhtnode
2017-12-12 15:03:02 -06:00
AmarOk
d19ba2cb41
proxyserver: add lock_guard to avoid to manually unlock
2017-12-06 14:43:28 -06:00
AmarOk
557323deff
refactor: use new jsoncpp API
...
Use the latest jsoncpp API to remove depreciation warning.
2017-12-06 08:49:24 -06:00
Adrien Béraud
aaa577d9e3
proxy_client: use atomic bool for shared state flags ( #3 )
2017-12-05 09:50:38 -06:00
Adrien Béraud
8243bc4c3f
proxy_client: don't block for callback
...
Use shared flags to avoid blocking for the callback
while respecting the callback return value.
2017-12-05 15:51:39 +01:00
AmarOk
b1a9742889
dhtproxyclient: add lock_guards for mutex and clean code
2017-12-04 09:42:37 -06:00
Sébastien Blin
e7d8bc4275
proxyclient: erase finished operation threads
2017-11-29 14:44:02 -05:00
Sébastien Blin
eb750f5b7f
proxy_client: execute callbacks in main thread
2017-11-27 17:51:33 -05:00
Sébastien Blin
5967c89c23
proxy: don't reinit dhtproxy multiple times and forward encrypted messages
...
+ Having a null dht_proxy_client can lead to using nullptr.
+ securedht should forward messages if we are using a proxy.
+ Protect callback segfault
2017-11-22 16:09:45 -05:00
Sébastien Blin
4a83b36dcf
tools: add the ability to use a proxy for dhtchat
2017-11-21 13:37:18 -05:00
Sébastien Blin
eb1f9d64e1
dhtproxyclient: add listen ability.
...
+ Fix LISTEN endpoint for DhtProxyServer
= DhtProxyServer use multiple worker threads
+ Add listen/cancelListen for DhtProxyClient
+ Add connectivityChanged.
2017-11-20 16:01:44 -05:00
Sébastien Blin
cb72c104fd
proxy: implement basic DhtProxyClient with the ability to get and put.
...
+ Add an abstract class to describe the Dht
+ Now, we can modify the Dht linked to a SecureDht. So we can choose
between the classic Dht and the Dht using a proxy.
+ Implement a basic client which can Get and Put values on the Dht using
the proxy.
Note: Update dhtnode to have the ability to use the DhtProxyClient.
Todo: Implement Listen, ping, connectivityChanged for the client.
2017-11-20 15:45:29 -05:00