~ubuntu-branches/ubuntu/trusty/erlang/trusty

« back to all changes in this revision

Viewing changes to lib/kernel/src/gen_tcp.erl

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-05-05 15:48:43 UTC
  • mfrom: (3.5.13 sid)
  • Revision ID: james.westby@ubuntu.com-20110505154843-0om6ekzg6m7ugj27
Tags: 1:14.b.2-dfsg-3ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to.
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
  - debian/patches/series: Do what I meant, and enable build-options.patch
    instead.
* Additional changes:
  - Drop erlang-wx from -et
* Dropped Changes:
  - patches/pcre-crash.patch: CVE-2008-2371: outer level option with
    alternatives caused crash. (Applied Upstream)
  - fix for ssl certificate verification in newSSL: 
    ssl_cacertfile_fix.patch (Applied Upstream)
  - debian/patches/series: Enable native.patch again, to get stripped beam
    files and reduce the package size again. (build-options is what
    actually accomplished this)
  - Remove build-options.patch on advice from upstream and because it caused
    odd build failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
%%
2
2
%% %CopyrightBegin%
3
3
%% 
4
 
%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
 
4
%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
5
5
%% 
6
6
%% The contents of this file are subject to the Erlang Public License,
7
7
%% Version 1.1, (the "License"); you may not use this file except in
46
46
    end.
47
47
 
48
48
connect1(Address,Port,Opts,Timer) ->
49
 
    Mod = mod(Opts),
 
49
    Mod = mod(Opts, Address),
50
50
    case Mod:getaddrs(Address,Timer) of
51
51
        {ok,IPs} ->
52
52
            case Mod:getserv(Port) of
73
73
%% Listen on a tcp port
74
74
%%
75
75
listen(Port, Opts) ->
76
 
    Mod = mod(Opts),
 
76
    Mod = mod(Opts, undefined),
77
77
    case Mod:getserv(Port) of
78
78
        {ok,TP} ->
79
79
            Mod:listen(TP, Opts);
173
173
%% Create a port/socket from a file descriptor 
174
174
%%
175
175
fdopen(Fd, Opts) ->
176
 
    Mod = mod(Opts),
 
176
    Mod = mod(Opts, undefined),
177
177
    Mod:fdopen(Fd, Opts).
178
178
 
179
 
%% Get the tcp_module
180
 
mod() -> inet_db:tcp_module().
 
179
%% Get the tcp_module, but IPv6 address overrides default IPv4
 
180
mod(Address) ->
 
181
    case inet_db:tcp_module() of
 
182
        inet_tcp when tuple_size(Address) =:= 8 ->
 
183
            inet6_tcp;
 
184
        Mod ->
 
185
            Mod
 
186
    end.
181
187
 
182
188
%% Get the tcp_module, but option tcp_module|inet|inet6 overrides
183
 
mod([{tcp_module,Mod}|_]) ->
 
189
mod([{tcp_module,Mod}|_], _Address) ->
184
190
    Mod;
185
 
mod([inet|_]) ->
 
191
mod([inet|_], _Address) ->
186
192
    inet_tcp;
187
 
mod([inet6|_]) ->
 
193
mod([inet6|_], _Address) ->
188
194
    inet6_tcp;
189
 
mod([_|Opts]) ->
190
 
    mod(Opts);
191
 
mod([]) ->
192
 
    mod().
 
195
mod([{ip, Address}|Opts], _) ->
 
196
    mod(Opts, Address);
 
197
mod([{ifaddr, Address}|Opts], _) ->
 
198
    mod(Opts, Address);
 
199
mod([_|Opts], Address) ->
 
200
    mod(Opts, Address);
 
201
mod([], Address) ->
 
202
    mod(Address).