Commit Graph

5473 Commits

Author SHA1 Message Date
csoler
ca50944ddf
make only default opinion to be changed to positive for contacts (optionally) 2019-01-03 18:32:08 +01:00
csoler
8505561700
fixed bug causing all GXS ids to be added to contacts. Warning: IDs added to contacts by this bug need to be cleaned manually. 2019-01-02 00:20:53 +01:00
Gioacchino Mazzurco
18c5ab8913
add /rspeers/setVisState JSON API 2018-12-28 13:26:26 +01:00
csoler
f122aec41e
Merge pull request #1446 from csoler/v0.6.5-DebianPackaging
fixed license in bss_tou
2018-12-27 17:36:07 +01:00
csoler
1c5f5de3dc
fixed license in bss_tou 2018-12-27 17:34:27 +01:00
csoler
bcea548d83
Merge pull request #1440 from csoler/v0.6-Identity
added button (enabled by default) to automatically add IDs signed by …
2018-12-25 20:35:21 +01:00
csoler
e09b416674
automatically add moderator rights to the owner of a forum 2018-12-24 11:47:33 +01:00
csoler
3770810238
added button (enabled by default) to automatically add IDs signed by friends as contacts 2018-12-24 10:13:27 +01:00
G10h4ck
93fed48b05
Merge pull request #1413 from G10h4ck/disable_deprecated_messaging
0.6.5 Disable deprecated messaging
2018-12-23 12:10:55 +01:00
Gioacchino Mazzurco
e80abde78a
Remove some old versioning system cruft remnants 2018-12-18 21:25:46 +01:00
Gioacchino Mazzurco
d19531cfcc
Fix compilation of forum API 2018-12-16 17:40:47 +01:00
csoler
9ce573c3f5
Merge pull request #1415 from csoler/v0.6.5-ForumModel2
V0.6.5 forum model2
2018-12-16 14:34:14 +01:00
csoler
60112e8387
added two missing virtual desctructors in GXS interface structures 2018-12-14 22:14:59 +01:00
Gioacchino Mazzurco
7113eb7bfc
GxsChannels optimizable API 2018-12-12 21:35:31 +01:00
csoler
a114856b77
changed code to create msg data map using MsgMeta instead of full Msg and added the handles to request MsgMeta data in forums 2018-12-12 11:33:38 +01:00
csoler
8f9c9295b2
added proper timeout of 5 secs to all forum async-ed interactions 2018-12-11 22:06:45 +01:00
csoler
5b8a64b677
fixed a number of bugs in the update/display of forum model 2018-12-06 23:04:53 +01:00
Gioacchino Mazzurco
bdf9bd5c56
JSON API fix OPTION method handling for authenticated methods 2018-12-06 20:49:51 +01:00
Gioacchino Mazzurco
db0a22a226
JSON API for /rsFiles/FileClearCompleted 2018-12-06 20:46:44 +01:00
csoler
49dc9bcae2
increated timeout limit for retrieving forums 2018-12-02 22:49:16 +01:00
csoler
66ad7b650b
added missing virtual destructor in RsGrpMetaData and RsMsgMetaData 2018-11-29 18:33:25 +01:00
csoler
20b8bca801
worked on display of posts and selection in new forum model 2018-11-22 22:07:58 +01:00
Gioacchino Mazzurco
81d23fa607
JSON API to collect extra entropy 2018-11-22 21:56:55 +01:00
Gioacchino Mazzurco
abec811d31
Forum API add missing subscribe method 2018-11-22 16:41:19 +01:00
csoler
a802e494f8
Merge pull request #1401 from G10h4ck/forum_api
0.6.5 Safer forum API
2018-11-20 21:45:45 +01:00
csoler
8c8ce53e4b
Merge pull request #1385 from G10h4ck/safer_api
0.6.5 Safer rsGxsChannel API
2018-11-20 21:44:40 +01:00
Gioacchino Mazzurco
53f8307bee
Disable broadcast chat by default at compile time 2018-11-20 15:54:24 +01:00
Gioacchino Mazzurco
2b58e3f461
RsGxsChannels local search support 2018-11-17 17:19:13 +01:00
csoler
1d7f0d6ef8
Merge pull request #1409 from csoler/v0.6.5-DebianPackaging
V0.6.5 debian packaging
2018-11-17 14:14:53 +01:00
Gioacchino Mazzurco
e311b28870
Complete channel API with comment and vote creation 2018-11-16 17:50:34 +01:00
Gioacchino Mazzurco
ba58eba34e
Complete API for forums
Add new blocking methods
Deprecate old unsafe methods
2018-11-16 17:03:25 +01:00
csoler
9512228b00
Merge pull request #1408 from csoler/v0.6.5-BugFix
fixed overloading names for functions that are not supposed to be ove…
2018-11-14 20:21:47 +01:00
csoler
6d09493725
fixed overloading names for functions that are not supposed to be overloading in turtleClientService and ftServer 2018-11-14 20:20:27 +01:00
csoler
630609c11c
fixed retroshare.project email in licenses 2018-11-11 20:42:48 +01:00
Gioacchino Mazzurco
b8d2d9cade
Print stack trace on crash 2018-11-11 14:25:44 +01:00
csoler
ca3694acca
re-licensed upnputil with permission from the author 2018-11-11 14:24:48 +01:00
csoler
9c3d5acd8e
fixed license in libretroshare 2018-11-11 14:24:48 +01:00
csoler
ddca91b0c9
moved some files to unfinished and deleted soem unused files 2018-11-11 14:24:48 +01:00
csoler
602bc36eec
fixed missing licenses in libretroshare 2018-11-11 14:24:47 +01:00
csoler
98bf2922cb
removed old/unused files 2018-11-11 14:24:47 +01:00
csoler
b53e75ae82
removed old/unreferenced gxs source files. Moved unfinished ideas for wire+acadb to unfinished/ 2018-11-11 14:24:47 +01:00
hunbernd
4dce4002f0
Removed outdated instructions from readme 2018-11-11 14:24:45 +01:00
hunbernd
41d942c144
Updated links in readme 2018-11-11 14:24:45 +01:00
hunbernd
3e3adf7337
Removed some old build scripts 2018-11-11 14:24:44 +01:00
Gioacchino Mazzurco
8b8ad3bce5
Forum API for creation and posting
Deprecate old functions that expose internal functioning
2018-11-10 16:30:35 +01:00
Gioacchino Mazzurco
1d110600fc
Minor cleanups in GxsChannels 2018-11-10 16:29:39 +01:00
Gioacchino Mazzurco
72dd985162
Deprecate TLV items, to avoid temptation to use them in new code 2018-11-10 16:28:15 +01:00
Gioacchino Mazzurco
f84824271f
Implement ostream operator<< for RsSerializable
So it is not necessary to define it for each class we want to print in
  debug
