Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Side by Side Diff: components/certificate_transparency/log_dns_client.h

Issue 2485653002: Cleanup and minor refactoring of LogDnsClient (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | components/certificate_transparency/log_dns_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_CERTIFICATE_TRANSPARENCY_LOG_DNS_CLIENT_H_ 5 #ifndef COMPONENTS_CERTIFICATE_TRANSPARENCY_LOG_DNS_CLIENT_H_
6 #define COMPONENTS_CERTIFICATE_TRANSPARENCY_LOG_DNS_CLIENT_H_ 6 #define COMPONENTS_CERTIFICATE_TRANSPARENCY_LOG_DNS_CLIENT_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <list> 10 #include <list>
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 // net::ERR_TEMPORARILY_THROTTLED. 62 // net::ERR_TEMPORARILY_THROTTLED.
63 void NotifyWhenNotThrottled(const base::Closure& callback); 63 void NotifyWhenNotThrottled(const base::Closure& callback);
64 64
65 // Queries a CT log to retrieve an audit proof for the leaf with |leaf_hash|. 65 // Queries a CT log to retrieve an audit proof for the leaf with |leaf_hash|.
66 // The log is identified by |domain_for_log|, which is the DNS name used as a 66 // The log is identified by |domain_for_log|, which is the DNS name used as a
67 // suffix for all queries. 67 // suffix for all queries.
68 // The |leaf_hash| is the SHA-256 Merkle leaf hash (see RFC6962, section 2.1). 68 // The |leaf_hash| is the SHA-256 Merkle leaf hash (see RFC6962, section 2.1).
69 // The size of the CT log tree, for which the proof is requested, must be 69 // The size of the CT log tree, for which the proof is requested, must be
70 // provided in |tree_size|. 70 // provided in |tree_size|.
71 // The leaf index and audit proof obtained from the CT log will be placed in 71 // The leaf index and audit proof obtained from the CT log will be placed in
72 // |proof|. 72 // |out_proof|.
73 // If the proof cannot be obtained synchronously, this method will return 73 // If the proof cannot be obtained synchronously, this method will return
74 // net::ERR_IO_PENDING and invoke |callback| once the query is complete. 74 // net::ERR_IO_PENDING and invoke |callback| once the query is complete.
75 // Returns: 75 // Returns:
76 // - net::OK if the query was successful. 76 // - net::OK if the query was successful.
77 // - net::ERR_IO_PENDING if the query was successfully started and is 77 // - net::ERR_IO_PENDING if the query was successfully started and is
78 // continuing asynchronously. 78 // continuing asynchronously.
79 // - net::ERR_TEMPORARILY_THROTTLED if the maximum number of concurrent 79 // - net::ERR_TEMPORARILY_THROTTLED if the maximum number of concurrent
80 // queries are already in progress. Try again later. 80 // queries are already in progress. Try again later.
81 // TODO(robpercival): Provide a mechanism to notify the caller when no
82 // longer throttled.
83 // - net::ERR_NAME_RESOLUTION_FAILED if DNS queries are not possible. 81 // - net::ERR_NAME_RESOLUTION_FAILED if DNS queries are not possible.
84 // Check that the DnsConfig returned by NetworkChangeNotifier is valid. 82 // Check that the DnsConfig returned by NetworkChangeNotifier is valid.
85 // - net::ERR_INVALID_ARGUMENT if an argument is invalid, e.g. |leaf_hash| is 83 // - net::ERR_INVALID_ARGUMENT if an argument is invalid, e.g. |leaf_hash| is
86 // not a SHA-256 hash. 84 // not a SHA-256 hash.
87 net::Error QueryAuditProof(base::StringPiece domain_for_log, 85 net::Error QueryAuditProof(base::StringPiece domain_for_log,
88 std::string leaf_hash, 86 std::string leaf_hash,
89 uint64_t tree_size, 87 uint64_t tree_size,
90 net::ct::MerkleAuditProof* proof, 88 net::ct::MerkleAuditProof* out_proof,
91 const net::CompletionCallback& callback); 89 const net::CompletionCallback& callback);
92 90
93 private: 91 private:
94 class AuditProofQuery; 92 class AuditProofQuery;
95 93
96 // Invoked when an audit proof query completes. 94 // Invoked when an audit proof query completes.
97 // |query| is the query that has completed. 95 // |query| is the query that has completed.
98 // |callback| is the user-provided callback that should be notified. 96 // |callback| is the user-provided callback that should be notified.
99 // |net_error| is a net::Error indicating success or failure. 97 // |net_error| is a net::Error indicating success or failure.
100 void QueryAuditProofComplete(AuditProofQuery* query, 98 void QueryAuditProofComplete(AuditProofQuery* query,
(...skipping 21 matching lines...) Expand all
122 // Callbacks to invoke when the number of concurrent queries is at its limit. 120 // Callbacks to invoke when the number of concurrent queries is at its limit.
123 std::list<base::Closure> not_throttled_callbacks_; 121 std::list<base::Closure> not_throttled_callbacks_;
124 // Creates weak_ptrs to this, for callback purposes. 122 // Creates weak_ptrs to this, for callback purposes.
125 base::WeakPtrFactory<LogDnsClient> weak_ptr_factory_; 123 base::WeakPtrFactory<LogDnsClient> weak_ptr_factory_;
126 124
127 DISALLOW_COPY_AND_ASSIGN(LogDnsClient); 125 DISALLOW_COPY_AND_ASSIGN(LogDnsClient);
128 }; 126 };
129 127
130 } // namespace certificate_transparency 128 } // namespace certificate_transparency
131 #endif // COMPONENTS_CERTIFICATE_TRANSPARENCY_LOG_DNS_CLIENT_H_ 129 #endif // COMPONENTS_CERTIFICATE_TRANSPARENCY_LOG_DNS_CLIENT_H_
OLDNEW
« no previous file with comments | « no previous file | components/certificate_transparency/log_dns_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698