| 9284 | |
| 9285 | |
| 9286 | static 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); |
no test coverage detected