anchor.diff:  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
        terminate/2, code_change/3]).
   
  --record(state, {sock, seenqids, broadcast, port}).
  +-record(state, {sock, sockp, seenqids, broadcast, port}).
   
   -define(BROADCAST, {239,255,0,1}). % default, can be changed in config
   -define(PORT, 60210). % can be changed in config
  
positive.code: 	LAddr = {0,0,0,0},
      Port = ?CONFVAL({lan,port},?PORT),
      BC = ?CONFVAL({lan,broadcast},?BROADCAST),
      {ok, Sock} = gen_udp:open(Port, [binary, 
                                       {reuseaddr, true},{ip, BC}, 
                                       {add_membership, {BC, LAddr}}]),
      resolver:add_resolver(?MODULE, name(self()), weight(self()), targettime(self()), self()),
      {ok, #state{sock=Sock, 
                  seenqids=SQ, 
                  broadcast=BC,
                  port=Port
  
negative.code:     gen_udp:send(State#state.sock, Ip, Port, mochijson2:encode(Msg)),
      {noreply, State}.
  
  % could me a msg from broadcast socket, or private one (meaning a direct reply):
  handle_info({udp, _Sock, {A,B,C,D}=Ip, _InPortNo, Packet}, State) ->
      ?LOG(debug, "received msg: ~s", [Packet]),
      {struct, L} = mochijson2:decode(Packet),
      case proplists:get_value(<<"_msgtype">>,L) of
  