diff options
| author | Rasmus Dahlberg <rgdd@glasklarteknik.se> | 2025-01-06 13:21:47 +0100 | 
|---|---|---|
| committer | Rasmus Dahlberg <rgdd@glasklarteknik.se> | 2025-01-06 13:30:52 +0100 | 
| commit | 2d3b1f2cb0c05385c1702f1a7d74fa08d52c262f (patch) | |
| tree | 6b5b1e9884ffb1f17629143e7c0d1bbfb1176ac1 /internal/logger | |
| parent | ee5c55d82ad70353e8203f6729d4325b59741bfa (diff) | |
fix: Ensure rate-limits are on for get-entries
Backoff on 4XX and 5XX.  See related issue:
https://github.com/google/certificate-transparency-go/issues/898
Test manually hints:
```
$ cat srv.py
from http.server import HTTPServer, BaseHTTPRequestHandler
class RequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(429)
        self.send_header("Content-Type", "text/plain")
        self.end_headers()
        self.wfile.write(b"429 something something...")
    def do_POST(self):
        self.do_GET()
    def do_PUT(self):
        self.do_GET()
    def do_DELETE(self):
        self.do_GET()
if __name__ == "__main__":
    server_address = ('localhost', 9090)
    httpd = HTTPServer(server_address, RequestHandler)
    print("Server running on http://localhost:9090")
    httpd.serve_forever()
```
And a transport for http.Client that redirects to localhost:
```
type statusRR struct {
	inner http.RoundTripper
}
func (s *statusRR) RoundTrip(req *http.Request) (*http.Response, error) {
	if strings.Contains(req.URL.Path, "ct/v1/get-entries") {
		req.URL.Scheme = "http"
		req.URL.Host = "localhost:9090"
	}
	rsp, err := s.inner.RoundTrip(req)
	return rsp, err
}
```
Diffstat (limited to 'internal/logger')
0 files changed, 0 insertions, 0 deletions
