49 Commits

Author SHA1 Message Date
Bright Chen c9778ca1a3 Refactor NULL with nullptr in test (#3464) 2026-08-19 13:26:18 +08:00
Yang Liming 11b7d80049 Support checksumming the attachment together with the body
Controller::set_request/response_checksum_type() previously only
covered the serialized protobuf body; the attachment (if any) was
never protected. Add set_request/response_checksum_attachment(bool)
so callers can opt the attachment into the same checksum.

- baidu_rpc_meta.proto: add RpcMeta.checksum_with_attachment so the
  receiver knows whether to fold the attachment into verification.
  Defaults to false, so old peers that don't understand the field
  keep verifying against the body only (backward compatible).
- Controller: add the two setters/getters, thread the flag through
  ClientSettings (Save/ApplyClientSettings) so ParallelChannel/
  SelectiveChannel sub-controllers inherit it correctly, and reset it
  in ResetPods().
- ChecksumIn: add an optional `attachment' field consumed by checksum
  handlers.
- crc32c_checksum.cpp: extend the crc32c over body then attachment (in
  that fixed order) when requested.
- baidu_rpc_protocol.cpp: wire checksum_attachment through
  SerializeRpcMessage/DeserializeRpcMessage and every client/server
  send/receive path; skip it when progressive attachment reading is
  enabled since there's no single complete IOBuf to checksum in that
  case.

Add brpc_checksum_unittest.cpp covering Crc32cCompute/Crc32cVerify
directly (including corruption/omission/order sensitivity) and an
end-to-end Server/Channel test for both request- and response-side
attachment checksums.
2026-07-27 11:01:39 +08:00
Mao d92e7cff8b Support SO_BINDTODEVICE and bind client_host (#3179)
* bind_client_ip

* fix UT & review

* add  client_host UT

* updated to support SO_BINDTODEVICE.

* updated to support SO_BINDTODEVICE and bind client_host.

* review
2026-01-26 10:57:05 +08:00
Yang,Liming 663625a73b support checksum (#2967) 2025-06-20 14:16:35 +08:00
Bright Chen a1877bc077 Support various payload of baidu-std: json, proto-json and proto-text (#2946)
* Support various payload of baidu-std: json, proto-json and proto-text

* Refactor implementation of compress
2025-04-16 17:03:30 +08:00
Bright Chen c93d0e06f5 Fix gflag namespace (#2877) 2025-01-18 17:49:51 +08:00
Bright Chen f7b4a0f281 Send unauthorized response to client when authentication fails (#2744)
* Send unauthorized response to client when authentication fails

* Send unauthorized response by default
2024-09-26 10:46:24 +08:00
Bright Chen 9643150b8f Support arena rpc pb message factory (#2751)
* Support arena rpc pb message factory

* Update server document

* Fix comment
2024-09-08 18:03:00 +02:00
Bright Chen 48996cfc90 Support rpc protobuf message factory interface (#2718)
* Support rpc protobuf message factory interface

* Update cn/server.md
2024-08-26 10:27:21 +08:00
Bright Chen 0f5e102a21 Support proxy and generic call of baidu protocol (#2629)
* Support proxy and generic call of baidu protocol

* Add example
2024-06-13 12:21:52 +08:00
Bright Chen 2098dd3927 Support user fields of baidu protocol (#2406)
* Support user fields of baidu protocol

* Use request_user_fields before RPC
2023-12-20 11:49:31 +08:00
wwbmmm 96f0f02c72 Revert "Merge pull request #2108 from chenBright/invalid_port"
This reverts commit 14ff36a2cd, reversing
changes made to b502fb7ef1.
2023-02-06 18:09:24 +08:00
ChenBright e75ff7d8e4 check invalid port 2023-02-04 15:43:37 +08:00
chenBright fb619582a0 http response uses brpc error code (#1927)
* http response uses brpc error code

* add gflag for using http error code

* add unit test of http error code
2022-09-26 10:10:22 +08:00
Weibing Wang 0db9263b16 Merge pull request #1604 from wasphin/feature/single-repeated-to-array
Add an option to allow serialize/deserialize to/from a json array.
2022-03-30 10:14:16 +08:00
wxf cec3569e29 Add test case for `pb_single_repeated_to_array' 2021-11-12 18:35:42 +08:00
liushuai06 b7b6cd3f4f Implement brpc server Start(PortRange, const ServerOptions*) 2021-07-06 13:41:01 +08:00
wxf 4eea737739 Accessing via default url 2020-09-01 22:20:33 +08:00
Weibing Wang 078051f9bf Update license header to Apache 2019-06-20 14:22:57 +08:00
Jason S Zang 8c4554f8c6 Revert to obj lib for some tests that rely on differtly built non-test objects. Make ctest work right. 2019-05-30 07:37:26 +01:00
gejun cde9a4a04a Make some timeout in UT larger 2019-04-18 18:32:19 +08:00
gejun 51259c0b5d Move reuse_addr from server.cpp to endpoint.cpp and make the code more robust 2019-03-22 19:45:06 +08:00
gejun 6b53cac121 Make printing socket in logs more readable 2018-09-27 17:24:28 +08:00
gejun 349f9087ae Fix UT 2018-09-26 15:55:14 +08:00
old-bear 3cd47b702b + Enable SSL request for single endpoint channel 2018-04-10 14:51:55 +08:00
gejun 3d9a6ec81b add missing files for MAC 2018-01-12 19:49:49 +08:00
gejun 7acd162322 Controller.SetFailed sets status_code as well 2018-01-08 17:13:21 +08:00
gejun 09cc273d34 Replace 'Baidu RPC' with 'brpc' 2017-11-03 14:14:50 +08:00
gejun 7bef18dd8a make a sleep in brpc_server_unittest longer 2017-10-25 11:04:01 +08:00
gejun 9cce98dea5 Remove warnings on abs under clang 2017-10-24 18:22:23 +08:00
old-bear 90a44b820f + Use openssl instead of curl to test SNI 2017-10-23 15:36:21 +08:00
gejun 6425195735 Show output of curl if some cases in test/brpc_server_unittest.cpp fail 2017-10-23 14:26:45 +08:00
old-bear 25a567d4a9 + Temporary disable certificate validation for brpc_server_unittest and add some debug info 2017-10-23 14:26:40 +08:00
gejun a6579040e5 r35395: server supports port=0 2017-10-23 12:53:29 +08:00
gejun 01bcd2cf48 remove explicit deps on gperftools/profiler.h to adapt different versions of gperftools better 2017-09-20 15:25:50 +08:00
Ge Jun 5711cfce8e Merge pull request #23 from brpc/jiangrujie-dev
Fix UT of server which rely on the format of curl's output
2017-09-19 20:40:09 +08:00
gejun 8ae7b0c898 Decide namespace of gflags in config_brpc.sh 2017-09-19 20:38:38 +08:00
old-bear f3553a12a2 Fix UT of server which rely on the format of curl's output 2017-09-19 20:07:50 +08:00
gejun f4b97bbb74 Remove UT's deps on gmock & fix UT 2017-09-19 16:42:33 +08:00
chenzhangyi01 6fdeeac28e butil/logging could be overwritten by glog
Change-Id: I14cf8724175d1fb5237fe20228f822afdd8521cc
2017-09-12 11:55:30 +08:00
gejun 8dbe7b389b Patch svn r35243 r35258 r35263 2017-09-09 21:02:19 +08:00
gejun 80f9f2f160 Rename base to butil to avoid potential naming conflicts 2017-09-08 17:17:35 +08:00
gejun 023371e643 Change copyright to Baidu, Inc 2017-09-05 19:44:12 +08:00
gejun 24c64eaa2b Patch svn r35218 2017-09-04 17:12:59 +08:00
gejun 0630ae1e8a Patch svn r35206 & fix compilation of tools 2017-09-02 18:29:40 +08:00
gejun f354819788 Patch svn r35012 r35019 r35020
Change-Id: I554d2e9583b788a4b78c0f9a560d2cb9a186070f
2017-08-14 16:46:59 +08:00
gejun 03018d4c84 move bad_method_service.h/cpp into builtin
Change-Id: Ia8090705fbb56affd45ba6234cf85eeb8809c3a4
2017-08-03 12:03:33 +08:00
gejun 48a0e32303 patch svn r34953
Change-Id: I5cf6ae18d3cf0826da2d5d4efa2939e0d6e7d6b7
2017-08-02 14:36:01 +08:00
gejun 7998155962 first working CI
Change-Id: I68c0cafba040debefd660c5213f21e6fc702a4a6
2017-07-25 23:02:28 +08:00