ricochet-go/core
John Brooks 32230b77c1 core: Reuse protobuf structures for configuration
The existing configuration was partially compatible with Ricochet's,
but not enough to actually be useful. It also required a bunch of
boilerplate code to copy data between configuration data structures,
internal data structures, and RPC data structures.

Protobuf conveniently supports encoding messages to JSON, and we already
need to store most data (e.g. contacts) in protobuf structures. This
commit changes the configuration to be a protobuf JSON serialization of
the Config message, which can directly reuse RPC messages like Contact.

Additionally, the RWMutex-based configuration type was a deadlock
waiting to happen. There is now a read-only clone of the configuration
available atomically at any time. Writers need an exclusive lock on the
ConfigFile object, which commits its changes to disk and readers on
unlock.
2017-09-24 16:59:44 -06:00
..
config core: Reuse protobuf structures for configuration 2017-09-24 16:59:44 -06:00
utils core: Use consistent functions to validate and convert address formats 2016-11-05 21:27:13 -06:00
address.go core: Use consistent functions to validate and convert address formats 2016-11-05 21:27:13 -06:00
contact-protocol.go Implement conversation with the new protocol API 2017-09-23 19:18:24 -06:00
contact.go core: Reuse protobuf structures for configuration 2017-09-24 16:59:44 -06:00
contactlist.go core: Reuse protobuf structures for configuration 2017-09-24 16:59:44 -06:00
conversation.go Implement conversation with the new protocol API 2017-09-23 19:18:24 -06:00
identity.go core: Reuse protobuf structures for configuration 2017-09-24 16:59:44 -06:00
inboundcontactrequest.go core: Reuse protobuf structures for configuration 2017-09-24 16:59:44 -06:00
network.go core: Fix generation of new onion keys 2017-09-24 16:56:29 -06:00
onionconnector.go core: Improve OnionConnector backoff and retry behavior 2016-11-06 19:35:15 -07:00
ricochet.go core: Reuse protobuf structures for configuration 2017-09-24 16:59:44 -06:00
rpcserver.go core: Minor fixes for inbound contact requests 2017-08-11 18:04:28 -06:00
sanitize.go core: Actually define maximum nick/message lengths 2016-12-27 17:56:44 -07:00