diff options
| author | Luke Huang <huangluke@google.com> | 2019-06-24 13:28:44 +0800 |
|---|---|---|
| committer | Luke Huang <huangluke@google.com> | 2019-07-03 15:38:40 +0800 |
| commit | 6898d5bb33dbbcc8bb263c79435c4f79db61e52c (patch) | |
| tree | ff8240819d3d869e142154d3b1bd3c6b0d03b400 /resolv/resolv_private.h | |
| parent | 481ddf09b6cead845f65b29322a83079c8c350c9 (diff) | |
Use std::vector to store domains of nameservers and minor change
1.
Drop the old C style used to store domains.
Previously, resolv is limited to use 6 search domains with total 255 length.
(including zero padding)
After this change, the length of each domain could exactly be at most 255. (rfc 1035)
Also, invalid or duplicate domains will be dropped.
2. rename resolv_set_nameservers_for_net to resolv_set_nameservers
Bug: 135506574
Test: cd system/netd && atest
Change-Id: I94129ea521522c817d087332a7b467f616cc4895
Diffstat (limited to 'resolv/resolv_private.h')
| -rw-r--r-- | resolv/resolv_private.h | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/resolv/resolv_private.h b/resolv/resolv_private.h index 45ae337b..1e10849b 100644 --- a/resolv/resolv_private.h +++ b/resolv/resolv_private.h @@ -59,6 +59,7 @@ #include <resolv.h> #include <time.h> #include <string> +#include <vector> #include "netd_resolv/params.h" #include "netd_resolv/resolv.h" @@ -76,9 +77,6 @@ /* * Global defines and variables for resolver stub. */ -#define MAXDFLSRCH 3 /* # default domain levels to try */ -#define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */ - #define RES_TIMEOUT 5000 /* min. milliseconds between retries */ #define MAXRESOLVSORT 10 /* number of net to sort on */ #define RES_MAXNDOTS 15 /* should reflect bit field size */ @@ -88,17 +86,16 @@ struct res_state_ext; struct __res_state { - unsigned netid; /* NetId: cache key and socket mark */ - uid_t uid; /* uid of the app that sent the DNS lookup */ - u_long options; /* option flags - see below. */ - int nscount; /* number of name srvers */ - struct sockaddr_in nsaddr_list[MAXNS]; /* address of name server */ -#define nsaddr nsaddr_list[0] /* for backward compatibility */ - u_short id; /* current message id */ - char* dnsrch[MAXDNSRCH + 1]; /* components of domain to search */ - char defdname[256]; /* default domain (deprecated) */ - unsigned ndots : 4; /* threshold for initial abs. query */ - unsigned nsort : 4; /* number of elements in sort_list[] */ + unsigned netid; // NetId: cache key and socket mark + uid_t uid; // uid of the app that sent the DNS lookup + u_long options; // option flags - see below. + int nscount; // number of name srvers + struct sockaddr_in nsaddr_list[MAXNS]; // address of name server +#define nsaddr nsaddr_list[0] // for backward compatibility + u_short id; // current message id + std::vector<std::string> search_domains; // domains to search + unsigned ndots : 4; // threshold for initial abs. query + unsigned nsort : 4; // number of elements in sort_list[] char unused[3]; struct { struct in_addr addr; |
