body);\r
}\r
else if (CheckCommand(cmd, "sharesession")) {\r
- CHECK_ARGS(2, "<user_id> <device_id>")\r
+ CHECK_ARGS(3, "<session_index> <user_id> <device_id>")\r
\r
- MatrixClientShareMegolmOutSession(&client,\r
- args[0],\r
+ int sessionIndex = atoi(args[0]);\r
+\r
+ MatrixClientShareMegolmOutSession(client,\r
args[1],\r
- &client->megolmOutSessions[0]);\r
+ args[2],\r
+ &client->megolmOutSessions[sessionIndex]);\r
}\r
else if (CheckCommand(cmd, "savesession")) {\r
- CHECK_ARGS(2, "<filename> <key>")\r
+ CHECK_ARGS(3, "<session_index> <filename> <key>")\r
+\r
+ int sessionIndex = atoi(args[0]);\r
\r
MatrixMegolmOutSessionSave(\r
- &client->megolmOutSessions[0],\r
- args[0],\r
- args[1]);\r
+ &client->megolmOutSessions[sessionIndex],\r
+ args[1],\r
+ args[2]);\r
}\r
else if (CheckCommand(cmd, "loadsession")) {\r
- CHECK_ARGS(2, "<filename> <key>")\r
+ CHECK_ARGS(3, "<session_index> <filename> <key>")\r
+\r
+ int sessionIndex = atoi(args[0]);\r
\r
MatrixMegolmOutSessionLoad(\r
- &client->megolmOutSessions[0],\r
- args[0],\r
- args[1]);\r
+ &client->megolmOutSessions[sessionIndex],\r
+ args[1],\r
+ args[2]);\r
+ }\r
+ else if (CheckCommand(cmd, "printsessions")) {\r
+ for (int i = 0; i < client->numMegolmOutSessions; i++) {\r
+ printf("%d: %s\t%s\t%s\n", i,\r
+ client->megolmOutSessions[i].roomId,\r
+ client->megolmOutSessions[i].id,\r
+ client->megolmOutSessions[i].key);\r
+ }\r
+ }\r
+ else if (CheckCommand(cmd, "initsession")) {\r
+ CHECK_ARGS(1, "<room_id>")\r
+\r
+ if (! MatrixClientInitMegolmOutSession(client,\r
+ args[0]))\r
+ {\r
+ printf("Maximum number of Megolm sessions reached (%d)\n", NUM_MEGOLM_SESSIONS);\r
+ }\r
+ }\r
+ \r
+ \r
+ else {\r
+ printf("Unknown command\n");\r
}\r
#undef CHECK_ARGS\r
}\r