11
11
-include (" rabbit_amqp.hrl" ).
12
12
13
13
% % client API
14
- -export ([start_link /3 ,
14
+ -export ([start_link /2 ,
15
15
send_command /3 ,
16
16
send_command /4 ,
17
17
send_command_sync /3 ,
27
27
28
28
-record (state , {
29
29
sock :: rabbit_net :socket (),
30
- max_frame_size :: unlimited | pos_integer (),
31
30
reader :: rabbit_types :connection (),
32
31
pending :: iolist (),
33
32
% % This field is just an optimisation to minimize the cost of erlang:iolist_size/1
46
45
% %% client API %%%
47
46
% %%%%%%%%%%%%%%%%%
48
47
49
- -spec start_link (rabbit_net :socket (), non_neg_integer (), pid ()) ->
48
+ -spec start_link (rabbit_net :socket (), pid ()) ->
50
49
rabbit_types :ok (pid ()).
51
- start_link (Sock , MaxFrame , ReaderPid ) ->
52
- Args = {Sock , MaxFrame , ReaderPid },
50
+ start_link (Sock , ReaderPid ) ->
51
+ Args = {Sock , ReaderPid },
53
52
Opts = [{hibernate_after , ? HIBERNATE_AFTER }],
54
53
gen_server :start_link (? MODULE , Args , Opts ).
55
54
@@ -96,9 +95,8 @@ internal_send_command(Sock, Performative, Protocol) ->
96
95
% %% gen_server callbacks %%%
97
96
% %%%%%%%%%%%%%%%%%%%%%%%%%%%
98
97
99
- init ({Sock , MaxFrame , ReaderPid }) ->
98
+ init ({Sock , ReaderPid }) ->
100
99
State = # state {sock = Sock ,
101
- max_frame_size = MaxFrame ,
102
100
reader = ReaderPid ,
103
101
pending = [],
104
102
pending_size = 0 ,
@@ -142,12 +140,10 @@ format_status(Status) ->
142
140
maps :update_with (
143
141
state ,
144
142
fun (# state {sock = Sock ,
145
- max_frame_size = MaxFrame ,
146
143
reader = Reader ,
147
144
pending = Pending ,
148
145
pending_size = PendingSize }) ->
149
146
#{socket => Sock ,
150
- max_frame_size => MaxFrame ,
151
147
reader => Reader ,
152
148
% % Below 2 fields should always have the same value.
153
149
pending => iolist_size (Pending ),
@@ -189,12 +185,11 @@ internal_send_command_async(Channel, Performative,
189
185
pending_size = PendingSize + iolist_size (Frame )}).
190
186
191
187
internal_send_command_async (Channel , Performative , Payload ,
192
- State = # state {max_frame_size = MaxFrame ,
193
- pending = Pending ,
188
+ State = # state {pending = Pending ,
194
189
pending_size = PendingSize }) ->
195
- Frames = assemble_frame (Channel , Performative , Payload , MaxFrame ),
196
- maybe_flush (State # state {pending = [Frames | Pending ],
197
- pending_size = PendingSize + iolist_size (Frames )}).
190
+ Frame = assemble_frame_with_payload (Channel , Performative , Payload ),
191
+ maybe_flush (State # state {pending = [Frame | Pending ],
192
+ pending_size = PendingSize + iolist_size (Frame )}).
198
193
199
194
assemble_frame (Channel , Performative ) ->
200
195
assemble_frame (Channel , Performative , amqp10_framing ).
@@ -210,8 +205,7 @@ assemble_frame(Channel, Performative, rabbit_amqp_sasl) ->
210
205
PerfBin = amqp10_framing :encode_bin (Performative ),
211
206
amqp10_binary_generator :build_frame (Channel , ? AMQP_SASL_FRAME_TYPE , PerfBin ).
212
207
213
- % %TODO respect MaxFrame
214
- assemble_frame (Channel , Performative , Payload , _MaxFrame ) ->
208
+ assemble_frame_with_payload (Channel , Performative , Payload ) ->
215
209
? TRACE (" channel ~b <-~n ~tp~n followed by ~tb bytes of payload" ,
216
210
[Channel , amqp10_framing :pprint (Performative ), iolist_size (Payload )]),
217
211
PerfIoData = amqp10_framing :encode_bin (Performative ),
0 commit comments