dns_get_server_state() implemented which returns the state of the DNS servers
authorMiklos Tirpak <miklos@iptel.org>
Wed, 22 Aug 2007 15:10:13 +0000 (15:10 +0000)
committerMiklos Tirpak <miklos@iptel.org>
Wed, 22 Aug 2007 15:10:13 +0000 (15:10 +0000)
core_cmd.c
dns_cache.c
dns_cache.h

index 76abaad..9012a67 100644 (file)
@@ -122,6 +122,15 @@ static const char* dns_set_server_state_doc[] = {
        "(0: all the servers are down, 1: at least one server is up)",    /* Documentation string */
        0                              /* Method signature(s) */
 };
+
+void dns_get_server_state_rpc(rpc_t* rpc, void* ctx);
+
+static const char* dns_get_server_state_doc[] = {
+       "prints the state of the DNS servers " \
+       "(0: all the servers are down, 1: at least one server is up)",  /* Documentation string */
+       0                               /* Method signature(s) */
+};
+
 #endif /* DNS_WATCHDOG_SUPPORT */
 #endif /* USE_DNS_CACHE */
 #ifdef USE_DST_BLACKLIST
@@ -573,6 +582,7 @@ rpc_export_t core_rpc_methods[] = {
 #endif /* USE_DNS_CACHE_STATS */
 #ifdef DNS_WATCHDOG_SUPPORT
        {"dns.set_server_state",   dns_set_server_state_rpc, dns_set_server_state_doc, 0 },
+       {"dns.get_server_state",   dns_get_server_state_rpc, dns_get_server_state_doc, 0 },
 #endif
 #endif
 #ifdef USE_DST_BLACKLIST
index e8d4e95..15f6d64 100644 (file)
@@ -3120,6 +3120,12 @@ void dns_set_server_state(int state)
 {
        atomic_set(dns_servers_up, state);
 }
+
+/* returns the state of the DNS servers */
+int dns_get_server_state(void)
+{
+       return atomic_get(dns_servers_up);
+}
 #endif /* DNS_WATCHDOG_SUPPORT */
 
 /* rpc functions */
@@ -3796,6 +3802,12 @@ void dns_set_server_state_rpc(rpc_t* rpc, void* ctx)
                return;
        dns_set_server_state(state);
 }
+
+/* prints the DNS server state */
+void dns_get_server_state_rpc(rpc_t* rpc, void* ctx)
+{
+       rpc->add(ctx, "d", dns_get_server_state());
+}
 #endif /* DNS_WATCHDOG_SUPPORT */
 
 #endif
index 8cba4f8..7ba3ce9 100644 (file)
@@ -327,6 +327,9 @@ void dns_cache_flush(void);
  * 0: all the servers are down
  */
 void dns_set_server_state(int state);
+
+/* returns the state of the DNS servers */
+int dns_get_server_state(void);
 #endif /* DNS_WATCHDOG_SUPPORT */
 
 #endif