mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-24 20:31:00 +01:00
MINOR: map: Define map types
Define the types used with maps, and add new argument type that can reference the map. This pointer contains the map configuration entries.
This commit is contained in:
parent
fdbf4842b6
commit
4b5e422759
@ -44,7 +44,7 @@ enum {
|
||||
ARGT_TAB, /* a pointer to a stick table */
|
||||
ARGT_SRV, /* a pointer to a server */
|
||||
ARGT_USR, /* a pointer to a user list */
|
||||
ARGT_UNASSIGNED15, /* will probably be used for variables later */
|
||||
ARGT_MAP, /* a pointer to a map descriptor */
|
||||
ARGT_NBTYPES /* no more values past 15 */
|
||||
};
|
||||
|
||||
@ -73,6 +73,7 @@ union arg_data {
|
||||
struct proxy *prx; /* used for fe, be, tables */
|
||||
struct server *srv;
|
||||
struct userlist *usr;
|
||||
struct map_descriptor *map;
|
||||
};
|
||||
|
||||
struct arg {
|
||||
|
||||
69
include/types/map.h
Normal file
69
include/types/map.h
Normal file
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* include/types/map.h
|
||||
* This file provides structures and types for MAPs.
|
||||
*
|
||||
* Copyright (C) 2000-2012 Willy Tarreau - w@1wt.eu
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation, version 2.1
|
||||
* exclusively.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _TYPES_MAP_H
|
||||
#define _TYPES_MAP_H
|
||||
|
||||
#include <types/acl.h>
|
||||
|
||||
/* These structs contains a string representation of the map. These struct is
|
||||
* sorted by file. Permit to hot-add and hot-remove entries.
|
||||
*
|
||||
* "maps" is the list head. This list cotains all the mao file name identifier.
|
||||
*/
|
||||
struct list maps = LIST_HEAD_INIT(maps); /* list of struct map_reference */
|
||||
|
||||
struct map_reference {
|
||||
struct list list; /* used for listing */
|
||||
char *reference; /* contain the unique identifier used as map identifier.
|
||||
in many cases this identifier is the filename that contain
|
||||
the patterns */
|
||||
struct list entries; /* the list of all the entries of the map. This
|
||||
is a list of "struct map_entry" */
|
||||
struct list maps; /* the list of all maps associated with the file
|
||||
name identifier. This is a list of struct map_descriptor */
|
||||
};
|
||||
|
||||
struct map_entry {
|
||||
struct list list; /* used for listing */
|
||||
int line; /* The original line into the file. It is used for log reference.
|
||||
If the line is '> 0', this entry is from the original load,
|
||||
If the line is '< 0', this entry is modify by dynamux process (CLI) */
|
||||
char *key; /* The string containing the key before conversion
|
||||
and indexation */
|
||||
char *value; /* The string containing the value */
|
||||
};
|
||||
|
||||
struct sample_storage;
|
||||
struct map_descriptor {
|
||||
struct list list; /* used for listing */
|
||||
struct map_reference *ref; /* the reference used for unindexed entries */
|
||||
struct sample_conv *conv; /* original convertissor descriptor */
|
||||
int (*parse)(const char *text, /* The function that can parse the output value */
|
||||
struct sample_storage *smp);
|
||||
struct acl_expr acl; /* dummy acl expression. just for using the acl
|
||||
match primitive and storage system */
|
||||
char *default_value; /* a copy of default value. This copy is
|
||||
useful if the type is str */
|
||||
struct sample_storage *def; /* contain the default value */
|
||||
};
|
||||
|
||||
#endif /* _TYPES_MAP_H */
|
||||
Loading…
x
Reference in New Issue
Block a user