@@ -83,6 +83,11 @@ struct flb_config_map output_global_properties[] = {
8383        "Accepted values: a positive integer, 'no_limits', 'false', or 'off' to disable retry limits, " 
8484        "or 'no_retries' to disable retries entirely." 
8585    },
86+     {
87+         FLB_CONFIG_MAP_STR , "tls.windows.certstore_name" , NULL ,
88+         0 , FLB_FALSE , 0 ,
89+         "Sets the certstore name on an output (Windows)" 
90+     },
8691
8792    {0 }
8893};
@@ -174,6 +179,11 @@ static void flb_output_free_properties(struct flb_output_instance *ins)
174179    if  (ins -> tls_ciphers ) {
175180        flb_sds_destroy (ins -> tls_ciphers );
176181    }
182+ # if  defined(FLB_SYSTEM_WINDOWS )
183+     if  (ins -> tls_win_certstore_name ) {
184+         flb_sds_destroy (ins -> tls_win_certstore_name );
185+     }
186+ # endif 
177187#endif 
178188}
179189
@@ -751,6 +761,9 @@ struct flb_output_instance *flb_output_new(struct flb_config *config,
751761    instance -> tls_crt_file           =  NULL ;
752762    instance -> tls_key_file           =  NULL ;
753763    instance -> tls_key_passwd         =  NULL ;
764+ # if  defined(FLB_SYSTEM_WINDOWS )
765+     instance -> tls_win_certstore_name  =  NULL ;
766+ # endif 
754767#endif 
755768
756769    if  (plugin -> flags  &  FLB_OUTPUT_NET ) {
@@ -975,6 +988,11 @@ int flb_output_set_property(struct flb_output_instance *ins,
975988    else  if  (prop_key_check ("tls .ciphers ", k , len ) ==  0 ) {
976989        flb_utils_set_plugin_string_property ("tls.ciphers" , & ins -> tls_ciphers , tmp );
977990    }
991+ #  if  defined(FLB_SYSTEM_WINDOWS )
992+     else  if  (prop_key_check ("tls.windows.certstore_name" , k , len ) ==  0  &&  tmp ) {
993+         flb_utils_set_plugin_string_property ("tls.windows.certstore_name" , & ins -> tls_win_certstore_name , tmp );
994+     }
995+ #  endif 
978996#endif 
979997    else  if  (prop_key_check ("storage.total_limit_size" , k , len ) ==  0  &&  tmp ) {
980998        if  (strcasecmp (tmp , "off" ) ==  0  || 
@@ -1359,6 +1377,26 @@ int flb_output_init_all(struct flb_config *config)
13591377                    return  -1 ;
13601378                }
13611379            }
1380+ 
1381+ # if  defined (FLB_SYSTEM_WINDOWS )
1382+         if  (ins -> tls_win_certstore_name ) {
1383+             ret  =  flb_tls_set_certstore_name (ins -> tls , ins -> tls_win_certstore_name );
1384+             if  (ret  ==  -1 ) {
1385+                 flb_error ("[output %s] error specify certstore name in TLS context" ,
1386+                           ins -> name );
1387+ 
1388+                 return  -1 ;
1389+             }
1390+ 
1391+             ret  =  flb_tls_load_system_certificates (ins -> tls );
1392+             if  (ret  ==  -1 ) {
1393+                 flb_error ("[output %s] error set up to load certstore with a user-defined name in TLS context" ,
1394+                           ins -> name );
1395+ 
1396+                 return  -1 ;
1397+             }
1398+         }
1399+ # endif 
13621400        }
13631401#endif 
13641402        /* 
0 commit comments