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; }
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; }