dns_cache.h File Reference

DNS cache management. More...

#include "core/net.h"
#include "core/socket.h"

Go to the source code of this file.

Data Structures

struct  DnsCacheEntry
 DNS cache entry. More...
 

Macros

#define DNS_TICK_INTERVAL   200
 
#define DNS_CACHE_SIZE   8
 
#define DNS_MAX_NAME_LEN   63
 
#define DNS_CACHE_INIT_POLLING_INTERVAL   10
 
#define DNS_CACHE_MAX_POLLING_INTERVAL   1000
 

Enumerations

enum  DnsState { DNS_STATE_NONE = 0 , DNS_STATE_IN_PROGRESS = 1 , DNS_STATE_RESOLVED = 2 , DNS_STATE_PERMANENT = 3 }
 DNS cache entry states. More...
 

Functions

error_t dnsInit (void)
 DNS cache initialization. More...
 
void dnsFlushCache (NetInterface *interface)
 Flush DNS cache. More...
 
DnsCacheEntrydnsCreateEntry (void)
 Create a new entry in the DNS cache. More...
 
void dnsDeleteEntry (DnsCacheEntry *entry)
 Delete the specified DNS cache entry. More...
 
DnsCacheEntrydnsFindEntry (NetInterface *interface, const char_t *name, HostType type, HostnameResolver protocol)
 Search the DNS cache for a given domain name. More...
 
void dnsTick (void)
 DNS timer handler. More...
 

Variables

systime_t dnsTickCounter
 
DnsCacheEntry dnsCache [DNS_CACHE_SIZE]
 

Detailed Description

DNS cache management.

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program 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 General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.0

Definition in file dns_cache.h.

Macro Definition Documentation

◆ DNS_CACHE_INIT_POLLING_INTERVAL

#define DNS_CACHE_INIT_POLLING_INTERVAL   10

Definition at line 61 of file dns_cache.h.

◆ DNS_CACHE_MAX_POLLING_INTERVAL

#define DNS_CACHE_MAX_POLLING_INTERVAL   1000

Definition at line 68 of file dns_cache.h.

◆ DNS_CACHE_SIZE

#define DNS_CACHE_SIZE   8

Definition at line 47 of file dns_cache.h.

◆ DNS_MAX_NAME_LEN

#define DNS_MAX_NAME_LEN   63

Definition at line 54 of file dns_cache.h.

◆ DNS_TICK_INTERVAL

#define DNS_TICK_INTERVAL   200

Definition at line 40 of file dns_cache.h.

Enumeration Type Documentation

◆ DnsState

enum DnsState

DNS cache entry states.

Enumerator
DNS_STATE_NONE 
DNS_STATE_IN_PROGRESS 
DNS_STATE_RESOLVED 
DNS_STATE_PERMANENT 

Definition at line 83 of file dns_cache.h.

Function Documentation

◆ dnsCreateEntry()

DnsCacheEntry* dnsCreateEntry ( void  )

Create a new entry in the DNS cache.

Returns
Pointer to the newly created entry

Definition at line 104 of file dns_cache.c.

◆ dnsDeleteEntry()

void dnsDeleteEntry ( DnsCacheEntry entry)

Delete the specified DNS cache entry.

Parameters
[in]entryPointer to the DNS cache entry to be deleted

Definition at line 153 of file dns_cache.c.

◆ dnsFindEntry()

DnsCacheEntry* dnsFindEntry ( NetInterface interface,
const char_t name,
HostType  type,
HostnameResolver  protocol 
)

Search the DNS cache for a given domain name.

Parameters
[in]interfaceUnderlying network interface
[in]nameDomain name
[in]typeHost type (IPv4 or IPv6)
[in]protocolHost name resolution protocol
Returns
A pointer to the matching DNS entry is returned. NULL is returned if the specified domain name could not be found in the DNS cache

Definition at line 187 of file dns_cache.c.

◆ dnsFlushCache()

void dnsFlushCache ( NetInterface interface)

Flush DNS cache.

Parameters
[in]interfaceUnderlying network interface

Definition at line 75 of file dns_cache.c.

◆ dnsInit()

error_t dnsInit ( void  )

DNS cache initialization.

Returns
Error code

Definition at line 60 of file dns_cache.c.

◆ dnsTick()

void dnsTick ( void  )

DNS timer handler.

This routine must be periodically called by the TCP/IP stack to manage DNS cache

Definition at line 229 of file dns_cache.c.

Variable Documentation

◆ dnsCache

DnsCacheEntry dnsCache[DNS_CACHE_SIZE]
extern

Definition at line 52 of file dns_cache.c.

◆ dnsTickCounter

systime_t dnsTickCounter
extern

Definition at line 50 of file dns_cache.c.