2018-11-10 16:24:47 +01:00
Gioacchino Mazzurco
e449ffba04
Better include in RsGxsChannels 2018-11-09 23:46:21 +01:00
Gioacchino Mazzurco
90bacf12bd
RsGxsDataAccess filtered getters do not return all messages if none matches
This was causing scary error message in RsGxsChannels with autodoanload
  enabled, when all messages where already processed none matched the
  filter so all messages where returned,
  making p3GxsChannels::handleUnprocessedPost furious
  more details into this forum post
  retroshare://forum?name=Scary%20message%2C%20but%20which%20doesn%27t%20seem%20to%20be%20the%20source%20of%20the%20problems%20Was%3A%20More%20GXS%20strange%20messages&id=8fd22bd8f99754461e7ba1ca8a727995&msgid=04f10ff97f761c6840c33f1610cb050f0f73da8d
2018-11-09 23:46:21 +01:00
Gioacchino Mazzurco
2ed6904d06
gxschannels better debugging message 2018-11-09 12:41:09 +01:00
Gioacchino Mazzurco
f6b22d25da
Fix typo in documentation 2018-11-09 12:41:09 +01:00
Gioacchino Mazzurco
ea86fe2615
Safer RsGxsChannel API
Deprecated old method which exposed interna async mechanism to the API
  users, making their and out life difficult
Things that really need to be async like turtle search/requests now accept
  callbacks, so the caller can be notified everytime some result is got
  back
Implement RsThread::async commodity wrapper to execute blocking API
  calls without blocking the caller, this could be optimized
  trasparently using a thread pool if necessary
Added hints into some retroshare-gui files on how to use RsThread::async
  thoghether with QMetaObject::invokeMethod and blocking RetroShare API
  to simplyfy interaction between GUI and libretroshare
2018-11-09 12:41:08 +01:00
Gioacchino Mazzurco
8fd22c8fd1
Safer rsGxsChannel API
Protect data members with mutexes
Print messages when errors happens
2018-11-09 12:41:08 +01:00
G10h4ck
5e6e9e03e5
Merge pull request #1390 from G10h4ck/jsonapi
JSON API to check if PGP id is friend
2018-11-09 11:09:56 +01:00
Gioacchino Mazzurco
c4cbcf78f3
Fix DNS resolution for hostnames that has also AAAA record
rsGetHostByName doesn't support IPv6 addresses.
Before this commit when
an hostname had both AAAA and A record rsGetHostByName retrurned success
but with 0.0.0.0 invalid address. As rsGetHostByName is not capable of
handling IPv6 (fixing it would require API change and a bunch of
refactors around) just avoid to receive IPv6 addresses on resolition, so
the correct IPv4 address is returned if present, otherwise fail
gracefully (A record not found).
2018-11-08 13:23:06 +01:00
csoler
cfb194a8ef
Merge pull request #1392 from G10h4ck/hotfix_udp_crash
WIP: Attempt to fix crash in pqissludp
2018-11-06 23:28:54 +01:00
csoler
09f92642d6
removed memory leak in gxsnettunnel 2018-11-06 20:55:10 +01:00
csoler
f976e1c525
removed memory leak in handlign of old chat lobby items 2018-11-06 20:38:35 +01:00
Gioacchino Mazzurco
a3c81e163d
Fix compilation for ubuntu 18.04 LTS
Ubuntu 18.04 still ships OpenSSL 1.1.0g which has bugs in BIO API, this
commit work around those bugs
2018-11-06 13:02:56 +01:00
Gioacchino Mazzurco
d00d0816ff
Use only BIO_METHOD pointer in openssl >= 1.1.0
The type declaration is hidden so we can't declare variable but only
pointers
Fix compilation on Android
2018-11-05 23:39:10 +01:00
Gioacchino Mazzurco
18e02c9f4a
TOU avoid forging BIO_METHOD in openssl >= 1.1.0
Forging of BIO_METHOD may be the cause of the stack overflow as the
internal structure in openssl changed so the methods get assigned to
wrong pointer.
Kudos Cyril to notice newer openssl internal struct had one new pointer
inserted as second member
2018-11-05 22:23:40 +01:00
sehraf
66dff9bf0b
Add a build-time switch to set whether GXS distributes all available data or only sends data withint the configured sync period. 2018-11-05 18:56:11 +01:00
Gioacchino Mazzurco
81cad2ab02
Fix missing include 2018-11-05 14:02:44 +01:00
Gioacchino Mazzurco
1ef9876610
Merge branch 'stacktrace_on_crash' into hotfix_udp_crash 2018-11-05 00:20:33 +01:00
Gioacchino Mazzurco
c0ca1a5aad
Print stack trace on crash 2018-11-05 00:19:45 +01:00
Gioacchino Mazzurco
7d6fba7e8c
Attempt to fix crash in pqissludp
Caused by unneeded pointer usages + not enough careful IPv6 porting

I haven't managed to reproduce the crash nor to test the fix due it
happening only when UDP relayed connection happens (apparently never on
my nodes.

I have managed to discover where the bug comes from thanks to multiple
user reports, specially to Ilario report which documented 3 crashes
happening on 0.6.4 with complete log.
2018-11-04 00:09:28 +01:00
Gioacchino Mazzurco
eca4f8adf7
JSON API to check if PGP id is friend 2018-11-01 23:26:42 +01:00
csoler
4aedfddb9f
fixed bug in GRouter failing to set proper service ID in return receipts 2018-11-01 22:10:17 +01:00
csoler
33b39a8be6
removed uninitialized memory read in determination of own IP 2018-11-01 22:05:22 +01:00
csoler
cb5d247565
removed unnecessry debug output from pqissl 2018-11-01 21:45:59 +01:00
csoler
eb078d462e
added more info to deserialization warning in rsrecogn 2018-11-01 21:42:07 +01:00
csoler
3c6dd1af1c
removed unnecessary saving of config in p3turtle 2018-10-28 17:45:21 +01:00
csoler
20391371c7
fixed bug causing some GXS sync tunnels to remain unused and prevent new tunnels to be created 2018-10-28 17:29:48 +01:00
Gioacchino Mazzurco
e5805e9047
Avoid external port being reset without necessity
Fix RetroSahre behaviour when manually configured external port is
  different to local port
2018-10-24 05:39:31 +02:00
Phenom
358f27be06 Fix warnings in MessagePage.cpp
/retroshare-gui/src/gui/settings/MessagePage.cpp:62:19: warning:
deleting object of polymorphic class type 'Rs::Msgs::MsgTagType' which
has non-virtual destructor might cause undefined behavior [-Wdelete-non-
virtual-dtor]
/retroshare-gui/src/gui/settings/MessagePage.cpp:62: warning: delete
called on non-final 'Rs::Msgs::MsgTagType' that has virtual functions
but non-virtual destructor
/retroshare-gui/src/gui/settings/MessagePage.cpp:86: warning: use of
old-style cast
/retroshare-gui/src/gui/settings/MessagePage.cpp:172: warning: zero as
null pointer constant
/retroshare-gui/src/gui/settings/MessagePage.cpp:176: warning: implicit
conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int')
/retroshare-gui/src/gui/settings/MessagePage.cpp:203: warning: zero as
null pointer constant
/retroshare-gui/src/gui/settings/MessagePage.cpp:207: warning: implicit
conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int')
/retroshare-gui/src/gui/settings/MessagePage.cpp:261: warning: implicit
conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int')

/libretroshare/src/retroshare/rsmsgs.h:168: warning:
'Rs::Msgs::MessageInfo' has virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:168: warning: 'MessageInfo' has
no out-of-line virtual method definitions; its vtable will be emitted in
every translation unit
/libretroshare/src/retroshare/rsmsgs.h:234: warning:
'Rs::Msgs::MsgInfoSummary' has virtual functions but non-virtual
destructor
/libretroshare/src/retroshare/rsmsgs.h:234: warning: 'MsgInfoSummary'
has no out-of-line virtual method definitions; its vtable will be
emitted in every translation unit
/libretroshare/src/retroshare/rsmsgs.h:261: warning:
'Rs::Msgs::MsgTagInfo' has virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:328: warning: 'ChatId' has
virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:400: warning: 'ChatLobbyInvite'
has virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:420: warning:
'VisibleChatLobbyRecord' has virtual functions but non-virtual
destructor
/libretroshare/src/retroshare/rsmsgs.h:420: warning:
'VisibleChatLobbyRecord' has no out-of-line virtual method definitions;
its vtable will be emitted in every translation unit
/libretroshare/src/retroshare/rsmsgs.h:449: warning: 'ChatLobbyInfo' has
virtual functions but non-virtual destructor
/libretroshare/src/retroshare/rsmsgs.h:486: warning: 'RsMsgs' has no
out-of-line virtual method definitions; its vtable will be emitted in
every translation unit

About vtable:
https://stackoverflow.com/questions/23746941/what-is-the-meaning-of-
clangs-wweak-vtables
https://stackoverflow.com/questions/50463374/avoid-weak-vtable-warnings-
for-classes-only-defined-in-a-source-file
2018-10-23 17:43:01 +02:00
Phenom
da6778934d Fix Warnings in rsloginhandler.cc
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved1' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved2' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved3' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved4' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved5' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved6' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:122:2: warning: missing
initializer for member 'SecretSchema::reserved7' [-Wmissing-field-
initializers]
/libretroshare/src/rsserver/rsloginhandler.cc:34: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:55: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:120: warning: use of old-
style cast
/libretroshare/src/rsserver/rsloginhandler.cc:122: warning: missing
field 'reserved' initializer
/libretroshare/src/rsserver/rsloginhandler.cc:243: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:244: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:248: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:254: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:443: warning: 'return'
will never be executed
/libretroshare/src/rsserver/rsloginhandler.cc:270: warning: 'return'
will never be executed
/libretroshare/src/rsserver/rsloginhandler.cc:468: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:470: warning: use of old-
style cast
/libretroshare/src/rsserver/rsloginhandler.cc:470: warning: cast from
'const char *' to 'char *' drops const qualifier
/libretroshare/src/rsserver/rsloginhandler.cc:471: warning: use of old-
style cast
/libretroshare/src/rsserver/rsloginhandler.cc:471: warning: cast from
'const char *' to 'char *' drops const qualifier
/libretroshare/src/rsserver/rsloginhandler.cc:472: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:476: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:630: warning: 'return'
will never be executed
/libretroshare/src/rsserver/rsloginhandler.cc:650: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:651: warning: zero as null
pointer constant
/libretroshare/src/rsserver/rsloginhandler.cc:655: warning: zero as null
pointer constant
2018-10-23 17:37:19 +02:00
Gioacchino Mazzurco
e746b5b4a0
JSON API unauthenticated access to /rsAccounts/getCurrentAccountId 2018-10-22 00:24:02 +02:00
Gioacchino Mazzurco
6543d713e4
JSON API import/export PGP key to file 2018-10-21 17:12:13 +02:00
Gioacchino Mazzurco
7a1375ff6f
rsPeers add few JSON API calls 2018-10-20 21:13:10 +02:00
csoler
cfe95a57a0
Merge pull request #1377 from G10h4ck/jsonapi
GXS deep search notify results also of already known groups
2018-10-20 14:47:37 +02:00
Gioacchino Mazzurco
2d497d7303
Fix compilation with deep search and rm dead code 2018-10-20 14:07:39 +02:00
Gioacchino Mazzurco
aca29e3ea7
Merge branch 'v0.6-GxsFix2' of https://github.com/csoler/RetroShare into csoler-v0.6-GxsFix2 2018-10-20 13:51:11 +02:00
Gioacchino Mazzurco
5699d81ae7
GXS deep search notify results also of known groups 2018-10-20 13:48:16 +02:00
Gioacchino Mazzurco
9e2c4ce49e
JSON API authorize token in createLocation
Solve uncoherent 401 behaviour at first use without login
2018-10-19 15:10:15 +02:00
Gioacchino Mazzurco
945775e9f5
Fix deep search compiling on 32bit time_t targets 2018-10-18 04:27:30 +02:00
csoler
9b4c48c540
created a connexion between token and meta data of created posts and grps 2018-10-16 22:40:27 +02:00
Gioacchino Mazzurco
2bb24075c4
Print warning also when serializing negative rstime_t 2018-10-16 16:19:23 +02:00
G10h4ck
03cdd6c7b6
Merge pull request #1363 from G10h4ck/jsonapi
New cross-platform target retroshare-service
2018-10-16 16:06:09 +02:00
thunder2
6e1de5b5ed Fixed Windows compile with MinGW 2018-10-14 15:28:20 +02:00
csoler
fae02741d4
Merge pull request #1370 from sehraf/pr_remove-debug-output
remove debug output
2018-10-14 15:00:09 +02:00
csoler
74022a5e10
fixed bug in recent commit that broke turtle generic search 2018-10-13 22:59:26 +02:00
Gioacchino Mazzurco
15b729b35c
Fix crash in p3Peers::loadCertificateFromString
This function is part of the public API so it must be safe to call with
any input, before this commit if would crash if feeded with a broken or
empty certificate radix string.
2018-10-12 22:28:44 +02:00
csoler
9c90b32def
fixed dangerous memcpy in RsTurtleGenericSearchResultItem::clone() function 2018-10-12 22:19:07 +02:00
sehraf
e6febe0297
remove debug output 2018-10-12 18:20:55 +02:00
Gioacchino Mazzurco
fc14300b06
Re-add ftServer::requestDirDetails implementation
The implementation has disappeared merging master causing linking error
2018-10-10 23:43:01 +02:00
Gioacchino Mazzurco
b3d73ba6a5
Suppress aliasing warning in DirDetails and DirStub
Order of serialization doesn't matter ATM as we use those only for
  JSON API.
Those classes should be rewritten anyway with proper naming of the
  memebers and using std::uintptr_t instead of void* and rstime_t for
  timestamps
2018-10-10 23:32:32 +02:00
G10h4ck
047ae7f723
Merge branch 'master' into jsonapi 2018-10-10 22:23:28 +02:00
csoler
18eee374f1
Merge pull request #1361 from sehraf/pr_jsonfy-rsMsg
[jsonapi] add most remaining functions of rsMsg
2018-10-10 22:04:32 +02:00
csoler
09b109d522
Merge pull request #1364 from G10h4ck/safer_time
Use safer rstime_t instead of time_t
2018-10-10 22:03:51 +02:00
Gioacchino Mazzurco
a47eec14e4
Print a warning if deserialized rstime_t is negative 2018-10-10 21:54:50 +02:00
Gioacchino Mazzurco
321fc8a8d4
Implement mostly decent JSON API for channels and post creation
Now the possible id of the cannel/post is returned and channel/post is
indexed on creation without having to wait for gxsutil scan to happen

Note that the id is correct in normal usage, but if one try to overload
the API per eventually get the id of another channel/post with same data
but created by a different call, it is not dangerous so one trying to
overload the API is just getting a possibly wrong but equivalent
channel/post id returned.
2018-10-10 06:40:56 +02:00
Gioacchino Mazzurco
c05c376351
Expose /rsFiles/requestDirDetails via JSON API
This method is useful to browse own shared directries, or directries
shared by friends whith browseable permission
2018-10-09 22:58:17 +02:00
Gioacchino Mazzurco
2139090f5d
Fix bug in JSON t_RsFlags32 deserialization
If the member was not present in the JSON it was zeroed while it should
be left untouched in that case.
This was discovered because in JSON API defualt argument value for
methods wasn't onored for t_RsFlags32 arguments.
2018-10-09 22:43:15 +02:00
Gioacchino Mazzurco
74129f670a
jsonwrappersincl target always fails if doxygen fail 2018-10-09 18:06:21 +02:00
Gioacchino Mazzurco
7798e50123
Expose JSON API for ForceDirectoryCheck 2018-10-09 11:34:57 +02:00
Gioacchino Mazzurco
406822b5ec
Expose JSON API for file filtering 2018-10-09 11:34:56 +02:00
Gioacchino Mazzurco
a89c29030a
Add missing rstime include in jsonapi 2018-10-08 11:56:47 +02:00
hunbernd
b7d5944b9c Fix building error about losing precision on Win x64 2018-10-07 21:53:16 +02:00
Gioacchino Mazzurco
ddf3164545
Fix ctime(&rstime_t) error on windows
rstime_t not neccesary in those cases so use plain time_t instead
2018-10-07 14:41:13 +02:00
Gioacchino Mazzurco
329050a9c2
Use safer rstime_t instead of time_t
Avoid problems to serialization on different platforms, without breaking
nested STL containers serialization.

The conversion have been made with sed, and checked with grep, plus
kdiff3 visual ispection, plus rutime tests, so it should be fine.
2018-10-07 13:07:06 +02:00
sehraf
137bd9cd6d
jsonapi: fix nested std types 2018-10-06 23:50:29 +02:00
Gioacchino Mazzurco
f5158b3a9f
Allow CORS in JsonApiServer 2018-10-06 18:57:14 +02:00
Gioacchino Mazzurco
8f17270a2a
Fix type in .pri breaking non-cross-compiling 2018-10-06 18:49:17 +02:00
csoler
586cff2ad1
Merge pull request #1362 from csoler/v0.6-ImprovedGUI
V0.6 improved gui
2018-10-06 18:33:13 +02:00
csoler
045691855b
Merge pull request #1356 from PhenomRetroShare/Fix_Warnings
Fix warnings
2018-10-06 18:31:33 +02:00
Gioacchino Mazzurco
2b3570903f
retroshare-service deep search support for Android 2018-10-06 01:23:08 +02:00
Gioacchino Mazzurco
b28512b889
retroshare-service now build and runs fine on android (even older ones) 2018-10-05 22:29:49 +02:00
csoler
ec8e8ebafa
fixed merging with upstream/master 2018-10-05 21:38:36 +02:00
csoler
dbd52c0c9c
fixed bug in previous commit 2018-10-05 17:01:54 +02:00
csoler
4de0498208
fixed bad signature checking code for config files 2018-10-05 16:54:36 +02:00
Gioacchino Mazzurco
1d8bb44811
Fix warnings 2018-10-05 01:55:18 +02:00
Gioacchino Mazzurco
341a68ce07
rstypeserializer fix uninitialized variable usage 2018-10-05 01:23:17 +02:00
Gioacchino Mazzurco
321d2e84bd
gxschannel expose blocking create post and channels API 2018-10-04 23:36:01 +02:00
sehraf
6dabb81dc0
rsMsg: unify parameter name 2018-10-04 23:25:23 +02:00
sehraf
500eb7f518
jsonapi: add rsMsg tagging functions 2018-10-04 23:24:06 +02:00
sehraf
897c8e0a8a
jsonapi: more rsMsg functions 2018-10-04 22:43:13 +02:00
sehraf
70678ad508
jsonapi: fix std::map<T,U> 2018-10-04 22:43:13 +02:00
sehraf
150af40e09
jsonapi: convert and add getMessageCount 2018-10-04 22:43:12 +02:00
sehraf
285158db5f
jsonapi: access messages (mail) 2018-10-04 22:43:12 +02:00
csoler
c6d0203557
added debug output to see which config files are loaded/saved 2018-10-04 19:22:49 +02:00
csoler
fb21e427be
removed saving of GxsTrans configuration in class destructor, causing lock up when quitting RS 2018-10-04 19:14:21 +02:00
Gioacchino Mazzurco
7c986b926d
Remove overloaded GetRetroshareInvite method
now the original method has default paramether that return invite for
  own node, this way JSON API is more friendly
2018-10-04 19:14:16 +02:00
Gioacchino Mazzurco
7cc15c703c
Fix forward declarations class struct missmatch 2018-10-03 19:07:46 +02:00
Gioacchino Mazzurco
e6e5700ed6
Fix warning caused by clang defining _GNUC_ 2018-10-03 19:07:46 +02:00
Gioacchino Mazzurco
8f3f2cd7cb
retroshare-service improve building process 2018-10-03 15:53:18 +02:00
csoler
81fc3b7921
select GxsIds as default list to chose msg destination from 2018-10-03 15:25:53 +02:00
Phenom
6ef72f551d Fix Gcc Warning in authssl.cc
/libretroshare/src/pqi/authssl.cc:160: warning: ‘void
dyn_destroy_function(CRYPTO_dynlock_value*, const char*, int)’ defined
but not used [-Wunused-function]
 static void dyn_destroy_function(struct CRYPTO_dynlock_value *l, const
char */*file*/, int /*line*/)
/libretroshare/src/pqi/authssl.cc:143: warning: ‘void
dyn_lock_function(int, CRYPTO_dynlock_value*, const char*, int)’ defined
but not used [-Wunused-function]
 static void dyn_lock_function(int mode, struct CRYPTO_dynlock_value *l,
const char */*file*/, int /*line*/)
/libretroshare/src/pqi/authssl.cc:121: warning: ‘CRYPTO_dynlock_value*
dyn_create_function(const char*, int)’ defined but not used [-Wunused-
function]
 static struct CRYPTO_dynlock_value *dyn_create_function(const char */
*file*/, int /*line*/)
/libretroshare/src/pqi/authssl.cc:106: warning: ‘long unsigned int
id_function()’ defined but not used [-Wunused-function]
 static unsigned long id_function(void)
/libretroshare/src/pqi/authssl.cc:92: warning: ‘void
locking_function(int, int, const char*, int)’ defined but not used [-
Wunused-function]
 static void locking_function(int mode, int n, const char */*file*/, int
/*line*/)
2018-09-30 15:10:40 +02:00
Phenom
1839d23df1 Fix Gcc Warning hashstream.h
/libretroshare/src/crypto/hashstream.cc:38: warning: friend declaration
‘template<class T> librs::crypto::HashStream&
librs::crypto::operator<<(librs::crypto::HashStream&, const T&)’ is not
visible to explicit specialization
  HashStream& operator<<(HashStream& u,const std::string& s)
/libretroshare/src/crypto/hashstream.cc:44: warning: friend declaration
‘template<class T> librs::crypto::HashStream&
librs::crypto::operator<<(librs::crypto::HashStream&, const T&)’ is not
visible to explicit specialization
  HashStream& operator<<(HashStream& u,const uint64_t& n)
/libretroshare/src/crypto/hashstream.cc:58: warning: friend declaration
‘template<class T> librs::crypto::HashStream&
librs::crypto::operator<<(librs::crypto::HashStream&, const T&)’ is not
visible to explicit specialization
  HashStream& operator<<(HashStream& u,const uint32_t& n)
/libretroshare/src/crypto/hashstream.cc:72: warning: friend declaration
‘template<class T> librs::crypto::HashStream&
librs::crypto::operator<<(librs::crypto::HashStream&, const T&)’ is not
visible to explicit specialization
  HashStream& operator<<(HashStream& u,const uint8_t& n)
2018-09-30 15:10:40 +02:00
csoler
79a8b2183f
Merge pull request #1353 from csoler/v0.6-FileLists
V0.6 file lists
2018-09-30 13:31:26 +02:00
csoler
443dbdfbef
fixed small bug breaking display of flat mode in files 2018-09-29 19:04:23 +02:00
Gioacchino Mazzurco
0078501dba
Initial work on a RetroShare cross-platform service
This doesn't need any interacion of the user at startup, unlike
retroshare-nogui which requires the user to login on the shell this doesn't
even need a TTY.
At startup this just parse command line, read the PGP keyring, look for
available locations, and start listening for JSON API requests.
Another difference with retroshare-nogui is that this is capable to
generate/import PGP identities, generate locations, and in general anything
possible through the RetroShare API.
retroshare-service is suitable also to run it as a system service, even
in very constrained systems such as Android ot a Docker container.
retroshare-service drop support for libresapi so only the new JSON API
is exposed, it will completely obsolete retroshare-android-service once
retroshare-qml-app is ported to the new JSON API.
2018-09-29 00:15:10 +02:00
csoler
752275f813
fixed various display bugs in extra file list 2018-09-27 22:14:00 +02:00
csoler
54ec49dc03
make extra shared file list appear only when non empty 2018-09-27 21:56:41 +02:00
csoler
e1698429de
fixed display of size 2018-09-27 21:46:00 +02:00
csoler
2610f62e41
fixed display of temporary shared file text 2018-09-27 21:42:21 +02:00
csoler
c77a28c17a
added proper notification when removing an extra file 2018-09-27 21:20:06 +02:00
csoler
7ab7c7db93
added possibility to remove extra shared file 2018-09-27 16:53:08 +02:00
csoler
1383846364
added extra list view in own files. 2018-09-27 13:42:49 +02:00
Phenom
aec68c2269 Fix qmake double using retroshare.pri
From 544b4af4c2
2018-09-26 17:55:58 +02:00
Phenom
f420bb4644 Fix qmake warnings:
Makefile.libretroshare:3811: warning: overriding recipe for target
'temp/linux-g++/obj/hashstream.o'
Makefile.libretroshare:3772: warning: ignoring old recipe for target
'temp/linux-g++/obj/hashstream.o'
2018-09-26 17:36:33 +02:00
G10h4ck
f09bef2ac8
Merge pull request #1349 from G10h4ck/jsonapi
Implement JSON API HTTP Basic authentication
2018-09-25 18:10:16 +02:00
Gioacchino Mazzurco
95e0fd338f
JsonApiServer::isAuthTokenValid avoid timing attack
Thanks Cyril for review :)
2018-09-25 17:27:54 +02:00
Gioacchino Mazzurco
1c7f02655e
Fix crash at startup if jsonapi not enabled 2018-09-21 01:40:26 +02:00
Gioacchino Mazzurco
bf98166197
RsServer fix crash on stop if shutdown callback not set 2018-09-21 01:39:48 +02:00
zapek
dc926d30c8 links with wsock32 only if the jsonapi is built 2018-09-20 23:29:36 +02:00
zapek
458a8b0878 fixed JSONAPI build for Windows 2018-09-20 22:24:05 +02:00
Gioacchino Mazzurco
add97dede0
p3face include jsonapi.h only if enabled 2018-09-19 22:02:07 +02:00
Gioacchino Mazzurco
eb77f921ec
Implement JSON API HTTP Basic authentication
jsonapi-generator is now capable of generating API for headers outside
  retroshare/ directory
