diff options
-rw-r--r-- | .gitignore | 21 | ||||
-rw-r--r-- | COPYING | 20 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | client.c | 34 | ||||
-rw-r--r-- | configure.ac | 9 | ||||
-rw-r--r-- | icclient/client.h | 15 |
6 files changed, 103 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f3cf82c --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +*~ +*.a +*.o +*.swp +.deps +Makefile +Makefile.am.user +Makefile.in +aclocal.m4 +ar-lib +autom4te.cache +compile +config.h +config.h.in +config.log +config.status +configure +depcomp +install-sh +missing +stamp-h1 @@ -0,0 +1,20 @@ +Copyright (c) 2019 Erik Prabowo Kamal + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..942a013 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,4 @@ +noinst_LIBRARIES = libicclient.a +libicclient_a_SOURCES = \ + icclient/client.h \ + client.c diff --git a/client.c b/client.c new file mode 100644 index 0000000..2213ebf --- /dev/null +++ b/client.c @@ -0,0 +1,34 @@ +#include <stdbool.h> +#include <string.h> +#include <stdlib.h> +#include <curl/curl.h> +#include "icclient/client.h" + +CURL *curl = NULL; +char *server_url = NULL; + +bool icclient_init(const char *url) +{ + curl_global_init(CURL_GLOBAL_SSL); + curl = curl_easy_init(); + if (curl) { + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(curl, CURLOPT_COOKIEFILE, ""); +#ifdef DEBUG + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); +#endif + server_url = malloc(strlen(url) + 1); + strcpy(server_url, url); + } + + return (bool)curl; +} + +void icclient_cleanup() +{ + if (curl) { + free(server_url); + curl_easy_cleanup(curl); + } + curl_global_cleanup(); +} diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..84a8f08 --- /dev/null +++ b/configure.ac @@ -0,0 +1,9 @@ +AC_INIT([libicclient], [0.0], [rt@darapsa.co.id]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign]) +AC_PROG_CC +AC_PROG_RANLIB +AM_PROG_AR +AC_CONFIG_HEADERS([config.h]) +AC_CHECK_HEADER_STDBOOL +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/icclient/client.h b/icclient/client.h new file mode 100644 index 0000000..9273987 --- /dev/null +++ b/icclient/client.h @@ -0,0 +1,15 @@ +#ifndef ICCLIENT_H +#define ICCLIENT_H + +#ifdef __cplusplus +extern "C" { +#endif + + bool icclient_init(const char *url); + void icclient_cleanup(); + +#ifdef __cplusplus +} +#endif + +#endif // ICCLIENT_H |