summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/heartbeat.h51
-rw-r--r--modules/cluster/mod_heartmonitor.c12
-rw-r--r--modules/proxy/balancers/mod_lbmethod_heartbeat.c11
3 files changed, 53 insertions, 21 deletions
diff --git a/include/heartbeat.h b/include/heartbeat.h
new file mode 100644
index 0000000000..8d897bb767
--- /dev/null
+++ b/include/heartbeat.h
@@ -0,0 +1,51 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef HEARTBEAT_H
+#define HEARTBEAT_H
+
+/**
+ * @file heartbeat.h
+ * @brief commun structures for mod_heartmonitor.c and mod_lbmethod_heartbeat.c
+ *
+ * @defgroup HEARTBEAT mem
+ * @ingroup APACHE_MODS
+ * @{
+ */
+
+#include "apr.h"
+#include "apr_time.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAXIPSIZE 64
+typedef struct hm_slot_server_t
+{
+ char ip[MAXIPSIZE];
+ int busy;
+ int ready;
+ apr_time_t seen;
+ int id;
+} hm_slot_server_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/** @} */
diff --git a/modules/cluster/mod_heartmonitor.c b/modules/cluster/mod_heartmonitor.c
index 0b42baa33d..41137bf085 100644
--- a/modules/cluster/mod_heartmonitor.c
+++ b/modules/cluster/mod_heartmonitor.c
@@ -26,6 +26,7 @@
#include "scoreboard.h"
#include "mod_watchdog.h"
#include "ap_slotmem.h"
+#include "heartbeat.h"
#ifndef HM_UPDATE_SEC
@@ -36,8 +37,6 @@
#define HM_WATHCHDOG_NAME ("_heartmonitor_")
-#define MAXIPSIZE 64
-
const ap_slotmem_provider_t *storage = NULL;
static ap_slotmem_instance_t *slotmem = NULL;
static int maxworkers = 0;
@@ -52,15 +51,6 @@ typedef struct hm_server_t
apr_time_t seen;
} hm_server_t;
-typedef struct hm_slot_server_t
-{
- char ip[MAXIPSIZE];
- int busy;
- int ready;
- apr_time_t seen;
- int id;
-} hm_slot_server_t;
-
typedef struct hm_ctx_t
{
int active;
diff --git a/modules/proxy/balancers/mod_lbmethod_heartbeat.c b/modules/proxy/balancers/mod_lbmethod_heartbeat.c
index a04e5aaa71..dd2fbf8a5b 100644
--- a/modules/proxy/balancers/mod_lbmethod_heartbeat.c
+++ b/modules/proxy/balancers/mod_lbmethod_heartbeat.c
@@ -20,6 +20,7 @@
#include "apr_version.h"
#include "apr_hooks.h"
#include "ap_slotmem.h"
+#include "heartbeat.h"
#ifndef LBM_HEARTBEAT_MAX_LASTSEEN
/* If we haven't seen a heartbeat in the last N seconds, don't count this IP
@@ -51,16 +52,6 @@ typedef struct hb_server_t {
proxy_worker *worker;
} hb_server_t;
-#define MAXIPSIZE 64
-typedef struct hm_slot_server_t
-{
- char ip[MAXIPSIZE];
- int busy;
- int ready;
- apr_time_t seen;
- int id;
-} hm_slot_server_t;
-
static void
argstr_to_table(apr_pool_t *p, char *str, apr_table_t *parms)
{