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
Adrien Béraud
aaa577d9e3
proxy_client: use atomic bool for shared state flags ( #3 )
2017-12-05 09:50:38 -06:00
AmarOk
b1a9742889
dhtproxyclient: add lock_guards for mutex and clean code
2017-12-04 09:42:37 -06:00
Adrien Béraud
d2f91af946
node: use shared_ptr to manage Sockets
2017-12-02 16:03:27 +01:00
Sébastien Blin
e7d8bc4275
proxyclient: erase finished operation threads
2017-11-29 14:44:02 -05:00
atraczyk
6cdcd183b4
InfoHash: fix stream operator<< declaration
2017-11-29 11:08:39 -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
Adrien Béraud
5115fab9e6
dht: increase max searches limit
2017-11-16 16:49:59 +01:00
Adrien Béraud
747f86f8f4
dhtrunner: use SockAddr::resolve
2017-11-10 17:59:05 -05:00
Adrien Béraud
9948079c97
SockAddr: add resolve()
2017-11-10 17:48:36 -05:00
Adrien Béraud
b549055034
DhtRunner: use SockAddr
2017-11-08 15:12:43 -05:00
Adrien Béraud
4430b1e616
Merge pull request #217 from AmarOk1412/dhtproxy
...
Communicate with OpenDHT through a REST API
2017-11-08 14:35:31 -05:00
Sébastien Blin
e2c534df5a
add std::bind, fix put, avoid overflow on base64
2017-11-08 14:33:07 -05:00
Sébastien Blin
2ca2835c9b
add options method handler
2017-11-08 12:14:44 -05:00
Sébastien Blin
bbe922dd7d
remove headers, fix HTTP status, fix get /
2017-11-07 16:08:55 -05:00
Sébastien Blin
67ba435ba6
base64: take the old implementation from ring-daemon
2017-11-06 16:24:00 -05:00
Sébastien Blin
6413571301
clean code
2017-11-06 12:53:35 -05:00
Adrien Beraud
0dccae68e6
InfoHash: make false in case of parsing error
2017-11-03 16:03:11 -04:00
Adrien Beraud
92320cef59
InfoHash: throw in case of invalid input string
2017-11-03 14:03:34 -04:00
Adrien Beraud
bf4e838e20
InfoHash: return stream in operator>>
2017-11-03 14:00:49 -04:00
Adrien Beraud
e9eb97ea9a
InfoHash: improve hex parsing performance
2017-11-02 17:42:45 -04:00
Adrien Beraud
0e865976f9
InfoHash: unify with Hash<N>
2017-11-02 14:28:09 -04:00
Adrien Beraud
87dc080bbf
crypto: add raw hash function
2017-11-02 14:25:46 -04:00
Adrien Beraud
834d62e6e9
InfoHash: use bool operator where relevent
2017-11-01 16:28:17 -04:00
Sébastien Blin
8e43775394
update dhtnode + clean code
2017-11-01 14:52:29 -04:00
Sébastien Blin
8344138bc8
add optional + clean start/stop
2017-11-01 14:52:29 -04:00
Sébastien Blin
dc66b3847a
make code for DHT Proxy Server optionnal
2017-11-01 14:52:29 -04:00
Sébastien Blin
7ddd6629e3
add getFiltered
2017-11-01 14:52:29 -04:00
Sébastien Blin
20abc3e495
add LISTEN endpoint
2017-11-01 14:52:29 -04:00
Sébastien Blin
c4ba8670e4
add Putxxx value endpoints
2017-11-01 14:52:29 -04:00
Sébastien Blin
a3348c85d6
value to JSON and begin to clean endpoints
2017-11-01 14:52:29 -04:00
Sébastien Blin
1413d32ee6
add listen endpoint
2017-11-01 14:52:29 -04:00
Sébastien Blin
58fdfa9452
add get hash endpoint
2017-11-01 14:51:36 -04:00
Sébastien Blin
6f641073ae
proxy put and putEncrypted
2017-11-01 14:51:36 -04:00
Sébastien Blin
32153b11ab
proxy putSigned
2017-11-01 14:51:36 -04:00
Sébastien Blin
e33ac02351
test restbed
2017-11-01 14:51:36 -04:00
Adrien Beraud
dc99919338
InfoHash: add explicit operator bool()
2017-11-01 11:59:11 -04:00
Adrien Béraud
41ebbe21d4
node cache: expire nodes on destructions
...
Expiring nodes on cache destruction allow to cancel
any remaining request before the dht instance is destructed,
since Node instances might remain alive after the dht instance
is destroyed.
2017-10-30 13:12:16 -04:00
Adrien Béraud
63366722a9
dht: reduce verbosity of storage log
2017-10-21 18:01:32 +02:00