aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pacredir.c44
-rw-r--r--pacredir.h83
2 files changed, 85 insertions, 42 deletions
diff --git a/pacredir.c b/pacredir.c
index d382a75..62e3b04 100644
--- a/pacredir.c
+++ b/pacredir.c
@@ -32,48 +32,8 @@
/* compile time configuration */
#include "config.h"
-/* services */
-struct services {
- /* true if host/service is online */
- uint8_t online;
- /* unix timestamp of last bad request */
- __time_t bad;
-};
-
-/* hosts */
-struct hosts {
- /* host name */
- char * host;
- /* online status and bad time for services */
- struct services pacserve;
- struct services pacdbserve;
- /* pointer to next struct element */
- struct hosts * next;
-};
-
-/* ignore interfaces */
-struct ignore_interfaces {
- /* interface name */
- char * interface;
- /* pointer to next struct element */
- struct ignore_interfaces * next;
-};
-
-/* request */
-struct request {
- /* host name */
- const char * host;
- /* port */
- uint16_t port;
- /* pointer to bad */
- __time_t * bad;
- /* url */
- char * url;
- /* HTTP status code */
- long http_code;
- /* last modified timestamp */
- long last_modified;
-};
+/* define structs and functions */
+#include "pacredir.h"
/* global variables */
struct hosts * hosts = NULL;
diff --git a/pacredir.h b/pacredir.h
new file mode 100644
index 0000000..6922f0d
--- /dev/null
+++ b/pacredir.h
@@ -0,0 +1,83 @@
+/*
+ * (C) 2013 by Christian Hesse <mail@eworm.de>
+ *
+ * This software may be used and distributed according to the terms
+ * of the GNU General Public License, incorporated herein by reference.
+ */
+
+#ifndef _PACREDIR_H
+#define _PACREDIR_H
+
+/* services */
+struct services {
+ /* true if host/service is online */
+ uint8_t online;
+ /* unix timestamp of last bad request */
+ __time_t bad;
+};
+
+/* hosts */
+struct hosts {
+ /* host name */
+ char * host;
+ /* online status and bad time for services */
+ struct services pacserve;
+ struct services pacdbserve;
+ /* pointer to next struct element */
+ struct hosts * next;
+};
+
+/* ignore interfaces */
+struct ignore_interfaces {
+ /* interface name */
+ char * interface;
+ /* pointer to next struct element */
+ struct ignore_interfaces * next;
+};
+
+/* request */
+struct request {
+ /* host name */
+ const char * host;
+ /* port */
+ uint16_t port;
+ /* pointer to bad */
+ __time_t * bad;
+ /* url */
+ char * url;
+ /* HTTP status code */
+ long http_code;
+ /* last modified timestamp */
+ long last_modified;
+};
+
+/* write_log */
+int write_log(FILE *stream, const char *format, ...);
+/* get_fqdn */
+char * get_fqdn(const char * hostname, const char * domainname);
+
+/* add_host */
+int add_host(const char * host, const char * type);
+/* remove_host */
+int remove_host(const char * host, const char * type);
+
+/* browse_callback */
+static void browse_callback(AvahiServiceBrowser *b, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char *name,
+ const char *type, const char *domain, AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, void* userdata);
+/* client_callback */
+static void client_callback(AvahiClient *c, AvahiClientState state, AVAHI_GCC_UNUSED void * userdata);
+
+/* get_http_code */
+static void * get_http_code(void * data);
+/* ahc_echo */
+static int ahc_echo(void * cls, struct MHD_Connection * connection, const char * uri, const char * method,
+ const char * version, const char * upload_data, size_t * upload_data_size, void ** ptr);
+
+/* sig_callback */
+void sig_callback(int signal);
+/* sighup_callback */
+void sighup_callback(int signal);
+
+#endif /* _PACREDIR_H */
+
+// vim: set syntax=c: