aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/clog.c69
1 files changed, 68 insertions, 1 deletions
diff --git a/src/clog.c b/src/clog.c
index a41a308..9bce41c 100644
--- a/src/clog.c
+++ b/src/clog.c
@@ -1,22 +1,89 @@
#include <kore/kore.h>
#include <kore/http.h>
+#include <kore/pgsql.h>
#include "assets.h"
+int init(int);
int page(struct http_request *);
+/* Called when our module is loaded (see config) */
+int
+init(int state)
+{
+ /* Register our database. */
+ int err = kore_pgsql_register(
+ "db",
+ "host=127.0.0.1 port=5432 user=postgres password=p0stgres dbname=clog sslmode=disable"
+ );
+ // kore_pgsql_register("db", "host=/tmp dbname=clog");
+
+ return (err);
+}
+
int page(struct http_request *req)
{
+
struct kore_buf *buf;
buf = kore_buf_alloc(2048);
kore_buf_append(buf, asset_index_begin_html, asset_len_index_begin_html);
+
+ /* sql stuff */
+ struct kore_pgsql sql;
+ // char *name;
+ // int rows, i;
+
+ /* req->status = HTTP_STATUS_INTERNAL_ERROR; */
+
+ kore_pgsql_init(&sql);
+
+ /*
+ * Initialise our kore_pgsql data structure with the database name
+ * we want to connect to (note that we registered this earlier with
+ * kore_pgsql_register()). We also say we will perform a synchronous
+ * query (KORE_PGSQL_SYNC).
+ */
+ int err = kore_pgsql_setup(&sql, "db", KORE_PGSQL_SYNC);
+ kore_log(1, "kore_pgsql_setup: %d", err);
+ kore_log(1, "sql->state: %d", sql.state);
+ if (!err) {
+ kore_log(1, "here1!");
+ kore_pgsql_logerror(&sql);
+ goto out;
+ }
+
+ kore_log(1, "here!");
+
+// /*
+// * Now we can fire off the query, once it returns we either have
+// * a result on which we can operate or an error occurred.
+// */
+// if (!kore_pgsql_query(&sql, "SELECT * FROM coders")) {
+// kore_pgsql_logerror(&sql);
+// goto out;
+// }
+//
+// /*
+// * Iterate over the result and dump it to somewhere.
+// */
+// rows = kore_pgsql_ntuples(&sql);
+// for (i = 0; i < rows; i++) {
+// name = kore_pgsql_getvalue(&sql, i, 0);
+// kore_log(LOG_NOTICE, "name: '%s'", name);
+// }
+
+out: ;
+
kore_buf_append(buf, asset_index_end_html, asset_len_index_end_html);
http_response_header(req, "content-type", "text/html; charset=utf-8");
- http_response(req, 200, buf->data, buf->offset);
+ http_response(req, HTTP_STATUS_OK, buf->data, buf->offset);
// http_response_stream ???
kore_buf_free(buf);
+ /* Don't forget to cleanup the kore_pgsql data structure. */
+ kore_pgsql_cleanup(&sql);
+
return (KORE_RESULT_OK);
}