mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
[SCSI] libiscsi: add helper to convert addr to string
This adds a helper to convert a addr struct to a string. This will be used by the drivers in the next patches. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
bbc5261b2c
commit
00f3708e6e
@ -3352,6 +3352,47 @@ int iscsi_session_get_param(struct iscsi_cls_session *cls_session,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iscsi_session_get_param);
|
||||
|
||||
int iscsi_conn_get_addr_param(struct sockaddr_storage *addr,
|
||||
enum iscsi_param param, char *buf)
|
||||
{
|
||||
struct sockaddr_in6 *sin6 = NULL;
|
||||
struct sockaddr_in *sin = NULL;
|
||||
int len;
|
||||
|
||||
switch (addr->ss_family) {
|
||||
case AF_INET:
|
||||
sin = (struct sockaddr_in *)addr;
|
||||
break;
|
||||
case AF_INET6:
|
||||
sin6 = (struct sockaddr_in6 *)addr;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
switch (param) {
|
||||
case ISCSI_PARAM_CONN_ADDRESS:
|
||||
case ISCSI_HOST_PARAM_IPADDRESS:
|
||||
if (sin)
|
||||
len = sprintf(buf, "%pI4\n", &sin->sin_addr.s_addr);
|
||||
else
|
||||
len = sprintf(buf, "%pI6\n", &sin6->sin6_addr);
|
||||
break;
|
||||
case ISCSI_PARAM_CONN_PORT:
|
||||
if (sin)
|
||||
len = sprintf(buf, "%hu\n", be16_to_cpu(sin->sin_port));
|
||||
else
|
||||
len = sprintf(buf, "%hu\n",
|
||||
be16_to_cpu(sin6->sin6_port));
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iscsi_conn_get_addr_param);
|
||||
|
||||
int iscsi_conn_get_param(struct iscsi_cls_conn *cls_conn,
|
||||
enum iscsi_param param, char *buf)
|
||||
{
|
||||
@ -3416,9 +3457,6 @@ int iscsi_host_get_param(struct Scsi_Host *shost, enum iscsi_host_param param,
|
||||
case ISCSI_HOST_PARAM_INITIATOR_NAME:
|
||||
len = sprintf(buf, "%s\n", ihost->initiatorname);
|
||||
break;
|
||||
case ISCSI_HOST_PARAM_IPADDRESS:
|
||||
len = sprintf(buf, "%s\n", ihost->local_address);
|
||||
break;
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
@ -394,6 +394,8 @@ extern void iscsi_session_failure(struct iscsi_session *session,
|
||||
enum iscsi_err err);
|
||||
extern int iscsi_conn_get_param(struct iscsi_cls_conn *cls_conn,
|
||||
enum iscsi_param param, char *buf);
|
||||
extern int iscsi_conn_get_addr_param(struct sockaddr_storage *addr,
|
||||
enum iscsi_param param, char *buf);
|
||||
extern void iscsi_suspend_tx(struct iscsi_conn *conn);
|
||||
extern void iscsi_suspend_queue(struct iscsi_conn *conn);
|
||||
extern void iscsi_conn_queue_work(struct iscsi_conn *conn);
|
||||
|
Loading…
Reference in New Issue
Block a user