anchor.diff:  tag_update(Fun, Req) ->
       case catch mochijson2:decode(Req:recv_body(?MAX_TAG_BODY_SIZE)) of
           {'EXIT', _} ->
  -            Req:respond({403, [], ["Invalid request body"]});
  +            Req:respond({403, [], ["Invalid request body."]});
           Value ->
               case Fun(Value) of
                   {ok, Dst} ->
  
positive.code:     Exc = parse_exclude(lists:keysearch("exclude", 1, QS)),
      case ddfs:new_blob(ddfs_master, BlobName, K, Exc) of
          {ok, Urls} when length(Urls) < K ->
              Req:respond({403, [], ["Not enough nodes for replicas"]});
          too_many_replicas ->
              Req:respond({403, [], ["Not enough nodes for replicas"]});
          invalid_name ->
              Req:respond({403, [], ["Invalid prefix"]});
          {ok, Urls} ->
              okjson([list_to_binary(U) || U <- Urls], Req);
          E ->
  
negative.code:     Token = parse_auth_token(Req),
      case Attrib of
          unknown_attribute ->
              Req:respond({404, [], ["Tag attribute not found."]});
          _ ->
              tag_update(fun(Value) ->
                             ddfs:replace_tag(ddfs_master, Tag, Attrib, Value,
  