jsonapi-generator do a bit of methods parameter sanity check
JsonApiServer is now integrated in the rsinit hell like other services
Add *::exportGPGKeyPairToString to a bunch of classes in cascade
RsControl is now capable of calling back a function when retroshare is almost
  completely stopped, this is useful when running retroshare toghether with
  externally managed runloop such as QCoreApplication
Expose a bunch of methods through JSON API
retroshare-nogui remove some dead code and fix stopping from the RetroShare API
2018-09-19 21:28:26 +02:00
Gioacchino Mazzurco
43bc80de8e
JSON API export version extra too 2018-09-15 21:53:46 +02:00
Gioacchino Mazzurco
cd03953b1a
Provide meaningful devault value in rsversion.h 2018-09-15 21:07:03 +02:00
hunbernd
05537d89cb Added warning instead of running the version_detail script 2018-09-15 18:27:15 +02:00
G10h4ck
eece958aa0
Merge pull request #1340 from sehraf/pr_remove-obsolete-version-scripts
remove obsolete version scripts
2018-09-15 17:59:09 +02:00
sehraf
0b6644cd55
get rid of unused variables 2018-09-15 14:38:57 +02:00
sehraf
1e85b05f09
get rid of cipher_version variable. use plain output from openssl 2018-09-15 14:37:40 +02:00
sehraf
1faaf91ebe
G10h4ck said that there are obsolete since #1336 and should not be used anymore. 2018-09-14 17:01:52 +02:00
sehraf
7ce2bef37b
add support for displaying TLSv1.3 2018-09-14 16:27:50 +02:00
Gioacchino Mazzurco
148e46346d
JSON API accessible via HTTP GET method
This is useful in cases where the client cannot use POST method.
/jsonApiServer/shutdown now reply before shutting down the core.
2018-09-12 23:40:34 +02:00
Gioacchino Mazzurco
1694e37c58
More fixes to JSON API
Remove unnecessary dangerous method from RsLoginHelper
Fix documentation for RsServiceControl::getServiceName that was breaking
  JSON API and causing compilation warning
