X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Ffrontend%2Fconnection-private.h;h=03e58e5e51e25fa4bf9ea747d2f2607f259c9b86;hp=a874751299ea0818635c4e542705a6fea6bb8983;hb=e98b8be3912212943863522fa466edc131993d70;hpb=51069603a7b8d90e222508cbd67dcc5f231289ad diff --git a/src/frontend/connection-private.h b/src/frontend/connection-private.h index a874751..03e58e5 100644 --- a/src/frontend/connection-private.h +++ b/src/frontend/connection-private.h @@ -35,8 +35,8 @@ #include "frontend/connection.h" #include "core/object.h" -#include "core/store.h" #include "core/timeseries.h" +#include "utils/ssl.h" #include "utils/strbuf.h" #include @@ -58,6 +58,12 @@ struct sdb_conn { struct sockaddr_storage client_addr; socklen_t client_addr_len; + /* connection handling */ + ssize_t (*read)(sdb_conn_t *, size_t); + ssize_t (*write)(sdb_conn_t *, const void *, size_t); + int (*finish)(sdb_conn_t *); + sdb_ssl_session_t *ssl_session; + /* read buffer */ sdb_strbuf_t *buf; @@ -73,88 +79,10 @@ struct sdb_conn { /* user information */ char *username; /* NULL if the user has not been authenticated */ - _Bool ready; /* indicates that startup finished successfully */ + bool ready; /* indicates that startup finished successfully */ }; #define CONN(obj) ((sdb_conn_t *)(obj)) -/* - * node types - */ - -typedef struct { - sdb_conn_node_t super; - sdb_store_matcher_t *matcher; -} conn_matcher_t; -#define CONN_MATCHER(obj) ((conn_matcher_t *)(obj)) - -typedef struct { - sdb_conn_node_t super; - conn_matcher_t *filter; -} conn_list_t; -#define CONN_LIST(obj) ((conn_list_t *)(obj)) - -typedef struct { - sdb_conn_node_t super; - char *name; - conn_matcher_t *filter; -} conn_fetch_t; -#define CONN_FETCH(obj) ((conn_fetch_t *)(obj)) - -typedef struct { - sdb_conn_node_t super; - conn_matcher_t *matcher; - conn_matcher_t *filter; -} conn_lookup_t; -#define CONN_LOOKUP(obj) ((conn_lookup_t *)(obj)) - -typedef struct { - sdb_conn_node_t super; - char *hostname; - char *metric; - sdb_timeseries_opts_t opts; -} conn_ts_t; -#define CONN_TS(obj) ((conn_ts_t *)(obj)) - -/* - * type helper functions - */ - -static void __attribute__((unused)) -conn_matcher_destroy(sdb_object_t *obj) -{ - sdb_object_deref(SDB_OBJ(CONN_MATCHER(obj)->matcher)); -} /* conn_matcher_destroy */ - -static void __attribute__((unused)) -conn_list_destroy(sdb_object_t *obj) -{ - sdb_object_deref(SDB_OBJ(CONN_LIST(obj)->filter)); -} /* conn_list_destroy */ - -static void __attribute__((unused)) -conn_fetch_destroy(sdb_object_t *obj) -{ - if (CONN_FETCH(obj)->name) - free(CONN_FETCH(obj)->name); - sdb_object_deref(SDB_OBJ(CONN_FETCH(obj)->filter)); -} /* conn_fetch_destroy */ - -static void __attribute__((unused)) -conn_lookup_destroy(sdb_object_t *obj) -{ - sdb_object_deref(SDB_OBJ(CONN_LOOKUP(obj)->matcher)); - sdb_object_deref(SDB_OBJ(CONN_LOOKUP(obj)->filter)); -} /* conn_lookup_destroy */ - -static void __attribute__((unused)) -conn_ts_destroy(sdb_object_t *obj) -{ - if (CONN_TS(obj)->hostname) - free(CONN_TS(obj)->hostname); - if (CONN_TS(obj)->metric) - free(CONN_TS(obj)->metric); -} /* conn_ts_destroy */ - #ifdef __cplusplus } /* extern "C" */ #endif