@@ -117,16 +117,24 @@ tls_options(BodyMap) ->
117
117
undefined ->
118
118
{ok , []};
119
119
SslOptionsMap ->
120
+ CaCertfile = maps :get (<<" cacertfile" >>, SslOptionsMap , undefined ),
121
+ CaCertPemData = maps :get (<<" cacert_pem_data" >>, SslOptionsMap , undefined ),
122
+ TlsOpts0 = case {CaCertfile , CaCertPemData } of
123
+ {undefined , undefined } ->
124
+ [{cacerts , public_key :cacerts_get ()}];
125
+ _ ->
126
+ []
127
+ end ,
120
128
% % NB: for some reason the "cacertfile" key isn't turned into an atom
121
- TlsOpts0 = case maps : get (<< " cacertfile " >>, SslOptionsMap , undefined ) of
129
+ TlsOpts1 = case CaCertfile of
122
130
undefined ->
123
- [] ;
131
+ TlsOpts0 ;
124
132
CaCertfile ->
125
- [{cacertfile , CaCertfile }]
133
+ [{cacertfile , CaCertfile } | TlsOpts0 ]
126
134
end ,
127
- TlsOpts1 = case maps : get (<< " cacert_pem_data " >>, SslOptionsMap , undefined ) of
135
+ TlsOpts2 = case CaCertPemData of
128
136
undefined ->
129
- TlsOpts0 ;
137
+ TlsOpts1 ;
130
138
CaCertPems when is_list (CaCertPems ) ->
131
139
F0 = fun (P ) ->
132
140
case public_key :pem_decode (P ) of
@@ -138,34 +146,34 @@ tls_options(BodyMap) ->
138
146
end
139
147
end ,
140
148
CaCertsDerEncoded = lists :filtermap (F0 , CaCertPems ),
141
- [{cacerts , CaCertsDerEncoded } | TlsOpts0 ];
149
+ [{cacerts , CaCertsDerEncoded } | TlsOpts1 ];
142
150
_ ->
143
- TlsOpts0
151
+ TlsOpts1
144
152
end ,
145
- TlsOpts2 = case maps :get (<<" verify" >>, SslOptionsMap , undefined ) of
153
+ TlsOpts3 = case maps :get (<<" verify" >>, SslOptionsMap , undefined ) of
146
154
undefined ->
147
- TlsOpts1 ;
155
+ TlsOpts2 ;
148
156
Verify ->
149
157
VerifyStr = unicode :characters_to_list (Verify ),
150
- [{verify , list_to_existing_atom (VerifyStr )} | TlsOpts1 ]
158
+ [{verify , list_to_existing_atom (VerifyStr )} | TlsOpts2 ]
151
159
end ,
152
- TlsOpts3 = case maps :get (<<" server_name_indication" >>, SslOptionsMap , disable ) of
160
+ TlsOpts4 = case maps :get (<<" server_name_indication" >>, SslOptionsMap , disable ) of
153
161
disable ->
154
- TlsOpts2 ;
162
+ TlsOpts3 ;
155
163
SniValue ->
156
164
SniStr = unicode :characters_to_list (SniValue ),
157
- [{server_name_indication , SniStr } | TlsOpts2 ]
165
+ [{server_name_indication , SniStr } | TlsOpts3 ]
158
166
end ,
159
- TlsOpts4 = case maps :get (<<" depth" >>, SslOptionsMap , undefined ) of
167
+ TlsOpts5 = case maps :get (<<" depth" >>, SslOptionsMap , undefined ) of
160
168
undefined ->
161
- TlsOpts3 ;
169
+ TlsOpts4 ;
162
170
DepthValue ->
163
171
Depth = rabbit_data_coercion :to_integer (DepthValue ),
164
- [{depth , Depth } | TlsOpts3 ]
172
+ [{depth , Depth } | TlsOpts4 ]
165
173
end ,
166
- TlsOpts5 = case maps :get (<<" versions" >>, SslOptionsMap , undefined ) of
174
+ TlsOpts6 = case maps :get (<<" versions" >>, SslOptionsMap , undefined ) of
167
175
undefined ->
168
- TlsOpts4 ;
176
+ TlsOpts5 ;
169
177
VersionStrs when is_list (VersionStrs ) ->
170
178
F1 = fun (VStr ) ->
171
179
try
@@ -176,7 +184,7 @@ tls_options(BodyMap) ->
176
184
end
177
185
end ,
178
186
Versions = lists :filtermap (F1 , VersionStrs ),
179
- [{versions , Versions } | TlsOpts4 ]
187
+ [{versions , Versions } | TlsOpts5 ]
180
188
end ,
181
- {ok , TlsOpts5 }
189
+ {ok , TlsOpts6 }
182
190
end .
0 commit comments