Esempio n. 1
0
int iscsi_init_transport(struct iscsi_context *iscsi,
			 enum iscsi_transport_type transport) {
	iscsi->transport = transport;

	switch (iscsi->transport) {
	case TCP_TRANSPORT:
		iscsi_init_tcp_transport(iscsi);
		break;
#ifdef HAVE_LINUX_ISER
	case ISER_TRANSPORT:
		iscsi_init_iser_transport(iscsi);
		break;
#endif
	default:
		iscsi_set_error(iscsi, "Unfamiliar transport type");
		return -1;
	}

	return 0;
}
Esempio n. 2
0
int iscsi_init_transport(struct iscsi_context *iscsi,
			 enum iscsi_transport_type transport) {
	struct tcp_transport *tcp_transport;
#ifdef HAVE_LINUX_ISER
	struct iser_transport *iser_transport;
#endif

	if (iscsi->t) {
		iscsi_free(iscsi, iscsi->t);
		iscsi->t = NULL;
	}
	iscsi->transport = transport;

	switch (iscsi->transport) {
	case TCP_TRANSPORT:
		tcp_transport = iscsi_malloc(iscsi, sizeof(struct tcp_transport));
		if (tcp_transport == NULL) {
			iscsi_set_error(iscsi, "Couldn't allocate memory for transport\n");
			return -1;
		}
		iscsi->t = &tcp_transport->t;
		iscsi_init_tcp_transport(iscsi);
		break;
#ifdef HAVE_LINUX_ISER
	case ISER_TRANSPORT:
		iser_transport = iscsi_malloc(iscsi, sizeof(struct iser_transport));
		if (iser_transport == NULL) {
			iscsi_set_error(iscsi, "Couldn't allocate memory for transport\n");
			return -1;
		}
		iscsi->t = &iser_transport->t;
		iscsi_init_iser_transport(iscsi);
		break;
#endif
	default:
		iscsi_set_error(iscsi, "Unfamiliar transport type");
		return -1;
	}

	return 0;
}