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