Github user jpeach commented on a diff in the pull request:
https://github.com/apache/trafficserver/pull/1024#discussion_r82625392
--- Diff: iocore/net/SSLCertLookup.cc ---
@@ -160,7 +160,40 @@ ticket_block_alloc(unsigned count)
return ptr;
}
+ssl_ticket_key_block *
+ssl_create_ticket_key_block_buffer(char *ticket_key_data, int
ticket_key_len)
+{
+ ssl_ticket_key_block *keyblock = NULL;
+ int num_ticket_keys = ticket_key_len /
sizeof(ssl_ticket_key_t);
+ if (num_ticket_keys == 0) {
+ Error("SSL session ticket key is too short (>= 48 bytes are
required)");
+ goto fail;
+ }
+
+ // Increase the stats.
+ if (ssl_rsb != NULL) { // ssl_rsb is not initialized during the first
run.
+ SSL_INCREMENT_DYN_STAT(ssl_total_ticket_keys_renewed_stat);
+ }
--- End diff --
Sure, but the single responsibility of this function is to load a ticket
block. If the caller needs a metric to track how many times it is called, the
caller should do it. By pushing higher level responsibilities into library
code, we are breaking the single responsibility principle and making the code
less reusable and harder to reason about.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---