From 91bffad1e8afef36eedf51b50a80a7edf6400f7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Sun, 14 Nov 2021 14:34:53 +0800 Subject: Copy the credentials when logging in (POST) because otherwise they would get lost before posted. --- admin.cxx | 15 ++++++++++++++- member.cxx | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/admin.cxx b/admin.cxx index b391ff8..2cbd7ae 100644 --- a/admin.cxx +++ b/admin.cxx @@ -1,11 +1,24 @@ +#include #include #include "qicclient/admin.hxx" namespace QICClient { + static char *unCopy, *pwCopy; + void Admin::logIn(QString const& username, QString const& password) { - icclient_admin_login(username.toLatin1().constData(), password.toLatin1().constData(), nullptr, nullptr); + auto unData = username.toLatin1().constData(); + unCopy = (char*)malloc(strlen(unData) + 1); + strcpy(unCopy, unData); + auto pwData = password.toLatin1().constData(); + pwCopy = (char*)malloc(strlen(pwData) + 1); + strcpy(pwCopy, pwData); + icclient_admin_login(unCopy, pwCopy, [](icclient_response* response) { + free(unCopy); + free(pwCopy); + icclient_free_response(response); + }, nullptr); } void Admin::setUserName(QString const& userName) diff --git a/member.cxx b/member.cxx index da5c529..fb473ea 100644 --- a/member.cxx +++ b/member.cxx @@ -1,11 +1,24 @@ +#include #include #include "qicclient/member.hxx" namespace QICClient { + static char *unCopy, *pwCopy; + void Member::logIn(QString const& username, QString const& password) { - icclient_member_login(username.toLatin1().constData(), password.toLatin1().constData(), nullptr, nullptr); + auto unData = username.toLatin1().constData(); + unCopy = (char*)malloc(strlen(unData) + 1); + strcpy(unCopy, unData); + auto pwData = password.toLatin1().constData(); + pwCopy = (char*)malloc(strlen(pwData) + 1); + strcpy(pwCopy, pwData); + icclient_member_login(unCopy, pwCopy, [](icclient_response* response) { + free(unCopy); + free(pwCopy); + icclient_free_response(response); + }, nullptr); } void Member::setUserName(QString const& userName) -- cgit v1.2.3