Code

frontend/grammar: Added sdb_fe_yyerrorf() helper.
[sysdb.git] / src / frontend / connection-private.h
index a874751299ea0818635c4e542705a6fea6bb8983..042091a997044a712c4de1d4c45fe734b1406348 100644 (file)
@@ -81,6 +81,12 @@ struct sdb_conn {
  * node types
  */
 
+typedef struct {
+       sdb_conn_node_t super;
+       sdb_store_expr_t *expr;
+} conn_expr_t;
+#define CONN_EXPR(obj) ((conn_expr_t *)(obj))
+
 typedef struct {
        sdb_conn_node_t super;
        sdb_store_matcher_t *matcher;
@@ -89,19 +95,23 @@ typedef struct {
 
 typedef struct {
        sdb_conn_node_t super;
+       int type;
        conn_matcher_t *filter;
 } conn_list_t;
 #define CONN_LIST(obj) ((conn_list_t *)(obj))
 
 typedef struct {
        sdb_conn_node_t super;
-       char *name;
+       int type;
+       char *host;
+       char *name; /* NULL for type == SDB_HOST */
        conn_matcher_t *filter;
 } conn_fetch_t;
 #define CONN_FETCH(obj) ((conn_fetch_t *)(obj))
 
 typedef struct {
        sdb_conn_node_t super;
+       int type;
        conn_matcher_t *matcher;
        conn_matcher_t *filter;
 } conn_lookup_t;
@@ -119,6 +129,12 @@ typedef struct {
  * type helper functions
  */
 
+static void __attribute__((unused))
+conn_expr_destroy(sdb_object_t *obj)
+{
+       sdb_object_deref(SDB_OBJ(CONN_EXPR(obj)->expr));
+} /* conn_expr_destroy */
+
 static void __attribute__((unused))
 conn_matcher_destroy(sdb_object_t *obj)
 {
@@ -134,6 +150,8 @@ conn_list_destroy(sdb_object_t *obj)
 static void __attribute__((unused))
 conn_fetch_destroy(sdb_object_t *obj)
 {
+       if (CONN_FETCH(obj)->host)
+               free(CONN_FETCH(obj)->host);
        if (CONN_FETCH(obj)->name)
                free(CONN_FETCH(obj)->name);
        sdb_object_deref(SDB_OBJ(CONN_FETCH(obj)->filter));