MySQL 9.3.0
Source Code Documentation
connection_control_pfs.h
Go to the documentation of this file.
1/* Copyright (c) 2024, 2025, Oracle and/or its affiliates.
2
3This program is free software; you can redistribute it and/or modify
4it under the terms of the GNU General Public License, version 2.0,
5as published by the Free Software Foundation.
6
7This program is designed to work with certain software (including
8but not limited to OpenSSL) that is licensed under separate terms,
9as designated in a particular file or component or in included license
10documentation. The authors of MySQL hereby grant you an additional
11permission to link the program and your derivative works with the
12separately licensed software that they have either included with
13the program or referenced in the documentation.
14
15This program is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License, version 2.0, for more details.
19
20You should have received a copy of the GNU General Public License
21along with this program; if not, write to the Free Software
22Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef MYSQL_OPTION_TRACKER_H
25#define MYSQL_OPTION_TRACKER_H
26
28
29/**
30 @ingroup group_components_services_inventory
31
32 Option tracker registration and deregistration services
33
34 This is a service that will allow registering an option.
35 Each option has a name. The name is UTF8mb4 and is unique in
36 the list.
37 Manipulating the option list is an "expesive" operation since there
38 is a global lock involved.
39
40 Each code container (a component or a plugin) should register its
41 options during its initialization and should unregister them during
42 its deinitialization.
43*/
44BEGIN_SERVICE_DEFINITION(mysql_failed_attempts_tracker)
45
46/**
47 Define an option. Adds an option definition.
48
49 If another option of the same name exists, the definition fails
50
51 @param option The name of the option, UTF8mb4. Must be unique.
52 @param container The container name. UTF8mb4
53 Please prefix with "plugin_" for plugins.
54 @param is_enabled non-0 if the option is marked as enabled, 0 otherwise
55 @retval false success
56 @retval true failure
57*/
58DECLARE_METHOD(void, define, (const char *userhost));
59/**
60 Undefine an option.
61
62 Fails if no option is defined with the same name
63
64 @param option The name of the option, US ASCII
65 @retval false success
66 @retval true failure
67*/
68DECLARE_BOOL_METHOD(undefine, (const char *userhost));
69
70END_SERVICE_DEFINITION(mysql_failed_attempts_tracker)
71
72#endif /* MYSQL_OPTION_TRACKER_H */
#define DECLARE_METHOD(retval, name, args)
Declares a method as a part of the Service definition.
Definition: service.h:103
#define END_SERVICE_DEFINITION(name)
A macro to end the last Service definition started with the BEGIN_SERVICE_DEFINITION macro.
Definition: service.h:91
#define BEGIN_SERVICE_DEFINITION(name)
Declares a new Service.
Definition: service.h:86
#define DECLARE_BOOL_METHOD(name, args)
Declares a method that returns bool as a part of the Service definition.
Definition: service.h:112