Esempio n. 1
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) {
    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;
}
Esempio n. 2
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;
}
Esempio n. 3
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;
}