Skip to content

Build an events mechanism for client components to communicate with eachother

h1. Inter process communication

Communication will be done by sockets. A random key will be shared among all the components that the main launcher will execute. This key will be use as a part of a MAC method to avoid rogue notifications.

  • MAC method: HMAC
  • Encryption optional

Message structure (|| is concat):

may be a "magic number" for message start? || Message-length (two bytes) || message

message Notification {
    required int32 id
    required string content
    required string mac_method
    required bytes mac
    optional string enc_method
    optional bool error_occurred
}

Messages:

  
1    client session_id
2    client uid
3    soledad creating_keys
4    soledad done_creating_keys
5    soledad uploading_keys
6    soledad done_uploading_keys
7    soledad downloading_keys
8    soledad done_downloading_keys
9    soledad new_data_to_sync
10   soledad done_data_sync

(from redmine: created on 2013-04-01, closed on 2013-04-01)