2018-09-12 10:49:37 +02:00
Gioacchino Mazzurco
5245765964
JSON API expose retroshare version
Added a couple of macro to reduce boilerplate in manually written API
wrappers, use them in auto-generated wrappers too
2018-09-12 10:49:37 +02:00
Gioacchino Mazzurco
92f90178c4
RS version is now parametrizable at compile time
Avoid the need of dirty patching to set the version at build time
In case RS version is not passed as argument attempt to determine it
  using git describe, if unavailable use hardcoded default
2018-09-12 10:49:36 +02:00
Gioacchino Mazzurco
5495f43c51
Fix RsServiceControl::getServiceItemNames doc
Was breaking JSON API and causing some compilation warnings
2018-09-12 00:31:16 +02:00
csoler
b138263878
Merge pull request #1323 from csoler/v0.6-ForumAdmin
V0.6 forum admin
2018-09-11 15:17:33 +02:00
csoler
c17b821ea6
Merge pull request #1334 from csoler/v0.6-GxsFix
auto send of own signed GXS ids to friends in discovery
2018-09-10 20:39:29 +02:00
csoler
2b80c23f6a
fixed according to comments on PR 1334 2018-09-10 20:03:47 +02:00
G10h4ck
cb83abf932
Merge pull request #1335 from sehraf/pr_jsonfy
Make more APIs jsonapi compatible
2018-09-10 00:29:07 +02:00
sehraf
247c368279
incorporated requested changes 2018-09-09 22:22:55 +02:00
csoler
59a76a9418
fixed checking of signature for own ids when loading in cache 2018-09-09 21:22:08 +02:00
sehraf
ae6a5c74d2
add rsPeer groups to jsonapi 2018-09-08 17:04:29 +02:00
sehraf
5a961179f3
unify parameter names 2018-09-08 09:48:27 +02:00
sehraf
31b0f67e94
jsonfy RsServiceControl 2018-09-08 09:47:45 +02:00
sehraf
9306d8ccc8
drop deprecated function 2018-09-08 08:58:42 +02:00
sehraf
ae14a01d58
add json support to getWaitingDiscCount 2018-09-07 14:19:06 +02:00
sehraf
be50400114
jsonfy rsDisc 2018-09-07 14:17:44 +02:00
sehraf
fb8e49ee66
jsonjy rsConfig 2018-09-07 12:58:30 +02:00
csoler
3402f7d9b5
auto send of own signed GXS ids to friends in discovery 2018-09-06 21:15:25 +02:00
sehraf
39c07f4ef0
make p3GxsTrans a class 2018-09-06 13:17:33 +02:00
csoler
b17d2a3aca
Merge pull request #1331 from G10h4ck/jsonapi
JSON API improvements
2018-09-06 08:39:30 +02:00
Gioacchino Mazzurco
2c8aa5a1fe
RsAccounts::getCurrentAccountId is now static 2018-09-06 02:04:48 +02:00
csoler
4a309b827a
fixed compilation with libressl2.7 (patch from sss, modified) 2018-09-05 21:00:34 +02:00
Gioacchino Mazzurco
7787f9d62f
Merge branch 'master' into jsonapi 2018-09-05 00:17:21 +02:00
Gioacchino Mazzurco
a194e4cf56
Make JSON API server bind address configurable
Enforce it being 127.0.0.1 by default, I assumed 127.0.0.1 was restbed
default, but as reported by sehraf is not alwayd the case

