- id - ackid >= num_requests) {
- status = get_status(fd_in, ackid);
+ id - ackid >= conn->num_requests) {
+ u_int r_id;
+
+ buffer_clear(&msg);
+ get_msg(conn->fd_in, &msg);
+ type = buffer_get_char(&msg);
+ r_id = buffer_get_int(&msg);
+
+ if (type != SSH2_FXP_STATUS)
+ fatal("Expected SSH2_FXP_STATUS(%d) packet, "
+ "got %d", SSH2_FXP_STATUS, type);
+
+ status = buffer_get_int(&msg);
+ debug3("SSH2_FXP_STATUS %d", status);
+
+ /* Find the request in our queue */
+ for(ack = TAILQ_FIRST(&acks);
+ ack != NULL && ack->id != r_id;
+ ack = TAILQ_NEXT(ack, tq))
+ ;
+ if (ack == NULL)
+ fatal("Can't find request for ID %u", r_id);
+ TAILQ_REMOVE(&acks, ack, tq);
+