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 infrastruct...@apache.org or file a JIRA ticket with INFRA. ---