index ef445d36bbbeb636bcf0a26d1355c0975b316ddb..03e58e5e51e25fa4bf9ea747d2f2607f259c9b86 100644 (file)
#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 <inttypes.h>
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;
/* user information */
char *username; /* NULL if the user has not been authenticated */
+ 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