@@ -793,6 +793,7 @@ defmodule Hermes.Client.Base do
793
793
@ impl true
794
794
def handle_call ( { :operation , % Operation { } = operation } , from , state ) do
795
795
method = operation . method
796
+ opts = [ headers: operation . headers , timeout: operation . timeout ]
796
797
797
798
params_with_token =
798
799
State . add_progress_token_to_params ( operation . params , operation . progress_opts )
@@ -801,7 +802,7 @@ defmodule Hermes.Client.Base do
801
802
{ request_id , updated_state } =
802
803
State . add_request_from_operation ( state , operation , from ) ,
803
804
{ :ok , request_data } <- encode_request ( method , params_with_token , request_id ) ,
804
- :ok <- send_to_transport ( state . transport , request_data , operation . headers ) do
805
+ :ok <- send_to_transport ( state . transport , request_data , opts ) do
805
806
Telemetry . execute (
806
807
Telemetry . event_client_request ( ) ,
807
808
% { system_time: System . system_time ( ) } ,
@@ -1421,24 +1422,12 @@ defmodule Hermes.Client.Base do
1421
1422
send_notification ( state , "notifications/cancelled" , params )
1422
1423
end
1423
1424
1424
- defp send_to_transport ( transport , data , headers ) when not is_nil ( headers ) do
1425
- opts = [ headers: headers ]
1426
-
1425
+ defp send_to_transport ( transport , data , opts \\ [ ] ) do
1427
1426
with { :error , reason } <- transport . layer . send_message ( transport . name , data , opts ) do
1428
1427
{ :error , Error . transport ( :send_failure , % { original_reason: reason } ) }
1429
1428
end
1430
1429
end
1431
1430
1432
- defp send_to_transport ( transport , data , _headers ) do
1433
- send_to_transport ( transport , data )
1434
- end
1435
-
1436
- defp send_to_transport ( transport , data ) do
1437
- with { :error , reason } <- transport . layer . send_message ( transport . name , data ) do
1438
- { :error , Error . transport ( :send_failure , % { original_reason: reason } ) }
1439
- end
1440
- end
1441
-
1442
1431
defp send_notification ( state , method , params \\ % { } ) do
1443
1432
with { :ok , notification_data } <- encode_notification ( method , params ) do
1444
1433
send_to_transport ( state . transport , notification_data )
@@ -1532,7 +1521,7 @@ defmodule Hermes.Client.Base do
1532
1521
1533
1522
defp send_sampling_response ( id , response , state ) do
1534
1523
transport = state . transport
1535
- :ok = transport . layer . send_message ( transport . name , response )
1524
+ :ok = transport . layer . send_message ( transport . name , response , [ ] )
1536
1525
1537
1526
Telemetry . execute (
1538
1527
Telemetry . event_client_response ( ) ,
@@ -1544,7 +1533,7 @@ defmodule Hermes.Client.Base do
1544
1533
defp send_sampling_error ( id , message , code , reason , % { transport: transport } = state ) do
1545
1534
error = % Error { code: - 1 , message: message , data: % { "reason" => reason } }
1546
1535
{ :ok , response } = Error . to_json_rpc ( error , id )
1547
- :ok = transport . layer . send_message ( transport . name , response )
1536
+ :ok = transport . layer . send_message ( transport . name , response , [ ] )
1548
1537
1549
1538
Logging . client_event (
1550
1539
"sampling_error" ,
0 commit comments