Blame usr/iscsi_err.c

Packit eace71
/*
Packit eace71
 * iSCSI error helpers
Packit eace71
 *
Packit eace71
 * Copyright (C) 2011 Mike Christie
Packit eace71
 * Copyright (C) 2011 Red Hat, Inc. All rights reserved.
Packit eace71
 * maintained by open-iscsi@googlegroups.com
Packit eace71
 *
Packit eace71
 * This program is free software; you can redistribute it and/or modify
Packit eace71
 * it under the terms of the GNU General Public License as published
Packit eace71
 * by the Free Software Foundation; either version 2 of the License, or
Packit eace71
 * (at your option) any later version.
Packit eace71
 *
Packit eace71
 * This program is distributed in the hope that it will be useful, but
Packit eace71
 * WITHOUT ANY WARRANTY; without even the implied warranty of
Packit eace71
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Packit eace71
 * General Public License for more details.
Packit eace71
 *
Packit eace71
 * See the file COPYING included with this distribution for more details.
Packit eace71
 */
Packit eace71
#include "stdlib.h"
Packit eace71
#include "iscsi_err.h"
Packit eace71
#include "log.h"
Packit eace71
Packit eace71
static char *iscsi_err_msgs[] = {
Packit eace71
	/* 0 */ "",
Packit eace71
	/* 1 */ "unknown error",
Packit eace71
	/* 2 */ "session not found",
Packit eace71
	/* 3 */ "no available memory",
Packit eace71
	/* 4 */ "encountered connection failure",
Packit eace71
	/* 5 */ "encountered iSCSI login failure",
Packit eace71
	/* 6 */ "encountered iSCSI database failure",
Packit eace71
	/* 7 */ "invalid parameter",
Packit eace71
	/* 8 */ "connection timed out",
Packit eace71
	/* 9 */ "internal error",
Packit eace71
	/* 10 */ "encountered iSCSI logout failure",
Packit eace71
	/* 11 */ "iSCSI PDU timed out",
Packit eace71
	/* 12 */ "iSCSI driver not found. Please make sure it is loaded, and retry the operation",
Packit eace71
	/* 13 */ "daemon access denied",
Packit eace71
	/* 14 */ "iSCSI driver does not support requested capability.",
Packit eace71
	/* 15 */ "session exists",
Packit eace71
	/* 16 */ "Unknown request",
Packit eace71
	/* 17 */ "iSNS service not supported",
Packit eace71
	/* 18 */ "could not communicate to iscsid",
Packit eace71
	/* 19 */ "encountered non-retryable iSCSI login failure",
Packit eace71
	/* 20 */ "could not connect to iscsid",
Packit eace71
	/* 21 */ "no objects found",
Packit eace71
	/* 22 */ "sysfs lookup failure",
Packit eace71
	/* 23 */ "host not found",
Packit eace71
	/* 24 */ "iSCSI login failed due to authorization failure",
Packit eace71
	/* 25 */ "iSNS query failed",
Packit eace71
	/* 26 */ "iSNS registration failed",
Packit eace71
	/* 27 */ "operation not supported",
Packit eace71
	/* 28 */ "device or resource in use",
Packit eace71
	/* 29 */ "operation failed but retry may succeed",
Packit eace71
	/* 30 */ "unknown discovery type",
Packit eace71
	/* 31 */ "child process terminated",
Packit eace71
	/* 32 */ "target likely not connected",
Packit eace71
};
Packit eace71
Packit eace71
char *iscsi_err_to_str(int err)
Packit eace71
{
Packit eace71
	if (err >= ISCSI_MAX_ERR_VAL || err < 0) {
Packit eace71
		log_error("invalid error code %d", err);
Packit eace71
		return NULL;
Packit eace71
	}
Packit eace71
Packit eace71
	return iscsi_err_msgs[err];
Packit eace71
}
Packit eace71
Packit eace71
void iscsi_err_print_msg(int err)
Packit eace71
{
Packit eace71
	if (err >= ISCSI_MAX_ERR_VAL || err < 0) {
Packit eace71
		log_error("invalid error code %d", err);
Packit eace71
		return;
Packit eace71
	}
Packit eace71
	log_error("initiator reported error (%d - %s)", err,
Packit eace71
		  iscsi_err_msgs[err]);
Packit eace71
}