]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
For TLS session keys, keep config options in order read from file to keep the first...
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 23 Jan 2019 10:41:03 +0000 (10:41 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 23 Jan 2019 10:41:03 +0000 (10:41 +0000)
git-svn-id: file:///svn/unbound/trunk@5064 be551aaa-1e26-0410-a405-d3ace91eadb9

daemon/unbound.c
doc/Changelog
util/config_file.c
util/config_file.h
util/configparser.c
util/configparser.y

index c4e39e354f19a65c58d7ae652ae50c94055a7f79..4a508c13878b9458ac6e887f34ed4dbea02f6e46 100644 (file)
@@ -443,8 +443,8 @@ perform_setup(struct daemon* daemon, struct config_file* cfg, int debug_mode,
                        }
                }
 #endif
-               if(cfg->tls_session_ticket_keys) {
-                       if(!listen_sslctx_setup_ticket_keys(daemon->listen_sslctx, cfg->tls_session_ticket_keys)) {
+               if(cfg->tls_session_ticket_keys.first) {
+                       if(!listen_sslctx_setup_ticket_keys(daemon->listen_sslctx, cfg->tls_session_ticket_keys.first)) {
                                fatal_exit("could not set session ticket SSL_CTX");
                        }
                }
index a5b9bb886f89451c86af57ef995e0fbb9b4479d5..bb789fbfaadf1962f863088d818e01fea6ebbf46 100644 (file)
@@ -6,7 +6,9 @@
          library compatibility when compiling.
        - Patch for TLS session resumption from Manabu Sonoda,
          enable with tls-session-ticket-keys in unbound.conf.
-       - Fixes for patch (includes, declarations, warnings).
+       - Fixes for patch (includes, declarations, warnings).  Free at end
+         and keep config options in order read from file to keep the first
+         one as the first one.
 
 22 January 2018: Wouter
        - Fix space calculation for tcp req buffer size.
index 3e517695e45a3f9c878f2f6e2fe64113aa1a20ad..9b60254d7b4e8467a5c11d401726298b8f093333 100644 (file)
@@ -487,7 +487,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
        else S_STRLIST("additional-tls-port:", tls_additional_port)
        else S_STRLIST("tls-additional-ports:", tls_additional_port)
        else S_STRLIST("tls-additional-port:", tls_additional_port)
-       else S_STRLIST("tls-session-ticket-keys:", tls_session_ticket_keys)
+       else S_STRLIST_APPEND("tls-session-ticket-keys:", tls_session_ticket_keys)
        else S_STR("tls-ciphers:", tls_ciphers)
        else S_STR("tls-ciphersuites:", tls_ciphersuites)
        else S_YNO("interface-automatic:", if_automatic)
@@ -927,7 +927,7 @@ config_get_option(struct config_file* cfg, const char* opt,
        else O_STR(opt, "tls-cert-bundle", tls_cert_bundle)
        else O_YNO(opt, "tls-win-cert", tls_win_cert)
        else O_LST(opt, "tls-additional-port", tls_additional_port)
-       else O_LST(opt, "tls-session-ticket-keys", tls_session_ticket_keys)
+       else O_LST(opt, "tls-session-ticket-keys", tls_session_ticket_keys.first)
        else O_STR(opt, "tls-ciphers", tls_ciphers)
        else O_STR(opt, "tls-ciphersuites", tls_ciphersuites)
        else O_YNO(opt, "use-systemd", use_systemd)
@@ -1364,7 +1364,7 @@ config_delete(struct config_file* cfg)
        free(cfg->ssl_service_pem);
        free(cfg->tls_cert_bundle);
        config_delstrlist(cfg->tls_additional_port);
-       config_delstrlist(cfg->tls_session_ticket_keys);
+       config_delstrlist(cfg->tls_session_ticket_keys.first);
        free(cfg->tls_ciphers);
        free(cfg->tls_ciphersuites);
        free(cfg->log_identity);
index e87461aaba01f6a7491065a0aa6159fbee023445..3cffdbff93868b7d8cfecb97020f9116dcacaed4 100644 (file)
@@ -121,7 +121,7 @@ struct config_file {
        /** additional tls ports */
        struct config_strlist* tls_additional_port;
        /** secret key used to encrypt and decrypt TLS session ticket */
-       struct config_strlist* tls_session_ticket_keys;
+       struct config_strlist_head tls_session_ticket_keys;
        /** TLS ciphers */
        char* tls_ciphers;
        /** TLS chiphersuites (TLSv1.3) */
index 0a12dcad2d406f7823c3da61d96e7113ae203b75..18739485ae17b6079fa0a591838e3ec4cc91f966 100644 (file)
@@ -3292,7 +3292,7 @@ yyreduce:
 #line 840 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->tls_session_ticket_keys,
+               if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
                        (yyvsp[0].str)))
                        yyerror("out of memory");
        }
index ca9f10db024f8d1bb8935b56732b12e55999b88d..5f52f4d7784782d905b8762cf31480ee526cb25d 100644 (file)
@@ -839,7 +839,7 @@ server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG
 server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG
        {
                OUTYY(("P(server_tls_session_ticket_keys:%s)\n", $2));
-               if(!cfg_strlist_insert(&cfg_parser->cfg->tls_session_ticket_keys,
+               if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
                        $2))
                        yyerror("out of memory");
        }