blob: 98dca25c7705554ce26a21dd75b42287d08f221f [file] [log] [blame]
Willy TARREAU3dc06442006-06-15 21:48:13 +02001/*
Willy Tarreaubaaee002006-06-26 02:48:02 +02002 include/proto/checks.h
3 Functions prototypes for the checks.
4
Willy Tarreau26c25062009-03-08 09:38:41 +01005 Copyright (C) 2000-2009 Willy Tarreau - w@1wt.eu
Willy TARREAU3dc06442006-06-15 21:48:13 +02006
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation, version 2.1
10 exclusively.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20*/
21
Willy Tarreaubaaee002006-06-26 02:48:02 +020022#ifndef _PROTO_CHECKS_H
23#define _PROTO_CHECKS_H
24
25#include <types/task.h>
Willy Tarreaue3ba5f02006-06-29 18:54:54 +020026#include <common/config.h>
Christopher Faulet0108bb32017-10-20 21:34:32 +020027#include <types/mailers.h>
Willy TARREAU3dc06442006-06-15 21:48:13 +020028
Krzysztof Piotr Oledzki09605412009-09-23 22:09:24 +020029const char *get_check_status_description(short check_status);
30const char *get_check_status_info(short check_status);
Willy Tarreau9fe7aae2013-12-31 23:47:37 +010031void __health_adjust(struct server *s, short status);
Willy Tarreaubaaee002006-06-26 02:48:02 +020032
Willy Tarreaubc174aa2012-11-19 16:10:32 +010033extern struct data_cb check_conn_cb;
34
Willy Tarreau9fe7aae2013-12-31 23:47:37 +010035/* Use this one only. This inline version only ensures that we don't
36 * call the function when the observe mode is disabled.
37 */
38static inline void health_adjust(struct server *s, short status)
39{
40 /* return now if observing nor health check is not enabled */
41 if (!s->observe || !s->check.task)
42 return;
43
44 return __health_adjust(s, status);
45}
46
Simon Hormanb1900d52015-01-30 11:22:54 +090047const char *init_check(struct check *check, int type);
Simon Hormanbfb5d332015-01-30 11:22:55 +090048void free_check(struct check *check);
Simon Hormanb1900d52015-01-30 11:22:54 +090049
Christopher Faulet0108bb32017-10-20 21:34:32 +020050int init_email_alert(struct mailers *mailers, struct proxy *p, char **err);
Simon Horman64e34162015-02-06 11:11:57 +090051void send_email_alert(struct server *s, int priority, const char *format, ...)
52 __attribute__ ((format(printf, 3, 4)));
Baptiste Assmann95db2bc2016-06-13 14:15:41 +020053int srv_check_healthcheck_port(struct check *chk);
Christopher Fauletba7bc162016-11-07 21:07:38 +010054
55/* Declared here, but the definitions are in flt_spoe.c */
Christopher Faulet8ef75252017-02-20 22:56:03 +010056int spoe_prepare_healthcheck_request(char **req, int *len);
57int spoe_handle_healthcheck_response(char *frame, size_t size, char *err, int errlen);
Christopher Fauletba7bc162016-11-07 21:07:38 +010058
Willy Tarreaubaaee002006-06-26 02:48:02 +020059#endif /* _PROTO_CHECKS_H */
Willy TARREAU3dc06442006-06-15 21:48:13 +020060
Willy Tarreaubaaee002006-06-26 02:48:02 +020061/*
62 * Local variables:
63 * c-indent-level: 8
64 * c-basic-offset: 8
65 * End:
66 */