summaryrefslogtreecommitdiff
path: root/api.c
diff options
context:
space:
mode:
Diffstat (limited to 'api.c')
-rw-r--r--api.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/api.c b/api.c
index e5b802f..0ae34e5 100644
--- a/api.c
+++ b/api.c
@@ -4,14 +4,20 @@
#include <curl/curl.h>
#include <json-c/json.h>
#include "session.h"
+#include "curl_util.h"
#include "util.h"
/* logout: return 1 if success, 0 if failed */
int matrix_logout(matrix_session *sess)
{
- char requrl[1000]; /* FIXME */
- sprintf(requrl, "%s/_matrix/client/r0/logout?access_token=%s", sess->url, sess->token);
+ char * requrl = alloc_build_string((const char *[]){
+ sess->url,
+ "/_matrix/client/r0/logout?access_token=",
+ sess->token,
+ NULL
+ });
CURLcode res = _curl_post(sess->curl, requrl, "", NULL);
+ free(requrl);
if (res == CURLE_OK)
return 1;
else
@@ -110,7 +116,7 @@ int main()
if (roomid == NULL)
puts("fail to resolv #hello:my.domain.name");
- free(roomid);
+ if (roomid) free(roomid);
/* create a room */
roomid = matrix_create_room(sess);
@@ -119,7 +125,7 @@ int main()
else
printf("create room %s\n", roomid);
- free(roomid);
+ if (roomid) free(roomid);
if (matrix_logout(sess))
puts("logout!");