X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=flx.h;h=d60dede029c39b6c4d67ade7f8ebe22520ce8265;hb=ba8547ee3f34d8fe7bedb559530b2c0374f2089c;hp=1debd89e069522baec73722a103cd17ae675e5ab;hpb=ad1f9d3725a300f10eca071c6fe2f2c583f51436;p=catta diff --git a/flx.h b/flx.h index 1debd89..d60dede 100644 --- a/flx.h +++ b/flx.h @@ -4,12 +4,18 @@ #include #include -struct _flxServer; typedef struct _flxServer flxServer; #include "address.h" #include "rr.h" +typedef enum { + FLX_SERVER_ENTRY_NULL = 0, + FLX_SERVER_ENTRY_UNIQUE = 1, + FLX_SERVER_ENTRY_NOPROBE = 2, + FLX_SERVER_ENTRY_NOANNOUNCE = 4 +} flxServerEntryFlags; + flxServer *flx_server_new(GMainContext *c); void flx_server_free(flxServer* s); @@ -20,28 +26,24 @@ void flx_server_add( gint id, gint interface, guchar protocol, - gboolean unique, + flxServerEntryFlags flags, flxRecord *r); -void flx_server_add_full( +void flx_server_add_ptr( flxServer *s, gint id, gint interface, guchar protocol, - gboolean unique, + flxServerEntryFlags flags, const gchar *name, - guint16 class, - guint16 type, - gconstpointer data, - guint size, - guint32 ttl); + const gchar *dest); void flx_server_add_address( flxServer *s, gint id, gint interface, guchar protocol, - gboolean unique, + flxServerEntryFlags flags, const gchar *name, flxAddress *a); @@ -50,14 +52,48 @@ void flx_server_add_text( gint id, gint interface, guchar protocol, - gboolean unique, + flxServerEntryFlags flags, + const gchar *name, + ... /* text records, terminated by NULL */); + +void flx_server_add_text_va( + flxServer *s, + gint id, + gint interface, + guchar protocol, + flxServerEntryFlags flags, + const gchar *name, + va_list va); + +void flx_server_add_service( + flxServer *s, + gint id, + gint interface, + guchar protocol, + const gchar *type, + const gchar *name, + const gchar *domain, + const gchar *host, + guint16 port, + ... /* text records, terminated by NULL */); + +void flx_server_add_service_va( + flxServer *s, + gint id, + gint interface, + guchar protocol, + const gchar *type, const gchar *name, - const gchar *text); + const gchar *domain, + const gchar *host, + guint16 port, + va_list va); + void flx_server_remove(flxServer *s, gint id); void flx_server_post_query(flxServer *s, gint interface, guchar protocol, flxKey *key); -void flx_server_post_response(flxServer *s, gint interface, guchar protocol, flxRecord *record); +void flx_server_post_response(flxServer *s, gint interface, guchar protocol, flxRecord *record, gboolean flush_cache); const flxRecord *flx_server_iterate(flxServer *s, gint id, void **state);