Author: fdmanana
Date: Wed Nov 10 19:24:59 2010
New Revision: 1033657

URL: http://svn.apache.org/viewvc?rev=1033657&view=rev
Log:
Yet another ibrowse fix.
Patch submitted upstream:  
https://github.com/cmullaparthi/ibrowse/issues/issue/20


Modified:
    couchdb/branches/new_replicator/src/ibrowse/ibrowse_http_client.erl
    couchdb/branches/new_replicator/src/ibrowse/ibrowse_lib.erl

Modified: couchdb/branches/new_replicator/src/ibrowse/ibrowse_http_client.erl
URL: 
http://svn.apache.org/viewvc/couchdb/branches/new_replicator/src/ibrowse/ibrowse_http_client.erl?rev=1033657&r1=1033656&r2=1033657&view=diff
==============================================================================
--- couchdb/branches/new_replicator/src/ibrowse/ibrowse_http_client.erl 
(original)
+++ couchdb/branches/new_replicator/src/ibrowse/ibrowse_http_client.erl Wed Nov 
10 19:24:59 2010
@@ -544,7 +544,7 @@ do_send_body1(Source, Resp, State, TE) -
 maybe_chunked_encode(Data, false) ->
     Data;
 maybe_chunked_encode(Data, true) ->
-    [ibrowse_lib:dec2hex(4, size(to_binary(Data))), "\r\n", Data, "\r\n"].
+    [ibrowse_lib:dec2hex(byte_size(to_binary(Data))), "\r\n", Data, "\r\n"].
 
 do_close(#state{socket = undefined})            ->  ok;
 do_close(#state{socket = Sock,
@@ -927,23 +927,23 @@ chunk_request_body(Body, _ChunkSize, Acc
 chunk_request_body(Body, ChunkSize, Acc) when is_binary(Body),
                                               size(Body) >= ChunkSize ->
     <<ChunkBody:ChunkSize/binary, Rest/binary>> = Body,
-    Chunk = [ibrowse_lib:dec2hex(4, ChunkSize),"\r\n",
+    Chunk = [ibrowse_lib:dec2hex(ChunkSize),"\r\n",
              ChunkBody, "\r\n"],
     chunk_request_body(Rest, ChunkSize, [Chunk | Acc]);
 chunk_request_body(Body, _ChunkSize, Acc) when is_binary(Body) ->
     BodySize = size(Body),
-    Chunk = [ibrowse_lib:dec2hex(4, BodySize),"\r\n",
+    Chunk = [ibrowse_lib:dec2hex(BodySize),"\r\n",
              Body, "\r\n"],
     LastChunk = "0\r\n",
     lists:reverse(["\r\n", LastChunk, Chunk | Acc]);
 chunk_request_body(Body, ChunkSize, Acc) when length(Body) >= ChunkSize ->
     {ChunkBody, Rest} = split_list_at(Body, ChunkSize),
-    Chunk = [ibrowse_lib:dec2hex(4, ChunkSize),"\r\n",
+    Chunk = [ibrowse_lib:dec2hex(ChunkSize),"\r\n",
              ChunkBody, "\r\n"],
     chunk_request_body(Rest, ChunkSize, [Chunk | Acc]);
 chunk_request_body(Body, _ChunkSize, Acc) when is_list(Body) ->
     BodySize = length(Body),
-    Chunk = [ibrowse_lib:dec2hex(4, BodySize),"\r\n",
+    Chunk = [ibrowse_lib:dec2hex(BodySize),"\r\n",
              Body, "\r\n"],
     LastChunk = "0\r\n",
     lists:reverse(["\r\n", LastChunk, Chunk | Acc]).

Modified: couchdb/branches/new_replicator/src/ibrowse/ibrowse_lib.erl
URL: 
http://svn.apache.org/viewvc/couchdb/branches/new_replicator/src/ibrowse/ibrowse_lib.erl?rev=1033657&r1=1033656&r2=1033657&view=diff
==============================================================================
--- couchdb/branches/new_replicator/src/ibrowse/ibrowse_lib.erl (original)
+++ couchdb/branches/new_replicator/src/ibrowse/ibrowse_lib.erl Wed Nov 10 
19:24:59 2010
@@ -19,7 +19,7 @@
          url_encode/1,
          decode_rfc822_date/1,
          status_code/1,
-         dec2hex/2,
+         dec2hex/1,
          drv_ue/1,
          drv_ue/2,
          encode_base64/1,
@@ -163,14 +163,10 @@ status_code(507) -> insufficient_storage
 status_code(X) when is_list(X) -> status_code(list_to_integer(X));
 status_code(_)   -> unknown_status_code.
 
-%% @doc dec2hex taken from gtk.erl in std dist
-%% M = integer() -- number of hex digits required
+%% @doc Returns a string with the hexadecimal representation of a given 
decimal.
 %% N = integer() -- the number to represent as hex
-%% @spec dec2hex(M::integer(), N::integer()) -> string()
-dec2hex(M,N) -> dec2hex(M,N,[]).
-
-dec2hex(0,_N,Ack) -> Ack;
-dec2hex(M,N,Ack) -> dec2hex(M-1,N bsr 4,[d2h(N band 15)|Ack]).
+%% @spec dec2hex(N::integer()) -> string()
+dec2hex(N) -> lists:flatten(io_lib:format("~.16B", [N])).
 
 %% @doc Implements the base64 encoding algorithm. The output data type matches 
in the input data type.
 %% @spec encode_base64(In) -> Out


Reply via email to