int ndmca_test_load_tape(struct ndm_session* sess) { struct ndm_control_agent* ca = sess->control_acb; int rc; ca->tape_mode = NDMP9_TAPE_READ_MODE; ca->is_label_op = 1; rc = ndmca_op_robot_startup(sess, 1); if (rc) return rc; rc = ndmca_connect_tape_agent(sess); if (rc) { ndmconn_destruct(sess->plumb.tape); sess->plumb.tape = NULL; return rc; /* already tattled */ } rc = ndmca_media_load_first(sess); if (rc) return rc; ndmca_tape_close(sess); return 0; }
int ndmca_test_load_tape (struct ndm_session *sess) { struct ndm_control_agent *ca = &sess->control_acb; int rc; ca->tape_mode = NDMP9_TAPE_READ_MODE; ca->is_label_op = 1; rc = ndmca_op_robot_startup (sess, 1); if (rc) return rc; rc = ndmca_connect_tape_agent(sess); if (rc) return rc; rc = ndmca_media_load_first (sess); if (rc) return rc; ndmca_tape_close (sess); return 0; }
int ndmca_backreco_startup (struct ndm_session *sess) { struct ndm_control_agent *ca = sess->control_acb; int rc = 0; if (!ca->job.tape_tcp) rc = ndmca_op_robot_startup (sess, 1); if (rc) return rc; rc = ndmca_connect_data_agent(sess); if (rc) { ndmconn_destruct (sess->plumb.data); sess->plumb.data = NULL; return rc; } if (ca->job.tape_tcp) { return 0; } rc = ndmca_connect_tape_agent(sess); if (rc) { ndmconn_destruct (sess->plumb.tape); sess->plumb.tape = NULL; return rc; } rc = ndmca_mover_set_record_size (sess); if (rc) return rc; rc = ndmca_media_load_first (sess); if (rc) return rc; ndmca_media_calculate_offsets (sess); if (sess->control_acb->swap_connect && (sess->plumb.tape->protocol_version >= 3)) { if (sess->plumb.tape->protocol_version < 4) { rc = ndmca_data_listen (sess); if (rc) return rc; rc = ndmca_media_set_window_current (sess); if (rc) return rc; } else { rc = ndmca_media_set_window_current (sess); if (rc) return rc; rc = ndmca_data_listen (sess); if (rc) return rc; } } else { if (sess->plumb.tape->protocol_version < 4) { rc = ndmca_mover_listen (sess); if (rc) return rc; rc = ndmca_media_set_window_current (sess); if (rc) return rc; } else { rc = ndmca_media_set_window_current (sess); if (rc) return rc; rc = ndmca_mover_listen (sess); if (rc) return rc; } } return 0; }