#include <stdio.h>\r
#include <matrix.h>\r
-#include <mongoose.h>\r
\r
#define SERVER "https://matrix.org"\r
#define USERNAME "pscho"\r
main()\r
{\r
MatrixClient client;\r
- MatrixClientInit(&client, SERVER, strlen(SERVER));\r
+ MatrixClientInit(&client,\r
+ SERVER);\r
\r
MatrixHttpInit(&client);\r
\r
MatrixClientLoginPassword(&client,\r
- USERNAME, strlen(USERNAME),\r
- PASSWORD, strlen(PASSWORD),\r
- DISPLAYNAME, strlen(DISPLAYNAME));\r
+ USERNAME,\r
+ PASSWORD,\r
+ DISPLAYNAME);\r
\r
- printf("Access Token: %.*s\n", client.accessTokenLen, client.accessTokenBuffer);\r
- printf("Device ID: %.*s\n", client.deviceIdLen, client.deviceIdBuffer);\r
- printf("Expires in (ms): %.*s\n", client.expireMsLen, client.expireMsBuffer);\r
- printf("Refresh Token: %.*s\n", client.refreshTokenLen, client.refreshTokenBuffer);\r
+ printf("Access Token: %s\n", client.accessTokenBuffer);\r
+ printf("Device ID: %s\n", client.deviceIdBuffer);\r
+ printf("Expires in (ms): %s\n", client.expireMsBuffer);\r
+ printf("Refresh Token: %s\n", client.refreshTokenBuffer);\r
\r
MatrixHttpDeinit(&client);\r
\r
#include <matrix.h>\r
\r
-#define SERVER FixedBuf("matrix.org")\r
-#define ACCESS_TOKEN FixedBuf("abc")\r
-#define ROOM_ID FixedBuf("!jhpZBTbckszblMYjMK:matrix.org")\r
+#define SERVER "matrix.org"\r
+#define ACCESS_TOKEN "syt_cHNjaG8_yBvTjVTquGCikvsAenOJ_49mBMO"\r
+#define DEVICE_ID "MAZNCCZLBR"\r
+#define ROOM_ID "!jhpZBTbckszblMYjMK:matrix.org"\r
\r
int\r
-main(\r
- int argc,\r
- char **argv)\r
+main()\r
{\r
MatrixClient client;\r
MatrixClientCreate(&client,\r
- SERVER);\r
+ SERVER, strlen(SERVER));\r
+ \r
+ MatrixHttpInit(&client);\r
\r
MatrixClientSetAccessToken(&client,\r
- ACCESS_TOKEN);\r
+ ACCESS_TOKEN, strlen(ACCESS_TOKEN));\r
\r
MatrixClientSendEvent(&client,\r
ROOM_ID,\r
- FixedBuf("m.room.message"),\r
- FixedBuf("{\"body\":\"Hello\",\"msgtype\":\"m.text\"}"));\r
+ "m.room.message",\r
+ "{\"body\":\"Hello\",\"msgtype\":\"m.text\"}");\r
\r
return 0;\r
}
\ No newline at end of file
bool\r
MatrixClientInit(\r
MatrixClient * client,\r
- char * server, int serverLen)\r
+ const char * server)\r
{\r
strcpy_s(\r
client->server,\r
SERVER_SIZE,\r
server\r
);\r
- client->serverLen = serverLen;\r
\r
return true;\r
}\r
bool\r
MatrixClientLoginPassword(\r
MatrixClient * client,\r
- char * username, int usernameLen,\r
- char * password, int passwordLen,\r
- char * displayName, int displayNameLen)\r
+ const char * username,\r
+ const char * password,\r
+ const char * displayName)\r
{\r
static char requestBuffer[LOGIN_REQUEST_SIZE];\r
\r
- int requestLen =\r
- mjson_snprintf(requestBuffer, LOGIN_REQUEST_SIZE,\r
- "{"\r
- "\"type\": \"m.login.password\","\r
- "\"identifier\": {"\r
- "\"type\": \"m.id.user\","\r
- "\"user\": \"%.*s\""\r
- "},"\r
- "\"password\": \"%.*s\","\r
- "\"initial_device_display_name\": \"%.*s\""\r
- "}",\r
- usernameLen, username,\r
- passwordLen, password,\r
- displayNameLen, displayName);\r
+ mjson_snprintf(requestBuffer, LOGIN_REQUEST_SIZE,\r
+ "{"\r
+ "\"type\": \"m.login.password\","\r
+ "\"identifier\": {"\r
+ "\"type\": \"m.id.user\","\r
+ "\"user\": \"%s\""\r
+ "},"\r
+ "\"password\": \"%s\","\r
+ "\"initial_device_display_name\": \"%s\""\r
+ "}",\r
+ username,\r
+ password,\r
+ displayName);\r
\r
static char responseBuffer[LOGIN_RESPONSE_SIZE];\r
- int responseLen;\r
bool result =\r
MatrixHttpPost(client,\r
LOGIN_URL,\r
- requestBuffer, requestLen,\r
- responseBuffer, LOGIN_RESPONSE_SIZE, &responseLen);\r
+ requestBuffer,\r
+ responseBuffer, LOGIN_RESPONSE_SIZE);\r
+ \r
+ int responseLen = strlen(responseBuffer);\r
\r
if (!result)\r
return false;\r
\r
- client->accessTokenLen =\r
- mjson_get_string(responseBuffer, responseLen,\r
- "$.access_token",\r
- client->accessTokenBuffer, ACCESS_TOKEN_SIZE);\r
- client->deviceIdLen =\r
- mjson_get_string(responseBuffer, responseLen,\r
- "$.device_id",\r
- client->deviceIdBuffer, DEVICE_ID_SIZE);\r
- client->expireMsLen =\r
- mjson_get_string(responseBuffer, responseLen,\r
- "$.expires_in_ms",\r
- client->expireMsBuffer, EXPIRE_MS_SIZE);\r
- client->refreshTokenLen =\r
- mjson_get_string(responseBuffer, responseLen,\r
- "$.refresh_token",\r
- client->refreshTokenBuffer, REFRESH_TOKEN_SIZE);\r
+ mjson_get_string(responseBuffer, responseLen,\r
+ "$.access_token",\r
+ client->accessTokenBuffer, ACCESS_TOKEN_SIZE);\r
+ mjson_get_string(responseBuffer, responseLen,\r
+ "$.device_id",\r
+ client->deviceIdBuffer, DEVICE_ID_SIZE);\r
+ mjson_get_string(responseBuffer, responseLen,\r
+ "$.expires_in_ms",\r
+ client->expireMsBuffer, EXPIRE_MS_SIZE);\r
+ mjson_get_string(responseBuffer, responseLen,\r
+ "$.refresh_token",\r
+ client->refreshTokenBuffer, REFRESH_TOKEN_SIZE);\r
\r
return true;\r
}\r
OlmAccount * olmAccount;\r
OlmSession * olmSession;\r
\r
- char server[SERVER_SIZE]; int serverLen;\r
- char accessTokenBuffer[ACCESS_TOKEN_SIZE]; int accessTokenLen;\r
- char deviceIdBuffer[DEVICE_ID_SIZE]; int deviceIdLen;\r
- char expireMsBuffer[EXPIRE_MS_SIZE]; int expireMsLen;\r
- char refreshTokenBuffer[REFRESH_TOKEN_SIZE]; int refreshTokenLen;\r
+ char server[SERVER_SIZE];\r
+ char accessTokenBuffer[ACCESS_TOKEN_SIZE];\r
+ char deviceIdBuffer[DEVICE_ID_SIZE];\r
+ char expireMsBuffer[EXPIRE_MS_SIZE];\r
+ char refreshTokenBuffer[REFRESH_TOKEN_SIZE];\r
\r
void * httpUserData;\r
} MatrixClient;\r
bool\r
MatrixClientInit(\r
MatrixClient * client,\r
- char * server, int serverLen);\r
+ const char * server);\r
\r
bool\r
MatrixClientLoginPassword(\r
MatrixClient * client,\r
- char * username, int usernameLen,\r
- char * password, int passwordLen,\r
- char * displayName, int displayNameLen);\r
+ const char * username,\r
+ const char * password,\r
+ const char * displayName);\r
\r
bool\r
MatrixHttpInit(\r
MatrixHttpGet(\r
MatrixClient * client,\r
const char * url,\r
- char * outResponseBuffer, int outResponseCap, int * outResponseLen);\r
+ char * outResponseBuffer, int outResponseCap);\r
\r
bool\r
MatrixHttpPost(\r
MatrixClient * client,\r
const char * url,\r
- char * requestBuffer, int requestLen,\r
- char * outResponseBuffer, int outResponseCap, int * outResponseLen);\r
+ const char * requestBuffer,\r
+ char * outResponseBuffer, int outResponseCap);\r
\r
#endif\r
MatrixHttpGet(\r
MatrixClient * client,\r
const char * url,\r
- char * outResponseBuffer, int outResponseCap, int * outResponseLen)\r
+ char * outResponseBuffer, int outResponseCap)\r
{\r
MatrixHttpConnection * conn = (MatrixHttpConnection *)client->httpUserData;\r
\r
while (! conn->dataReceived)\r
mg_mgr_poll(&conn->mgr, 1000);\r
\r
- *outResponseLen = conn->dataLen;\r
-\r
return conn->dataReceived;\r
}\r
\r
MatrixHttpPost(\r
MatrixClient * client,\r
const char * url,\r
- char * requestBuffer, int requestLen,\r
- char * outResponseBuffer, int outResponseCap, int * outResponseLen)\r
+ const char * requestBuffer,\r
+ char * outResponseBuffer, int outResponseCap)\r
{\r
MatrixHttpConnection * conn = (MatrixHttpConnection *)client->httpUserData;\r
\r
"\r\n",\r
url,\r
host.len, host.ptr,\r
- requestLen,\r
+ strlen(requestBuffer),\r
requestBuffer);\r
\r
conn->data = outResponseBuffer;\r
while (! conn->dataReceived)\r
mg_mgr_poll(&conn->mgr, 1000);\r
\r
- *outResponseLen = conn->dataLen;\r
-\r
return conn->dataReceived;\r
}
\ No newline at end of file