161
161
%%-----------------------------------------------------------------
162
162
get_options(normal, _Options) ->
164
get_options(ssl, Options) ->
165
Verify = orber_tb:keysearch(ssl_server_verify, Options,
166
orber_env:ssl_server_verify()),
167
Depth = orber_tb:keysearch(ssl_server_depth, Options,
168
orber_env:ssl_server_depth()),
169
Cert = orber_tb:keysearch(ssl_server_certfile, Options,
170
orber_env:ssl_server_certfile()),
171
CaCert = orber_tb:keysearch(ssl_server_cacertfile, Options,
172
orber_env:ssl_server_cacertfile()),
173
Pwd = orber_tb:keysearch(ssl_server_password, Options,
174
orber_env:ssl_server_password()),
175
Key = orber_tb:keysearch(ssl_server_keyfile, Options,
176
orber_env:ssl_server_keyfile()),
177
Ciphers = orber_tb:keysearch(ssl_server_ciphers, Options,
178
orber_env:ssl_server_ciphers()),
179
Timeout = orber_tb:keysearch(ssl_server_cachetimeout, Options,
180
orber_env:ssl_server_cachetimeout()),
183
ssl_server_extra_options([{certfile, Cert},
184
{cacertfile, CaCert},
188
{cachetimeout, Timeout}], [])].
164
get_options(ssl, Options) ->
166
case orber_tb:keysearch(ssl_server_options, Options,
167
orber_env:ssl_server_options()) of
169
Verify = orber_tb:keysearch(ssl_server_verify, Options,
170
orber_env:ssl_server_verify()),
171
Depth = orber_tb:keysearch(ssl_server_depth, Options,
172
orber_env:ssl_server_depth()),
173
Cert = orber_tb:keysearch(ssl_server_certfile, Options,
174
orber_env:ssl_server_certfile()),
175
CaCert = orber_tb:keysearch(ssl_server_cacertfile, Options,
176
orber_env:ssl_server_cacertfile()),
177
Pwd = orber_tb:keysearch(ssl_server_password, Options,
178
orber_env:ssl_server_password()),
179
Key = orber_tb:keysearch(ssl_server_keyfile, Options,
180
orber_env:ssl_server_keyfile()),
181
Ciphers = orber_tb:keysearch(ssl_server_ciphers, Options,
182
orber_env:ssl_server_ciphers()),
183
Timeout = orber_tb:keysearch(ssl_server_cachetimeout, Options,
184
orber_env:ssl_server_cachetimeout()),
185
KeepAlive = orber_tb:keysearch(ssl_server_cachetimeout, Options,
186
orber_env:iiop_ssl_in_keepalive()),
190
{cacertfile, CaCert},
194
{cachetimeout, Timeout},
195
{keepalive, KeepAlive}];
197
case orber_tb:check_illegal_tcp_options(Opts) of
199
check_old_ssl_server_options(Options),
201
{error, IllegalOpts} ->
202
error_logger:error_report([{application, orber},
203
"TCP options not allowed to set on a connection",
205
error("Illegal TCP option")
208
ssl_server_extra_options(SSLOpts, []).
190
210
%%-----------------------------------------------------------------
191
211
%% Func: parse_options/2
266
286
Family = orber_env:ip_version(),
267
287
case inet:getaddr(IP, Family) of
269
Options = [{ip, IPTuple}|get_options(Type, AllOptions)],
271
ProxyOptions = filter_options(AllOptions, []),
272
case orber_socket:listen(Type, Port, Options, false) of
273
{ok, Listen, NewPort} ->
274
{ok, Pid} = orber_iiop_socketsup:start_accept(Type, Listen, Ref,
277
ets:insert(?CONNECTION_DB, #listen{pid = Pid,
280
type = Type, ref = Ref,
282
proxy_options = ProxyOptions}),
283
{reply, {ok, Ref}, State};
285
{reply, Error, State}
289
try [{ip, IPTuple} |get_options(Type, AllOptions)] of
292
ProxyOptions = filter_options(AllOptions, []),
293
case orber_socket:listen(Type, Port, Options, false) of
294
{ok, Listen, NewPort} ->
295
{ok, Pid} = orber_iiop_socketsup:start_accept(Type, Listen, Ref,
298
ets:insert(?CONNECTION_DB, #listen{pid = Pid,
301
type = Type, ref = Ref,
303
proxy_options = ProxyOptions}),
304
{reply, {ok, Ref}, State};
306
{reply, Error, State}
310
{reply, {error, Reason}, State}
288
313
{reply, Other, State}
461
486
update_counter(State, Value) ->
462
487
State#state{counter = State#state.counter + Value}.
490
check_old_ssl_server_options(Options) ->
492
0 = orber_tb:keysearch(ssl_server_verify, Options,
493
orber_env:ssl_server_verify()),
494
1 = orber_tb:keysearch(ssl_server_depth, Options,
495
orber_env:ssl_server_depth()),
496
[] = orber_tb:keysearch(ssl_server_certfile, Options,
497
orber_env:ssl_server_certfile()),
498
[] = orber_tb:keysearch(ssl_server_cacertfile, Options,
499
orber_env:ssl_server_cacertfile()),
500
[] = orber_tb:keysearch(ssl_server_password, Options,
501
orber_env:ssl_server_password()),
502
[] = orber_tb:keysearch(ssl_server_keyfile, Options,
503
orber_env:ssl_server_keyfile()),
504
[] = orber_tb:keysearch(ssl_server_ciphers, Options,
505
orber_env:ssl_server_ciphers()),
506
infinity = orber_tb:keysearch(ssl_server_cachetimeout, Options,
507
orber_env:ssl_server_cachetimeout()),
508
false = orber_tb:keysearch(iiop_ssl_in_keepalive, Options,
509
orber_env:iiop_ssl_in_keepalive())
512
io:format("hej\n",[]),
513
error_logger:warning_report([{application, orber},
514
"Ignoring deprecated ssl server options used together with the ssl_server_options"])