JSON API bind address now is also configurable via commandline on
retroshare-android-service and retroshare-nogui, while it obey the
configuration of webui (execept for that port is incremented by 2)
in retroshare-gui
2018-09-05 00:08:56 +02:00
csoler
59535eac8a
added a flag for moderating messages to help removign them when the author is not a moderator anymore 2018-09-02 17:07:40 +02:00
Gioacchino Mazzurco
7f74313552
JSON API close restbed session before shutting down 2018-09-01 15:54:11 +02:00
Gioacchino Mazzurco
7a37c11e47
Prevent crash calling uninitialized service via JSON API 2018-09-01 15:29:09 +02:00
Gioacchino Mazzurco
cc6f0b1f05
Expose RsPeers JSON API
Added also new method for better usability via the API that allow to add
  friend directly for RetroShare invitation (supports also URL) without
  having to call to mulptiple metods to set IP etc.
  RsPeers::acceptInvite
  /rsPeers/acceptInvite
2018-08-30 21:45:51 +02:00
Gioacchino Mazzurco
a8ddec03fc
Expose more login related JSON API
/rsLoginHelper/isLoggedIn to check if already logged in
/rsAccounts/getCurrentAccountId to get the id of current selected
  account, beware that an account may be selected without actually logging in
2018-08-30 19:09:50 +02:00
csoler
5c2f714ada
merged with upstream/master 2018-08-30 14:50:16 +02:00
csoler
65304a301a
added last relay (a.k.a which direct friend) of search results in sources column 2018-08-28 23:57:16 +02:00
csoler
c9b30f5a72
fixed merged with upstream/master 2018-08-28 23:42:24 +02:00
csoler
c294971633
Merge pull request #1289 from G10h4ck/jsonapi
Implement automatic JSON API generation
2018-08-28 19:11:08 +02:00
Gioacchino Mazzurco
dd55ddea95
Add more consistency checks to serialization code
As suggested by Cyril
2018-08-28 15:20:41 +02:00
Gioacchino Mazzurco
3094146c13
RsLoginHelper::attemptLogin clear cached passphrase after usage
Thanks Cyril for suggestion
2018-08-28 14:35:29 +02:00
Gioacchino Mazzurco
75e882bb9f
Make NotifyClient class again 2018-08-28 14:12:09 +02:00
csoler
5f18d26738
removed unused member depth from search results to avoid confusion while ensureing backward compatibility is kept 2018-08-27 23:36:21 +02:00
csoler
fd25f8336e
Merge pull request #1329 from sehraf/pr_small-fixes
small fixes
2018-08-27 10:56:29 +02:00
Gioacchino Mazzurco
1dfe64443f
Improve documentation 2018-08-26 11:39:26 +02:00
csoler
2fab33d37f
fixed a few bugs in ban file list management 2018-08-25 20:52:06 +02:00
csoler
b5eabf7af7
improved banned files UI and fixed deadlock 2018-08-25 20:18:54 +02:00
csoler
c14d898901
added some debug info to file control system and fixes a problem with sending TS 2018-08-25 18:44:29 +02:00
G10h4ck
41f7235ed0
Merge pull request #2 from sehraf/pr_improve_json
Multiple fixes on json handling by sehraf
2018-08-25 18:05:56 +02:00
Gioacchino Mazzurco
c50405c070
Expose /rsFiles/turtleSearchRequest via JSON API
Expose new async C++ API RsFiles::turtleSearchRequest with callback
Modernize TurtleFileInfo serialization code keeping retrocompatibility
2018-08-25 17:58:04 +02:00
sehraf
9557a5246e
remove unnecessary locking, print log entries also to stdout 2018-08-25 17:54:34 +02:00
sehraf
c754435944
fix deserialisation and improve PRINT job 2018-08-25 17:10:01 +02:00
Gioacchino Mazzurco
a8b2532d3b
Fix warning #pragma once used in main file
Probably a copy paste error made during license cleanup
2018-08-25 17:04:42 +02:00
sehraf
588295e1e5
make RsGroupInfo serializable 2018-08-25 16:52:46 +02:00
sehraf
4d03b906b8
convert values properly to string 2018-08-25 16:51:49 +02:00
Gioacchino Mazzurco
31f0a42b86
Merge branch 'csoler/v0.6-FT' into jsonapi
Needed to exopse JSON API for file search
2018-08-25 16:14:42 +02:00
Gioacchino Mazzurco
b98246ee21
Fix location creation via JSON API
To complete location creation login is needed
2018-08-25 00:19:26 +02:00
csoler
8eebe53d75
moved UI notification for turtle FT search results into ftServer, in order to allow easier libresAPI calls 2018-08-24 16:12:05 +02:00
Gioacchino Mazzurco
afb92999d8
Enable JSON conversion for RsGxsImage via MemBlockProxy 2018-08-24 00:31:25 +02:00
Gioacchino Mazzurco
afeb408f7a
Expose more RsFiles via JSON API
FileInfo remove dead static members
2018-08-23 22:38:21 +02:00
Gioacchino Mazzurco
4d30d4f32b
Avoid cloning huge unused restbed openssl dependency 2018-08-23 15:47:01 +02:00
Gioacchino Mazzurco
18feb23c77
Suggest shallow submodules for jsonapi dependencies 2018-08-23 14:20:24 +02:00
Gioacchino Mazzurco
3b72f912e4
Improve API
Manually expose /rsFiles/getFileData to stream/preview files
Automatically expose a bunch of methods via JSON API
Implement serial_process for std::pair
2018-08-23 01:39:26 +02:00
csoler
3055897425
added filter in p3turtle against banned hashes in tunnel requests and search results 2018-08-22 21:57:56 +02:00
Gioacchino Mazzurco
ab6a5c07cc
RsLoginHelper::createLocation expose capability of creating hidden locations 2018-08-22 17:22:27 +02:00
Gioacchino Mazzurco
8f7bacbb35
Remove #pragma once in .cc file
It was probably introduced by copy paste error on license cleanup
2018-08-22 17:00:22 +02:00
Gioacchino Mazzurco
396fe49312
Merge branch 'master' into jsonapi 2018-08-22 16:59:42 +02:00
csoler
365464623a
added load/save of banned files and handling of banned files information from friends 2018-08-21 11:20:02 +02:00
csoler
0b176a0fe5
added sending of banned file info 2018-08-20 23:30:05 +02:00
csoler
e5e566051b
added logic to compute ban list from friend nodes and own opinions 2018-08-19 21:11:17 +02:00
csoler
af7556610a
added option whether to trust friend nodes for banned files 2018-08-19 15:52:35 +02:00
Gioacchino Mazzurco
fe8c2c4683
Merge branch 'jsonapi' of github.com:G10h4ck/RetroShare into jsonapi 2018-08-16 23:51:35 +02:00
Gioacchino Mazzurco
4b6f751b09
Implement JSON API generation for async API calls
Move JSON helpers to util/rsjson.* for better usability
Implement JSON ostream manipulator to print compact and pretty JSON
Use lambdas for API wrappers, integrate better and avoid namespace
  pollution
