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

Function receive_packet_noqueue

src/remote/client/interface.cpp:9286–9399  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9284
9285
9286static void receive_packet_noqueue(rem_port* port, PACKET* packet)
9287{
9288/**************************************
9289 *
9290 * r e c e i v e _ p a c k e t _ n o q u e u e
9291 *
9292 **************************************
9293 *
9294 * Functional description
9295 * Receive a packet and check for a network
9296 * error on the receive.
9297 * Note: SOME of the network lower level protocols
9298 * will set up a status vector when errors
9299 * occur, but other ones won't.
9300 * So this routine sets up an error result
9301 * for the vector prior to going into the
9302 * network layer. Note that we can't
9303 * RESET the status vector as one thing
9304 * that can be received is a new status vector
9305 *
9306 * See also cousin routine: send_packet, send_partial_packet
9307 *
9308 **************************************/
9309
9310 // Receive responses for all deferred packets that were already sent
9311
9312 if (port->port_deferred_packets)
9313 {
9314 while (port->port_deferred_packets->getCount())
9315 {
9316 rem_que_packet* const p = port->port_deferred_packets->begin();
9317 if (!p->sent)
9318 break;
9319
9320 OBJCT stmt_id = 0;
9321 bool bCheckResponse = false, bFreeStmt = false, bAssign = false;
9322
9323 switch (p->packet.p_operation)
9324 {
9325 case op_execute:
9326 stmt_id = p->packet.p_sqldata.p_sqldata_statement;
9327 bCheckResponse = true;
9328 bAssign = true;
9329 break;
9330
9331 case op_batch_msg:
9332 stmt_id = p->packet.p_batch_msg.p_batch_statement;
9333 bCheckResponse = true;
9334 break;
9335
9336 case op_batch_create:
9337 stmt_id = p->packet.p_batch_create.p_batch_statement;
9338 bCheckResponse = true;
9339 break;
9340
9341 case op_free_statement:
9342 stmt_id = p->packet.p_sqlfree.p_sqlfree_statement;
9343 bFreeStmt = (p->packet.p_sqlfree.p_sqlfree_option == DSQL_drop);

Callers 4

batch_dsql_fetchFunction · 0.85
batch_gds_receiveFunction · 0.85
receive_after_startFunction · 0.85
receive_packetFunction · 0.85

Calls 8

REMOTE_check_responseFunction · 0.85
REMOTE_free_packetFunction · 0.85
release_sql_requestFunction · 0.70
saveExceptionMethod · 0.60
getCountMethod · 0.45
beginMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected