DHCPV4 master protocol handler.
More...
#include <freeradius-devel/io/listen.h>
#include <freeradius-devel/server/module_rlm.h>
#include <freeradius-devel/util/debug.h>
#include "proto_dhcpv4.h"
Go to the source code of this file.
|
static int | mod_decode (UNUSED void const *instance, request_t *request, uint8_t *const data, size_t data_len) |
| Decode the packet. More...
|
|
static ssize_t | mod_encode (UNUSED void const *instance, request_t *request, uint8_t *buffer, size_t buffer_len) |
|
static int | mod_instantiate (module_inst_ctx_t const *mctx) |
| Instantiate the application. More...
|
|
static int | mod_load (void) |
|
static int | mod_open (void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION *conf) |
| Open listen sockets/connect to external event source. More...
|
|
static int | mod_priority_set (void const *instance, uint8_t const *buffer, size_t buflen) |
|
static void | mod_unload (void) |
|
static int | transport_parse (TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule) |
|
static int | type_parse (TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule) |
|
static int | type_parse (UNUSED TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, UNUSED conf_parser_t const *rule) |
| Translates the packet-type into a submodule name. More...
|
|
DHCPV4 master protocol handler.
- Id
- aae1fcc755ecaeeda6c00e15a73811379232a45e
- Copyright
- 2017 Arran Cudbard-Bell (a.cud.nosp@m.bard.nosp@m.b@fre.nosp@m.erad.nosp@m.ius.o.nosp@m.rg)
-
2016 Alan DeKok (aland.nosp@m.@fre.nosp@m.eradi.nosp@m.us.o.nosp@m.rg)
Definition in file proto_dhcpv4.c.
◆ COPY
#define COPY |
( |
|
_x | ) |
reply->_x = original->_x |
◆ LOG_PREFIX
#define LOG_PREFIX "proto_dhcpv4" |
◆ MEMCPY
#define MEMCPY |
( |
|
_x | ) |
memcpy(&reply->_x, &original->_x, sizeof(reply->_x)) |
◆ mod_decode()
◆ mod_encode()
◆ mod_instantiate()
Instantiate the application.
Instantiate I/O and type submodules.
- Returns
- 0 on success.
- -1 on failure.
Definition at line 381 of file proto_dhcpv4.c.
◆ mod_load()
static int mod_load |
( |
void |
| ) |
|
|
static |
◆ mod_open()
Open listen sockets/connect to external event source.
- Parameters
-
[in] | instance | Ctx data for this application. |
[in] | sc | to add our file descriptor to. |
[in] | conf | Listen section parsed to give us instance. |
- Returns
- 0 on success.
- -1 on failure.
Definition at line 362 of file proto_dhcpv4.c.
◆ mod_priority_set()
static int mod_priority_set |
( |
void const * |
instance, |
|
|
uint8_t const * |
buffer, |
|
|
size_t |
buflen |
|
) |
| |
|
static |
◆ mod_unload()
static void mod_unload |
( |
void |
| ) |
|
|
static |
◆ transport_parse()
static int transport_parse |
( |
TALLOC_CTX * |
ctx, |
|
|
void * |
out, |
|
|
void * |
parent, |
|
|
CONF_ITEM * |
ci, |
|
|
conf_parser_t const * |
rule |
|
) |
| |
|
static |
◆ type_parse() [1/2]
static int type_parse |
( |
TALLOC_CTX * |
ctx, |
|
|
void * |
out, |
|
|
void * |
parent, |
|
|
CONF_ITEM * |
ci, |
|
|
conf_parser_t const * |
rule |
|
) |
| |
|
static |
◆ type_parse() [2/2]
Translates the packet-type into a submodule name.
- Parameters
-
[in] | ctx | to allocate data in (instance of proto_dhcpv4). |
[out] | out | Where to write a module_instance_t containing the module handle and instance. |
[in] | parent | Base structure address. |
[in] | ci | CONF_PAIR specifying the name of the type module. |
[in] | rule | unused. |
- Returns
- 0 on success.
- -1 on failure.
Definition at line 116 of file proto_dhcpv4.c.
◆ attr_message_type
◆ attr_packet_type
◆ dict_dhcpv4
◆ limit_config
Initial value:= {
}
#define CONF_PARSER_TERMINATOR
#define FR_CONF_OFFSET(_name, _struct, _field)
conf_parser_t which parses a single CONF_PAIR, writing the result to a field in a struct
#define FR_CONF_POINTER(_name, _type, _flags, _res_p)
conf_parser_t which parses a single CONF_PAIR producing a single global result
@ CONF_FLAG_SUBSECTION
Instead of putting the information into a configuration structure, the configuration file routines MA...
static const conf_parser_t priority_config[]
An instance of a proto_dhcpv4 listen section.
Definition at line 54 of file proto_dhcpv4.c.
◆ priority_config
Initial value:= {
}
int cf_table_parse_int(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void *parent, CONF_ITEM *ci, conf_parser_t const *rule)
Generic function for parsing conf pair values as int.
size_t channel_packet_priority_len
fr_table_num_sorted_t const channel_packet_priority[]
@ FR_DHCP_BULK_LEASE_QUERY
Definition at line 36 of file proto_dhcpv4.c.
◆ proto_dhcpv4
Initial value:= {
.common = {
.name = "dhcpv4",
},
}
#define MODULE_MAGIC_INIT
Stop people using different module/library/server versions together.
static int mod_load(void)
static ssize_t mod_encode(UNUSED void const *instance, request_t *request, uint8_t *buffer, size_t buffer_len)
static conf_parser_t const proto_dhcpv4_config[]
How to parse a DHCPV4 listen section.
static void mod_unload(void)
static fr_dict_t const * dict_dhcpv4
static int mod_decode(UNUSED void const *instance, request_t *request, uint8_t *const data, size_t data_len)
Decode the packet.
static int mod_instantiate(module_inst_ctx_t const *mctx)
Instantiate the application.
static int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION *conf)
Open listen sockets/connect to external event source.
static int mod_priority_set(void const *instance, uint8_t const *buffer, size_t buflen)
static int instantiate(module_inst_ctx_t const *mctx)
Definition at line 462 of file proto_dhcpv4.c.
◆ proto_dhcpv4_config
Initial value:= {
}
#define FR_CONF_OFFSET_FLAGS(_name, _flags, _struct, _field)
conf_parser_t which parses a single CONF_PAIR, writing the result to a field in a struct
@ CONF_FLAG_NOT_EMPTY
CONF_PAIR is required to have a non zero length value.
#define FR_CONF_OFFSET_TYPE_FLAGS(_name, _type, _flags, _struct, _field)
conf_parser_t which parses a single CONF_PAIR, writing the result to a field in a struct
static conf_parser_t const limit_config[]
static int type_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule)
static int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule)
How to parse a DHCPV4 listen section.
Definition at line 76 of file proto_dhcpv4.c.
◆ proto_dhcpv4_dict
◆ proto_dhcpv4_dict_attr
Initial value:= {
{ NULL }
}
@ FR_TYPE_UINT8
8 Bit unsigned integer.
@ FR_TYPE_UINT32
32 Bit unsigned integer.
static fr_dict_attr_t const * attr_packet_type
static fr_dict_attr_t const * attr_message_type
Definition at line 99 of file proto_dhcpv4.c.