-/*
+/*
Copyright (C) 2010 by Ronnie Sahlberg <ronniesahlberg@gmail.com>
This program is free software; you can redistribute it and/or modify
along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
-#define _GNU_SOURCE
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
+#include <ccan/compiler/compiler.h>
#include "iscsi.h"
#include "iscsi-private.h"
int iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb, void *private_data)
{
struct iscsi_pdu *pdu;
- char *str;
+ const char *str;
+ char *astr;
int ret;
if (iscsi == NULL) {
/* initiator name */
- if (asprintf(&str, "InitiatorName=%s", iscsi->initiator_name) == -1) {
+ if (asprintf(&astr, "InitiatorName=%s", iscsi->initiator_name) == -1) {
printf("asprintf failed\n");
iscsi_free_pdu(iscsi, pdu);
return -5;
}
- ret = iscsi_pdu_add_data(iscsi, pdu, (unsigned char *)str, strlen(str)+1);
- free(str);
+ ret = iscsi_pdu_add_data(iscsi, pdu, (unsigned char *)astr, strlen(astr)+1);
+ free(astr);
if (ret != 0) {
printf("pdu add data failed\n");
iscsi_free_pdu(iscsi, pdu);
/* optional alias */
if (iscsi->alias) {
- if (asprintf(&str, "InitiatorAlias=%s", iscsi->alias) == -1) {
+ if (asprintf(&astr, "InitiatorAlias=%s", iscsi->alias) == -1) {
printf("asprintf failed\n");
iscsi_free_pdu(iscsi, pdu);
return -7;
}
- ret = iscsi_pdu_add_data(iscsi, pdu, (unsigned char *)str, strlen(str)+1);
- free(str);
+ ret = iscsi_pdu_add_data(iscsi, pdu, (unsigned char *)astr, strlen(astr)+1);
+ free(astr);
if (ret != 0) {
printf("pdu add data failed\n");
iscsi_free_pdu(iscsi, pdu);
return -9;
}
- if (asprintf(&str, "TargetName=%s", iscsi->target_name) == -1) {
+ if (asprintf(&astr, "TargetName=%s", iscsi->target_name) == -1) {
printf("asprintf failed\n");
iscsi_free_pdu(iscsi, pdu);
return -10;
}
- ret = iscsi_pdu_add_data(iscsi, pdu, (unsigned char *)str, strlen(str)+1);
- free(str);
+ ret = iscsi_pdu_add_data(iscsi, pdu, (unsigned char *)astr, strlen(astr)+1);
+ free(astr);
if (ret != 0) {
printf("pdu add data failed\n");
iscsi_free_pdu(iscsi, pdu);
int status;
if (size < ISCSI_HEADER_SIZE) {
- printf("dont have enough data to read status from login reply\n");
+ printf("don't have enough data to read status from login reply\n");
return -1;
}
* some parameters.
* we should also do proper handshaking if the target is not yet prepared to transition
* to the next stage
- */
+ */
status = ntohs(*(uint16_t *)&hdr[36]);
if (status != 0) {
pdu->callback(iscsi, ISCSI_STATUS_ERROR, NULL, pdu->private_data);
return 0;
}
-int iscsi_process_logout_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, const unsigned char *hdr, int size _U_)
+int iscsi_process_logout_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, const unsigned char *hdr, int size UNUSED)
{
iscsi->is_loggedin = 0;
pdu->callback(iscsi, ISCSI_STATUS_GOOD, NULL, pdu->private_data);