anchor.diff:  do_net_server_readwrite_common2(Sock, OffsetHex, LenHex, FileBin, DataDir,
                                   FileOpts, DoItFun,
                                   EpochID, Wedged_p, CurrentEpochId) ->
  +    NoSuchFileFun = fun(Sck) ->
  +                            ok = gen_tcp:send(Sck, <<"ERROR NO-SUCH-FILE\n">>)
  +                    end,
  +    BadIoFun = fun(Sck) ->
  +                       ok = gen_tcp:send(Sck, <<"ERROR BAD-IO\n">>)
  +               end,
  +    do_net_server_readwrite_common2(Sock, OffsetHex, LenHex, FileBin, DataDir,
  +                                    FileOpts, DoItFun,
  +                                    EpochID, Wedged_p, CurrentEpochId,
  +                                    NoSuchFileFun, BadIoFun).
  +
  +do_net_server_readwrite_common2(Sock, OffsetHex, LenHex, FileBin, DataDir,
  +                                FileOpts, DoItFun,
  +                                EpochID, Wedged_p, CurrentEpochId,
  +                                NoSuchFileFun, BadIoFun) ->
       <<Offset:64/big>> = machi_util:hexstr_to_bin(OffsetHex),
       <<Len:32/big>> = machi_util:hexstr_to_bin(LenHex),
       {_, Path} = machi_util:make_data_filename(DataDir, FileBin),
  
positive.code:           epoch_id        :: 'undefined' | pv1_epoch(),
            dbg_props = []  :: list(), % proplist
            props = []      :: list()  % proplist
           }).
  
  start_link([{FluName, TcpPort, DataDir}|Rest])
  
negative.code:                     do_projection_command(Sock, LenHex, S);
                  <<"WEDGE-STATUS\n">> ->
                      do_wedge_status(FluName, Sock);
                  <<"PUT ", _/binary>>=PutLine ->
                      http_server_hack(FluName, PutLine, Sock, S);
                  <<"GET ", _/binary>>=PutLine ->
                      http_server_hack(FluName, PutLine, Sock, S);
                  _ ->
                      machi_util:verb("Else Got: ~p\n", [Line]),
                      io:format(user, "TODO: Else Got: ~p\n", [Line]),
  