1 #ifndef __GSK_DNS_CLIENT_H_ 2 #define __GSK_DNS_CLIENT_H_ 3 4 #include "gskdns.h" 5 #include "gskdnsrrcache.h" 6 #include "../gskpacketqueue.h" 7 #include <glib-object.h> 8 9 G_BEGIN_DECLS 10 11 /* --- typedefs --- */ 12 typedef struct _GskDnsClient GskDnsClient; 13 typedef struct _GskDnsClientClass GskDnsClientClass; 14 15 /* --- type macros --- */ 16 GType gsk_dns_client_get_type(void) G_GNUC_CONST; 17 #define GSK_TYPE_DNS_CLIENT (gsk_dns_client_get_type ()) 18 #define GSK_DNS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_DNS_CLIENT, GskDnsClient)) 19 #define GSK_DNS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_DNS_CLIENT, GskDnsClientClass)) 20 #define GSK_DNS_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_DNS_CLIENT, GskDnsClientClass)) 21 #define GSK_IS_DNS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_DNS_CLIENT)) 22 #define GSK_IS_DNS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_DNS_CLIENT)) 23 24 /* --- prototypes --- */ 25 typedef enum 26 { 27 GSK_DNS_CLIENT_STUB_RESOLVER = (1<<0) 28 } GskDnsClientFlags; 29 30 GskDnsClient *gsk_dns_client_new (GskPacketQueue *packet_queue, 31 GskDnsRRCache *rr_cache, 32 GskDnsClientFlags flags); 33 void gsk_dns_client_add_searchpath(GskDnsClient *client, 34 const char *searchpath); 35 void gsk_dns_client_add_ns (GskDnsClient *client, 36 GskSocketAddressIpv4 *address); 37 void gsk_dns_client_set_cache (GskDnsClient *client, 38 GskDnsRRCache *rr_cache); 39 void gsk_dns_client_set_flags (GskDnsClient *client, 40 GskDnsClientFlags flags); 41 GskDnsClientFlags gsk_dns_client_get_flags (GskDnsClient *client); 42 gboolean gsk_dns_client_parse_system_files(GskDnsClient *client); 43 44 45 G_END_DECLS 46 47 #endif 48