Index: net/base/dns_util.cc |
diff --git a/net/base/dns_util.cc b/net/base/dns_util.cc |
index f1e0de442babefc5a0e61c9506fc1df78929637c..d97d3d2c9eca4dedd07059df19b0e73bef217431 100644 |
--- a/net/base/dns_util.cc |
+++ b/net/base/dns_util.cc |
@@ -56,6 +56,24 @@ bool DNSDomainFromDot(const std::string& dotted, std::string* out) { |
return true; |
} |
+std::string DNSDomainToString(const std::string& domain) { |
+ std::string ret; |
+ |
+ for (unsigned i = 0; i < domain.size() && domain[i]; i += domain[i] + 1) { |
+ if (domain[i] < 0 || domain[i] > 63) |
+ return ""; |
eroman
2011/02/17 00:48:28
I recommend adding a test case for one of the bad
agl
2011/02/17 17:21:30
Done.
|
+ |
+ if (i) |
+ ret += "."; |
+ |
+ if (static_cast<unsigned>(domain[i]) + i + 1 > domain.size()) |
+ return ""; |
+ |
+ ret += domain.substr(i + 1, domain[i]); |
+ } |
+ return ret; |
+} |
+ |
bool IsSTD3ASCIIValidCharacter(char c) { |
if (c <= 0x2c) |
return false; |