abstract transport to static driver functions and opaque driver specific information.
This splits a transport into static driver specific functions for the common iscsi commands. Optionally, a driver specific opaque memory is introduced which is currently only used by iSER transport. Last a lot of functions changed to static. Signed-off-by: Peter Lieven <pl@kamp.de>
This commit is contained in:
52
lib/login.c
52
lib/login.c
@@ -852,14 +852,14 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
|
||||
|
||||
/* initiator name */
|
||||
if (iscsi_login_add_initiatorname(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* optional alias */
|
||||
if (iscsi->alias[0]) {
|
||||
if (iscsi_login_add_alias(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -867,134 +867,134 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
|
||||
/* target name */
|
||||
if (iscsi->session_type == ISCSI_SESSION_NORMAL) {
|
||||
if (iscsi_login_add_targetname(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* session type */
|
||||
if (iscsi_login_add_sessiontype(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* header digest */
|
||||
if (iscsi_login_add_headerdigest(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* auth method */
|
||||
if (iscsi_login_add_authmethod(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* auth algorithm */
|
||||
if (iscsi_login_add_authalgorithm(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* chap username */
|
||||
if (iscsi_login_add_chap_username(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* chap response */
|
||||
if (iscsi_login_add_chap_response(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* data digest */
|
||||
if (iscsi_login_add_datadigest(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* initial r2t */
|
||||
if (iscsi_login_add_initialr2t(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* immediate data */
|
||||
if (iscsi_login_add_immediatedata(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* max burst length */
|
||||
if (iscsi_login_add_maxburstlength(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* first burst length */
|
||||
if (iscsi_login_add_firstburstlength(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* default time 2 wait */
|
||||
if (iscsi_login_add_defaulttime2wait(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* default time 2 retain */
|
||||
if (iscsi_login_add_defaulttime2retain(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* max outstanding r2t */
|
||||
if (iscsi_login_add_maxoutstandingr2t(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* errorrecoverylevel */
|
||||
if (iscsi_login_add_errorrecoverylevel(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* ifmarker */
|
||||
if (iscsi_login_add_ifmarker(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* ofmarker */
|
||||
if (iscsi_login_add_ofmarker(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* maxconnections */
|
||||
if (iscsi_login_add_maxconnections(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* max recv data segment length */
|
||||
if (iscsi_login_add_maxrecvdatasegmentlength(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* data pdu in order */
|
||||
if (iscsi_login_add_datapduinorder(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* data sequence in order */
|
||||
if (iscsi_login_add_datasequenceinorder(iscsi, pdu) != 0) {
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1005,7 +1005,7 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
|
||||
if (iscsi_queue_pdu(iscsi, pdu) != 0) {
|
||||
iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi "
|
||||
"pdu.");
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1322,7 +1322,7 @@ iscsi_logout_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
|
||||
if (iscsi_queue_pdu(iscsi, pdu) != 0) {
|
||||
iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi "
|
||||
"logout pdu.");
|
||||
iscsi->t->free_pdu(iscsi, pdu);
|
||||
iscsi->drv->free_pdu(iscsi, pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user