anchor.diff:  	      end,
   	      From, State);
   	%%
  -	{res_set, resolv_conf=Option, Fname} ->
  +	{res_set, resolv_conf=Option, Fname_or_Tm} ->
   	    handle_set_file(
  -	      Option, Fname, res_resolv_conf_tm, res_resolv_conf_info,
  -	      fun (Bin) ->
  +	      Option, Fname_or_Tm, res_resolv_conf_tm, res_resolv_conf_info,
  +	      fun (File, Bin) ->
   		      case inet_parse:resolv(
  -			     Fname, {chars,Bin}) of
  +			     File, {chars,Bin}) of
   			  {ok,Opts} ->
   			      Search =
   				  lists:foldl(
  
positive.code: gethostname()         -> db_get(hostname).
  
  res_update_conf() ->
      res_update(res_resolv_conf, res_resolv_conf_tm, res_resolv_conf_info,
  	       set_resolv_conf_tm, fun set_resolv_conf/1).
  
  res_update_hosts() ->
      res_update(res_hosts_file, res_hosts_file_tm, res_hosts_file_info,
  	       set_hosts_file_tm, fun set_hosts_file/1).
  
  res_update(Tag, TagTm, TagInfo, TagSetTm, SetFun) ->
      case db_get(TagTm) of
  	undefined -> ok;
  	TM ->
  	    case times() of
  		Now when Now >= TM + ?RES_FILE_UPDATE_TM ->
  		    case db_get(Tag) of
  			undefined ->
  			    SetFun("");
  			"" ->
  			    SetFun("");
  			File ->
  			    case erl_prim_loader:read_file_info(File) of
  				{ok, Finfo0} ->
  				    Finfo =
  					Finfo0#file_info{access = undefined,
  							 atime = undefined},
  				    case db_get(TagInfo) of
  					Finfo ->
  					    call({TagSetTm, Now});
  					_ ->
  					    SetFun(File)
  				    end;
  				_ ->
  				    call({TagSetTm, Now}),
  				    error
  			    end
  		    end;
  		_ -> ok
  	    end
      end.
  
negative.code: %%% Internal functions
  %%%----------------------------------------------------------------------
  
  handle_set_file(
    Option, Tm, TagTm, TagInfo, ParseFun, From, #state{db=Db}=State)
    when is_integer(Tm) ->
      %%
      %% Maybe update file content
      %%
      case ets:lookup(Db, TagTm) of
          [] ->
              %% Option no longer set - ignore update
              {reply, ok, State};
          [{_, Tm}] ->
              %% Current update request
              [{_, File}] = ets:lookup(Db, res_optname(Option)),
              [{_, Finfo}] = ets:lookup(Db, TagInfo),
              handle_update_file(
                Finfo, File, TagTm, TagInfo, ParseFun, From, State);
          [_] ->
              %% Late request - ignore update
              {reply, ok, State}
      end;
  handle_set_file(
    Option, Fname, TagTm, TagInfo, ParseFun, From, #state{db=Db}=State) ->
      case res_check_option(Option, Fname) of
  	true when Fname =:= "" ->
              %% Delete file content and monitor
  	    ets:insert(Db, {res_optname(Option), Fname}),
  	    ets:delete(Db, TagInfo),
  	    ets:delete(Db, TagTm),
  	    handle_set_file(ParseFun, Fname, <<>>, From, State);
  	true when ParseFun =:= undefined ->
              %% Set file name and monitor
  	    File = filename:flatten(Fname),
  	    ets:insert(Db, {res_optname(Option), File}),
  	    ets:insert(Db, {TagInfo, undefined}),
  