It is possible to not use the default DNS configuration when resolving a specific host such as specifying a particular DNS server, different number of request retry retries and so on. When calling DNSc_GetHost() it is possible to specify a request configuration in the parameter p_cfg.
...
Request Configuration
µC/DNS use uses the following structure to configure requestrequests:
Code Block | ||
---|---|---|
| ||
typedef struct DNSc_req_cfg { DNSc_ADDR_OBJ *ServerAddrPtr; NET_PORT_NBR ServerPort; CPU_INT16U TaskDly_ms; CPU_INT16U ReqTimeout_ms; CPU_INT08U ReqRetry; DNSc_REQ_TYPE ReqType; DNSc_FLAGS ReqFlags; } DNSc_REQ_CFG; |
Structure Fields
...
Structure Field | Type | Description | Possible Values |
---|---|---|---|
ServerAddrPtr | CPU_CHAR | Server IP address | DEF_NULL to use the default server Pointer to a string that contains the IP address. |
ServerPort | NET_PORT_NBR | Port number | NET_PORT_NBR_NONE Default DNS port MUST be >= NET_PORT_NBR_MIN Must be <= NET_PORT_NBR_MAX |
TaskDly_ms | CPU_INT16U | Configure task delay in integer milliseconds | Default value: [DNSc_DFLT_TASK_DLY_MS] = 50ms MUST be >= 1 |
ReqTimeout_ms | CPU_INT16U | Configure timeout before a request resolution retry | Default value: [DNSc_DFLT_REQ_RETRY_TIMEOUT_MS] = 1000ms MUST be >= 100 |
ReqRetry | CPU_INT08U | Configure maximum of request resolution retry. | Default value: [DNSc_DFLT_REQ_RETRY_NBR_MAX] = 2 MUST be >= 1 |
ReqType | DNSc_REQ_TYPE | Instructs the DNS request state machine if the request is a forward request (type A, AAAA), or a reverse request (type PTR IPv4 or PTR IPv6). | Meant for internal use by uC/DNSc. Any values passed are ignored. |
ReqFlags | DNSc_FLAGS | Contains a copy of DNSc_GetHost()'s 'flags' argument to keep track of them internally. Enables DNSc to use its internal flags DNSc_FLAG_UPDATE_PREF and DNSc_FLAG_RESET_REQ without modifying the 'flags' argument. | Meant for internal use by uC/DNSc. Any values passed are ignored. |