MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / send_msg

Method send_msg

src/remote/server/server.cpp:6167–6201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6165
6166
6167ISC_STATUS rem_port::send_msg(P_DATA * data, PACKET* sendL)
6168{
6169/**************************************
6170 *
6171 * s e n d _ m s g
6172 *
6173 **************************************
6174 *
6175 * Functional description
6176 * Handle a isc_send operation.
6177 *
6178 **************************************/
6179 LocalStatus ls;
6180 CheckStatusWrapper status_vector(&ls);
6181
6182 Rrq* requestL;
6183 getHandle(requestL, data->p_data_request);
6184
6185 const USHORT number = data->p_data_message_number;
6186 requestL = REMOTE_find_request(requestL, data->p_data_incarnation);
6187 if (number > requestL->rrq_max_msg)
6188 {
6189 (Arg::Gds(isc_badmsgnum)).copyTo(&status_vector);
6190 return this->send_response(sendL, 0, 0, &status_vector, false);
6191 }
6192 RMessage* message = requestL->rrq_rpt[number].rrq_message;
6193 const rem_fmt* format = requestL->rrq_rpt[number].rrq_format;
6194
6195 requestL->rrq_iface->send(&status_vector, data->p_data_incarnation, number,
6196 format->fmt_length, message->msg_address);
6197
6198 message->msg_address = NULL;
6199
6200 return this->send_response(sendL, 0, 0, &status_vector, false);
6201}
6202
6203
6204ISC_STATUS rem_port::send_response(PACKET* p, OBJCT obj, ULONG length, const IStatus* status, bool defer_flag)

Callers 1

process_packetFunction · 0.80

Calls 5

send_responseMethod · 0.95
REMOTE_find_requestFunction · 0.85
GdsClass · 0.85
copyToMethod · 0.45
sendMethod · 0.45

Tested by

no test coverage detected