dn_comp() — Resolver domain name compression
Standards
Standards / Extensions | C or C++ | Dependencies |
---|---|---|
BSD 4.3 |
both | OS/390 V2R8 |
Format
#define _XOPEN_SOURCE_EXTENDED 1
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
int dn_comp(const char *exp_dn, u_char *comp_dn, int length,
u_char **dnptrs, u_char **lastdnptr);
General description
The dn_comp() function compresses the domain name exp_dn and stores it in comp_dn. The size of the compressed name is returned or -1 if there were errors. The size of the array pointed to by comp_dn is given by length. The compression uses an array of pointers dnptrs to previously-compressed names in the current message. The first pointer points to the beginning of the message and the list ends with NULL. The limit to the array is specified by lastdnptr.
A side effect of dn_comp() is to update the list of pointers for labels inserted into the message as the name is compressed. If dnptr is NULL, names are not compressed. If lastdnptr is NULL, the list of labels is not updated.
Returned value
If successful, dn_comp() returns the size of the compressed name.
If unsuccessful, dn_comp() returns -1 to report the error, when the name to be compressed was not found before the end of the buffer was reached.
There are no documented errno values.
Related information
- arpa/nameser.h
- netinet/in.h
- resolv.h
- sys/types.h
- dn_expand() — Resolver domain name expansion
- dn_find() — Resolver domain name find
- dn_skipname() — Resolver domain name skipping
- res_init() — Domain name resolver initialization
- res_mkquery() — Make resolver query for domain name servers
- res_query() — Resolver query for domain name servers
- res_querydomain() — Build domain name and resolver query
- res_search() — Resolver query for domain name servers
- res_send() — Send resolver query for domain name servers