Sébastien Blin
9421984a89
proxy: cancelPushListeners using clientId instead of token
...
All listeners uses a token equals to 0, we need to identify listeners
with client_id instead of a token.
2018-04-20 16:37:12 -04:00
Adrien Béraud
c10c4251b0
proxy server: print stats to stdout once in a while
2018-04-13 15:52:56 -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
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
20ab71aba6
securedht: check public key
2018-04-05 14:23:15 -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
Adrien Béraud
4261bd2c85
dhtinterface: remove resubscribe
2018-03-16 13:34:32 -04:00
Adrien Béraud
12db1f88dc
dht: introduce cache for values and operations
...
Multiplex multiple listen operations on a single key through
a unique listen operation on the network.
2018-03-16 13:34:32 -04:00
Adrien Béraud
1617c79e5d
network: add signaling for expired, refreshed values
2018-03-14 23:39:35 -04:00
Adrien Béraud
74bfced9b9
Merge pull request #255 from AmarOk1412/tests
...
tests: add unit tests structure to opendht
2018-03-14 23:00:30 -04:00
Sébastien Blin
1c10872ea2
tests: add unit tests structure to opendht
...
+ Unit testing requires cppunit.
+ add options for CMake and Autotools to build opendht_unit_tests.
+ add sample tests for InfoHash
+ modify Dockerfiles and Travis build to run `make test`
+ Change lowbit signature to return an int instead of an unsigned.
2018-03-14 15:26:47 -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
Adrien Béraud
b02f8e98c4
filter: add Value vector filter
2018-03-06 10:29:01 -05:00
Adrien Béraud
ca9a367803
value: add TypeStore
2018-03-06 10:29:01 -05:00
Sébastien Blin
6f4283b7d5
proxyclient: avoid useless opFailed when correctly cancel a listen
2018-03-01 16:11:49 -05:00
Adrien Béraud
c9cbced0c8
build: make indexation optional
2018-02-27 21:48: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
61ac297b1b
crypto: add method to read Certificate activation date
2018-02-09 00:42:25 +01:00
Adrien Béraud
e274ffd83b
headers: unify API across build options
2018-01-31 18:07:43 +01:00
Adrien Béraud
233301c3f3
dhtrunner: use proxy by default if configured
2018-01-23 12:19:38 -05:00
atraczyk
e5d83d47be
dhtrunner: don't pass SockAddrs by reference to startNetwork
2018-01-23 11:34:14 -05:00
Adrien Béraud
e6a2d96622
net: restart socket in case of sigpipe
2018-01-23 11:34:14 -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
02f4c81f2a
dhtrunner: improve proxy listen handling
2018-01-17 11:40:18 -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
6e9f2cda79
SockAddr: add isMappedIPv4, getMappedIPv4
2018-01-11 13:29:18 -05:00
Adrien Béraud
10b58c5ce7
SockAddr: add constructor from simple sockaddr*
2018-01-11 13:29:18 -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
Adrien Béraud
237859d8c3
Merge branch 'master' into push_notifications_client
2017-12-20 17:51:01 +01:00
AmarOk
4b46f6a821
dht_interface: fix logger issues
...
Make DHT_LOG static to use it in the whole library
2017-12-15 12:45:10 -06: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
Sébastien Blin
75cca66d7e
dhtproxy: support push notifications for mobile clients
...
+ Add SUBSCRIBE and UNSUBSCRIBE for DhtProxyServer
+ Add the ability to stop Listen via a timeout (and send a push
Notification for the client)
+ Add the ability to use gorush to send push notifications
Note: Update dhtnode
2017-12-12 10:24:54 -06:00
Adrien Béraud
762a1c7ad2
Merge pull request #220 from AmarOk1412/dhtproxyclient_merge
...
proxy: implement DhtProxyClient
2017-12-12 13:38:23 +01:00
AmarOk
d19ba2cb41
proxyserver: add lock_guard to avoid to manually unlock
2017-12-06 14:43:28 -06:00
AmarOk
29ffbf6aa7
dhtrunner: remove DhtRunner::getAddrInfo
...
Was replaced by SockAddr::resolve
2017-12-05 10:02:38 -06:00