anchor.diff:  	Error -> Error	    
       end.
   
  -con_opt([{raw,A,B,C}|Opts],R,As) ->
  +con_opt([{raw,A,B,C}|Opts],#connect_opts{} = R,As) ->
       con_opt([{raw,{A,B,C}}|Opts],R,As);
  -con_opt([Opt | Opts], R, As) ->
  +con_opt([Opt | Opts], #connect_opts{} = R, As) ->
       case Opt of
   	{ip,IP}     -> con_opt(Opts, R#connect_opts { ifaddr = IP }, As);
   	{ifaddr,IP} -> con_opt(Opts, R#connect_opts { ifaddr = IP }, As);
  
positive.code: 	    BinNS = filename2binary(NS),
  	    case prim_inet:is_sockopt_val(netns, BinNS) of
  		true ->
  		    list_opt(Opts, R#udp_opts { fd = [{netns,BinNS}] }, As);
  		false ->
  		    {error, badarg}
  	    end;
  
negative.code: 	{Name,Val} when is_atom(Name) -> udp_add(Name, Val, R, Opts, As);
  	_ -> {error, badarg}
      end;
  udp_opt([], #udp_opts{} = R, _SockOpts) ->
      {ok, R}.
  
  udp_add(Name, Val, #udp_opts{} = R, Opts, As) ->
      case add_opt(Name, Val, R#udp_opts.opts, As) of
  	{ok, SOpts} ->
  	    udp_opt(Opts, R#udp_opts { opts = SOpts }, As);
  