summaryrefslogtreecommitdiff
path: root/login.h
diff options
context:
space:
mode:
Diffstat (limited to 'login.h')
-rw-r--r--login.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/login.h b/login.h
new file mode 100644
index 0000000..a9dbe43
--- /dev/null
+++ b/login.h
@@ -0,0 +1,49 @@
+#ifndef ICCLIENT_LOGIN_H
+#define ICCLIENT_LOGIN_H
+
+#include "request.h"
+
+inline void login(const char *username, const char *password, const char *verify
+ , const char *click, const char *successpage, const char *nextpage
+ , const char *failpage)
+{
+ struct curl_httppost *post, *last = NULL;
+ curl_formadd(&post, &last
+ , CURLFORM_COPYNAME, "mv_username"
+ , CURLFORM_PTRCONTENTS, username
+ , CURLFORM_END);
+ curl_formadd(&post, &last
+ , CURLFORM_COPYNAME, "mv_password"
+ , CURLFORM_PTRCONTENTS, password
+ , CURLFORM_END);
+ if (verify)
+ curl_formadd(&post, &last
+ , CURLFORM_COPYNAME, "mv_verify"
+ , CURLFORM_PTRCONTENTS, verify
+ , CURLFORM_END);
+ curl_formadd(&post, &last
+ , CURLFORM_COPYNAME, "mv_click"
+ , CURLFORM_PTRCONTENTS, click
+ , CURLFORM_END);
+ if (successpage)
+ curl_formadd(&post, &last
+ , CURLFORM_COPYNAME, "mv_successpage"
+ , CURLFORM_PTRCONTENTS, successpage
+ , CURLFORM_END);
+ if (nextpage)
+ curl_formadd(&post, &last
+ , CURLFORM_COPYNAME, "mv_nextpage"
+ , CURLFORM_PTRCONTENTS, nextpage
+ , CURLFORM_END);
+ if (failpage)
+ curl_formadd(&post, &last
+ , CURLFORM_COPYNAME, "mv_failpage"
+ , CURLFORM_PTRCONTENTS, failpage
+ , CURLFORM_END);
+ last = NULL;
+ request(NULL, NULL, post, "%s", "process");
+ curl_formfree(post);
+ post = NULL;
+}
+
+#endif // ICCLIENT_LOGIN_H