return true;\r
}\r
\r
+bool\r
+MatrixClientSave(\r
+ MatrixClient * client,\r
+ const char * filename)\r
+{\r
+ FILE * f = fopen(filename, "w");\r
+ \r
+ fwrite(client->deviceKey, 1, DEVICE_KEY_SIZE, f);\r
+ fwrite(client->signingKey, 1, DEVICE_KEY_SIZE, f);\r
+ fwrite(client->userId, 1, USER_ID_SIZE, f);\r
+ fwrite(client->server, 1, SERVER_SIZE, f);\r
+ fwrite(client->accessToken, 1, ACCESS_TOKEN_SIZE, f);\r
+ fwrite(client->deviceId, 1, DEVICE_ID_SIZE, f);\r
+ fwrite(client->expireMs, 1, EXPIRE_MS_SIZE, f);\r
+ fwrite(client->refreshToken, 1, REFRESH_TOKEN_SIZE, f);\r
+\r
+ fwrite(&client->numDevices, sizeof(int), 1, f);\r
+ for (int i = 0; i < client->numDevices; i++) {\r
+ fwrite(client->devices[i].deviceId, 1, DEVICE_ID_SIZE, f);\r
+ fwrite(client->devices[i].deviceKey, 1, DEVICE_KEY_SIZE, f);\r
+ }\r
+\r
+ fclose(f);\r
+ return true;\r
+}\r
+\r
+bool\r
+MatrixClientLoad(\r
+ MatrixClient * client,\r
+ const char * filename)\r
+{\r
+ FILE * f = fopen(filename, "r");\r
+ \r
+ fread(client->deviceKey, 1, DEVICE_KEY_SIZE, f);\r
+ fread(client->signingKey, 1, DEVICE_KEY_SIZE, f);\r
+ fread(client->userId, 1, USER_ID_SIZE, f);\r
+ fread(client->server, 1, SERVER_SIZE, f);\r
+ fread(client->accessToken, 1, ACCESS_TOKEN_SIZE, f);\r
+ fread(client->deviceId, 1, DEVICE_ID_SIZE, f);\r
+ fread(client->expireMs, 1, EXPIRE_MS_SIZE, f);\r
+ fread(client->refreshToken, 1, REFRESH_TOKEN_SIZE, f);\r
+\r
+ fread(&client->numDevices, sizeof(int), 1, f);\r
+ for (int i = 0; i < client->numDevices; i++) {\r
+ fread(client->devices[i].deviceId, 1, DEVICE_ID_SIZE, f);\r
+ fread(client->devices[i].deviceKey, 1, DEVICE_KEY_SIZE, f);\r
+ }\r
+\r
+ fclose(f);\r
+ return true;\r
+}\r
+\r
bool\r
MatrixClientSetAccessToken(\r
MatrixClient * client,\r
\r
for (int i = 0; i < accessTokenLen; i++)\r
client->accessToken[i] = accessToken[i];\r
+ client->accessToken[accessTokenLen] = '\0';\r
\r
return true;\r
}\r
\r
for (int i = 0; i < deviceIdLen; i++)\r
client->deviceId[i] = deviceId[i];\r
+ client->deviceId[deviceIdLen] = '\0';\r
\r
return true;\r
}\r
\r
for (int i = 0; i < userIdLen; i++)\r
client->userId[i] = userId[i];\r
+ client->userId[userIdLen] = '\0';\r
\r
return true;\r
}\r