rfc2671.cc
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2022 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9#include "squid.h"
10#include "dns/rfc1035.h"
11#include "dns/rfc2671.h"
12
13int
14rfc2671RROptPack(char *buf, size_t sz, ssize_t edns_sz)
15{
16 // set the OPT record correctly. base it on a macro size of the Squid DNS read buffer
17 static rfc1035_rr opt;
18
19 // EDNS OPT record says only what our DNS buffer size is so far.
20 snprintf(opt.name, RFC1035_MAXHOSTNAMESZ, ".");
22 opt._class = min(edns_sz, (ssize_t)SQUID_UDP_SO_RCVBUF-1);
23 opt.ttl = 0; // relevant?
24 opt.rdata = nullptr;
25 opt.rdlength = 0;
26
27 return rfc1035RRPack(buf, sz, &opt);
28}
29
unsigned short _class
Definition: rfc1035.h:41
char * rdata
Definition: rfc1035.h:44
char name[RFC1035_MAXHOSTNAMESZ]
Definition: rfc1035.h:39
unsigned short type
Definition: rfc1035.h:40
unsigned short rdlength
Definition: rfc1035.h:43
unsigned int ttl
Definition: rfc1035.h:42
A const & min(A const &lhs, A const &rhs)
int rfc1035RRPack(char *buf, const size_t sz, const rfc1035_rr *RR)
Definition: rfc1035.cc:329
#define RFC1035_MAXHOSTNAMESZ
Definition: rfc1035.h:32
int rfc2671RROptPack(char *buf, size_t sz, ssize_t edns_sz)
Definition: rfc2671.cc:14
#define RFC1035_TYPE_OPT
Definition: rfc2671.h:13
#define SQUID_UDP_SO_RCVBUF
Definition: squid.h:55
void const char int sz
Definition: stub_cbdata.cc:16

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors