static uint8_t random[MEGOLM_INIT_RANDOM_SIZE];\r
Randomize(random, MEGOLM_INIT_RANDOM_SIZE);\r
\r
- session->roomId = roomId;\r
+ strncpy(session->roomId, roomId, ROOM_ID_SIZE);\r
\r
session->session =\r
olm_outbound_group_session(session->memory);\r
size_t roomIdLen;\r
fread(&roomIdLen, sizeof(size_t), 1, f);\r
fread(session->roomId, 1, roomIdLen, f);\r
+ for (int i = roomIdLen; i < ROOM_ID_SIZE; i++)\r
+ session->roomId[i] = '\0';\r
\r
size_t pickleBufferLen;\r
fread(&pickleBufferLen, sizeof(size_t), 1, f);\r
\r
free(pickleBuffer);\r
\r
+ olm_outbound_group_session_id(session->session, (uint8_t *)session->id, MEGOLM_SESSION_ID_SIZE);\r
+ olm_outbound_group_session_key(session->session, (uint8_t *)session->key, MEGOLM_SESSION_KEY_SIZE);\r
+\r
fclose(f);\r
\r
return true;\r
}\r
}\r
\r
+ if (MatrixClientInitMegolmOutSession(client, roomId)) {\r
+ *outSession = &client->megolmOutSessions[client->numMegolmOutSessions-1];\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+}\r
+\r
+bool\r
+MatrixClientInitMegolmOutSession(\r
+ MatrixClient * client,\r
+ const char * roomId)\r
+{\r
if (client->numMegolmOutSessions < NUM_MEGOLM_SESSIONS)\r
{\r
MatrixMegolmOutSessionInit(\r
&client->megolmOutSessions[client->numMegolmOutSessions],\r
roomId);\r
-\r
- *outSession = &client->megolmOutSessions[client->numMegolmOutSessions];\r
\r
client->numMegolmOutSessions++;\r
\r
return true;\r
}\r
-\r
return false;\r
}\r
\r