25RCSID(
"$Id: 18ec854a3e030e93f95722f9333e171cc6b6c4f7 $")
27#include <freeradius-devel/radius/radius.h>
28#include <freeradius-devel/util/syserror.h>
38 size_t packet_len, hdr_len;
45 slen = recv(
sockfd, start, (
size_t) (end - start), 0);
46 if (slen <= 0)
return -1;
48 packet_len = *total + slen;
53 if (packet_len < 4)
return 0;
58 if (packet_len < hdr_len) {
66 if (!
fr_radius_ok(
buffer, &hdr_len, max_attributes, require_message_authenticator, NULL)) {
static int const char char buffer[256]
bool fr_radius_ok(uint8_t const *packet, size_t *packet_len_p, uint32_t max_attributes, bool require_message_authenticator, decode_fail_t *reason)
static uint16_t fr_nbo_to_uint16(uint8_t const data[static sizeof(uint16_t)])
Read an unsigned 16bit integer from wire format (big endian)
#define RADIUS_HEADER_LENGTH
#define RADIUS_MAX_PACKET_SIZE
ssize_t fr_tcp_read_packet(int sockfd, uint8_t *buffer, size_t size, size_t *total, uint32_t max_attributes, bool require_message_authenticator)