This is an automated email from the ASF dual-hosted git repository.
jiahuili430 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-ibrowse.git
The following commit(s) were added to refs/heads/main by this push:
new bd9a77f Replace `gen_server:format_status/2` with `format_status/1`
bd9a77f is described below
commit bd9a77f3e3916c9be5f08aebe8e626ca175b147b
Author: Jiahui Li <[email protected]>
AuthorDate: Wed Sep 17 11:13:26 2025 -0500
Replace `gen_server:format_status/2` with `format_status/1`
`gen_server:format_status/2` is deprecated and will be replaced by
`format_status(#{})`.
Fix the following warnings:
```log
[2025-09-17T13:01:35.309Z]
/home/jenkins/workspace/next-multibranch-pipeline_otp-27/src/ibrowse/src/ibrowse_http_client.erl:9:2:
Warning: the callback gen_server:format_status(_,_) is deprecated; use
format_status/1 instead
```
Related PR:
- OTP: https://github.com/erlang/otp/pull/4952
- CouchDB: https://github.com/apache/couchdb/pull/5666
---
src/ibrowse_http_client.erl | 70 ++++++++++++++++++++++++++++-----------------
1 file changed, 43 insertions(+), 27 deletions(-)
diff --git a/src/ibrowse_http_client.erl b/src/ibrowse_http_client.erl
index bee6a70..443772e 100644
--- a/src/ibrowse_http_client.erl
+++ b/src/ibrowse_http_client.erl
@@ -34,7 +34,7 @@
handle_info/2,
terminate/2,
code_change/3,
- format_status/2
+ format_status/1
]).
-include("ibrowse.hrl").
@@ -324,38 +324,54 @@ code_change(_OldVsn, State, _Extra) ->
%%--------------------------------------------------------------------
-%% Function: format_status/2
+%% Function: format_status/1
%% Purpose: Clean process state before logging
-%% Returns: key value list
+%% Returns: key value maps
%%--------------------------------------------------------------------
-format_status(_Opt, [_PDict, State]) ->
- #state{
- reqs=Reqs,
- reply_buffer=ReplyBuf,
- recvd_headers=RCVDHeaders,
- raw_headers=RawHeaders,
- chunk_size_buffer=ChunkSizeBuf,
- cur_req=Request
- } = State,
- ScrubbedReq = Request#request{url=url_strip_password(Request#request.url)},
- Scrubbed = State#state{
- reqs={queue_length, queue:len(Reqs)},
- reply_buffer={byte_size, byte_size(ReplyBuf)},
- recvd_headers=lists:map(fun({K, _V}) -> K end, RCVDHeaders),
- raw_headers={byte_size, byte_size(RawHeaders)},
- chunk_size_buffer={byte_size, byte_size(ChunkSizeBuf)},
- cur_req=ScrubbedReq
- },
- [{data, [{"State",
- lists:zip(
- record_info(fields, state),
- tl(tuple_to_list(Scrubbed))
- )
- }]}].
+format_status(Status) ->
+ maps:map(
+ fun
+ (state, State) ->
+ #state{
+ reqs = Reqs,
+ reply_buffer = ReplyBuf,
+ recvd_headers = RCVDHeaders,
+ raw_headers = RawHeaders,
+ chunk_size_buffer = ChunkSizeBuf,
+ cur_req = Request
+ } = State,
+ Scrubbed = State#state{
+ reqs = {queue_length, queue:len(Reqs)},
+ reply_buffer = {byte_size, get_size(ReplyBuf)},
+ recvd_headers = lists:map(fun({K, _V}) -> K end,
RCVDHeaders),
+ raw_headers = {byte_size, get_size(RawHeaders)},
+ chunk_size_buffer = {byte_size, get_size(ChunkSizeBuf)},
+ cur_req = scrub_req(Request)
+ },
+ maps:from_list(
+ lists:zip(
+ record_info(fields, state),
+ tl(tuple_to_list(Scrubbed))
+ )
+ );
+ (_, Value) ->
+ Value
+ end,
+ Status
+ ).
%%--------------------------------------------------------------------
%%% Internal functions
%%--------------------------------------------------------------------
+get_size(RawData) when is_binary(RawData) ->
+ byte_size(RawData);
+get_size(_) ->
+ 0.
+
+scrub_req(#request{} = Req) ->
+ Req#request{url = url_strip_password(Req#request.url)};
+scrub_req(Other) ->
+ Other.
url_strip_password(Url) ->
re:replace(Url,