Removed experimental JSON API for notify client wrapper, notifications
  can be implemented automatically with moderns async API calls
Implement and automatically expose to JSON API
  RsGxsChannels::turtleSearchRequest(
        const std::string& matchString,
        const std::function<void (const RsGxsGroupSummary&)>& multiCallback,
        std::time_t maxWait )
2018-08-16 23:48:21 +02:00
csoler
e17c4d0e40
added a dialog to edit banned files 2018-08-16 22:22:47 +02:00
csoler
50e03a539c
basic infrastructure for banning unwanted file content 2018-08-16 18:49:36 +02:00
Gioacchino Mazzurco
b7f5d4286f
RsGxsNetService::receiveTurtleSearchResults fix deadlock
Avoid notifing observer while the mutex is locked by storing results in
a temporary set
2018-08-16 14:26:41 +02:00
csoler
5b1c150acb
added background for post pinning and logic to edit others posts 2018-08-12 15:30:07 +02:00
csoler
ded9c21617
added selection boxes to add forum moderators 2018-08-09 21:18:37 +02:00
sehraf
a556965813
further conversion to new wrapper function 2018-08-03 20:19:10 +02:00
csoler
cc51298de6
fixed warning about badly overloaded function in rsexpr.h 2018-08-02 14:13:14 +02:00
csoler
985be3504e
fixed compilation with RS_AUTO_LOGIN 2018-08-01 23:05:36 +02:00
sehraf
97194fd092
Add wrapper function to convert uint16_t service IDs to internal unsigned int.
Use it when looking up service names.
2018-08-01 20:47:02 +02:00
csoler
c948517c3d
Merge pull request #1306 from csoler/v0.6-TorOnly
V0.6 tor only
2018-07-31 14:18:24 +02:00
csoler
ecd45215c7
disallow empty file when loading shared file list in order to avoid malloc of size 0 2018-07-31 14:13:01 +02:00
csoler
1297d2e106
fixed double calls to pthread_exit() (one being implicit after return from main thread method) -- patch from sss 2018-07-30 10:50:32 +02:00
csoler
d7c7e35d71
fixed compilation on MacOS 2018-07-27 15:15:04 +02:00
csoler
cc1a05ddc9
fixed certificate creation in TorAuto mode 2018-07-27 12:33:06 +02:00
csoler
62b9a74324
fixed running with TorControl in new mode 2018-07-25 15:31:18 +02:00