diff options
Diffstat (limited to 'usr.sbin/iscsid')
-rw-r--r-- | usr.sbin/iscsid/Makefile | 6 | ||||
-rw-r--r-- | usr.sbin/iscsid/iscsid.h | 6 | ||||
-rw-r--r-- | usr.sbin/iscsid/log.c | 84 | ||||
-rw-r--r-- | usr.sbin/iscsid/log.h | 32 | ||||
-rw-r--r-- | usr.sbin/iscsid/logmsg.c | 99 |
5 files changed, 127 insertions, 100 deletions
diff --git a/usr.sbin/iscsid/Makefile b/usr.sbin/iscsid/Makefile index ed5ec76e26a..a604574e808 100644 --- a/usr.sbin/iscsid/Makefile +++ b/usr.sbin/iscsid/Makefile @@ -1,8 +1,8 @@ -# $OpenBSD: Makefile,v 1.3 2011/04/05 18:26:19 claudio Exp $ +# $OpenBSD: Makefile,v 1.4 2016/09/02 16:22:31 benno Exp $ PROG= iscsid -SRCS= connection.c control.c initiator.c iscsid.c log.c pdu.c session.c \ - task.c util.c vscsi.c +SRCS= connection.c control.c initiator.c iscsid.c log.c logmsg.c pdu.c \ + session.c task.c util.c vscsi.c MAN= iscsid.8 diff --git a/usr.sbin/iscsid/iscsid.h b/usr.sbin/iscsid/iscsid.h index cf9497123df..b43fb5dcd99 100644 --- a/usr.sbin/iscsid/iscsid.h +++ b/usr.sbin/iscsid/iscsid.h @@ -1,4 +1,4 @@ -/* $OpenBSD: iscsid.h,v 1.15 2016/08/16 18:41:57 tedu Exp $ */ +/* $OpenBSD: iscsid.h,v 1.16 2016/09/02 16:22:31 benno Exp $ */ /* * Copyright (c) 2009 Claudio Jeker <claudio@openbsd.org> @@ -390,3 +390,7 @@ void vscsi_data(unsigned long, int, void *, size_t); void vscsi_status(int, int, void *, size_t); void vscsi_event(unsigned long, u_int, u_int); struct vscsi_stats *vscsi_stats(void); + +/* logmsg.c */ +void log_hexdump(void *, size_t); +void log_pdu(struct pdu *, int); diff --git a/usr.sbin/iscsid/log.c b/usr.sbin/iscsid/log.c index 3ae75977e14..e1a6c753d05 100644 --- a/usr.sbin/iscsid/log.c +++ b/usr.sbin/iscsid/log.c @@ -1,4 +1,4 @@ -/* $OpenBSD: log.c,v 1.6 2014/04/19 18:31:33 claudio Exp $ */ +/* $OpenBSD: log.c,v 1.7 2016/09/02 16:22:31 benno Exp $ */ /* * Copyright (c) 2009 Claudio Jeker <claudio@openbsd.org> @@ -16,30 +16,19 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <sys/types.h> -#include <sys/queue.h> -#include <sys/socket.h> -#include <sys/uio.h> - -#include <scsi/iscsi.h> #include <errno.h> -#include <event.h> -#include <netdb.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <syslog.h> -#include <unistd.h> +#include <time.h> -#include "iscsid.h" #include "log.h" -int debug; -int verbose; - -void logit(int, const char *, ...); +int debug; +int verbose; void log_init(int n_debug) @@ -165,68 +154,3 @@ fatalx(const char *emsg) errno = 0; fatal(emsg); } - -void -log_hexdump(void *buf, size_t len) -{ - u_char b[16]; - size_t i, j, l; - - if (!debug) - return; - - for (i = 0; i < len; i += l) { - fprintf(stderr, "%4zi:", i); - l = sizeof(b) < len - i ? sizeof(b) : len - i; - memcpy(b, (char *)buf + i, l); - - for (j = 0; j < sizeof(b); j++) { - if (j % 2 == 0) - fprintf(stderr, " "); - if (j % 8 == 0) - fprintf(stderr, " "); - if (j < l) - fprintf(stderr, "%02x", (int)b[j]); - else - fprintf(stderr, " "); - } - fprintf(stderr, " |"); - for (j = 0; j < l; j++) { - if (b[j] >= 0x20 && b[j] <= 0x7e) - fprintf(stderr, "%c", b[j]); - else - fprintf(stderr, "."); - } - fprintf(stderr, "|\n"); - } -} - -void -log_pdu(struct pdu *p, int all) -{ - struct iscsi_pdu *pdu; - void *b; - size_t s; - - if (!debug) - return; - - if (!(pdu = pdu_getbuf(p, NULL, PDU_HEADER))) { - log_debug("empty pdu"); - return; - } - - fprintf(stderr, "PDU: op %x%s flags %02x%02x%02x ahs %d len %d\n", - ISCSI_PDU_OPCODE(pdu->opcode), ISCSI_PDU_I(pdu) ? " I" : "", - pdu->flags, pdu->_reserved1[0], pdu->_reserved1[1], - pdu->ahslen, pdu->datalen[0] << 16 | pdu->datalen[1] << 8 | - pdu->datalen[2]); - fprintf(stderr, " lun %02x%02x%02x%02x%02x%02x%02x%02x itt %u " - "cmdsn %u expstatsn %u\n", pdu->lun[0], pdu->lun[1], pdu->lun[2], - pdu->lun[3], pdu->lun[4], pdu->lun[5], pdu->lun[6], pdu->lun[7], - ntohl(pdu->itt), ntohl(pdu->cmdsn), ntohl(pdu->expstatsn)); - log_hexdump(pdu, sizeof(*pdu)); - - if (all && (b = pdu_getbuf(p, &s, PDU_DATA))) - log_hexdump(b, s); -} diff --git a/usr.sbin/iscsid/log.h b/usr.sbin/iscsid/log.h index ef3bd1634e7..745933b2f4a 100644 --- a/usr.sbin/iscsid/log.h +++ b/usr.sbin/iscsid/log.h @@ -1,4 +1,4 @@ -/* $OpenBSD: log.h,v 1.3 2016/07/18 21:18:48 benno Exp $ */ +/* $OpenBSD: log.h,v 1.4 2016/09/02 16:22:31 benno Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -16,29 +16,29 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#ifndef _LOG_H_ -#define _LOG_H_ +#ifndef LOG_H +#define LOG_H #include <stdarg.h> +#include <sys/cdefs.h> -void log_init(int); -void log_verbose(int); -void vlog(int, const char *, va_list) +void log_init(int); +void log_verbose(int); +void logit(int, const char *, ...) + __attribute__((__format__ (printf, 2, 3))); +void vlog(int, const char *, va_list) __attribute__((__format__ (printf, 2, 0))); -void log_warn(const char *, ...) +void log_warn(const char *, ...) __attribute__((__format__ (printf, 1, 2))); -void log_warnx(const char *, ...) +void log_warnx(const char *, ...) __attribute__((__format__ (printf, 1, 2))); -void log_info(const char *, ...) +void log_info(const char *, ...) __attribute__((__format__ (printf, 1, 2))); -void log_debug(const char *, ...) +void log_debug(const char *, ...) __attribute__((__format__ (printf, 1, 2))); -void fatal(const char *) __dead +void fatal(const char *) __dead __attribute__((__format__ (printf, 1, 0))); -void fatalx(const char *) __dead +void fatalx(const char *) __dead __attribute__((__format__ (printf, 1, 0))); -void log_hexdump(void *, size_t); -void log_pdu(struct pdu *, int); - -#endif /* _LOG_H_ */ +#endif /* LOG_H */ diff --git a/usr.sbin/iscsid/logmsg.c b/usr.sbin/iscsid/logmsg.c new file mode 100644 index 00000000000..9e4dac68300 --- /dev/null +++ b/usr.sbin/iscsid/logmsg.c @@ -0,0 +1,99 @@ +/* $OpenBSD: logmsg.c,v 1.1 2016/09/02 16:22:31 benno Exp $ */ + +/* + * Copyright (c) 2009 Claudio Jeker <claudio@openbsd.org> + * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <arpa/inet.h> +#include <endian.h> +#include <event.h> +#include <scsi/iscsi.h> +#include <stdio.h> +#include <string.h> +#include <sys/queue.h> +#include <sys/socket.h> +#include <sys/types.h> + +#include "iscsid.h" +#include "log.h" + +extern int debug; +extern int verbose; + +void +log_hexdump(void *buf, size_t len) +{ + u_char b[16]; + size_t i, j, l; + + if (!debug) + return; + + for (i = 0; i < len; i += l) { + fprintf(stderr, "%4zi:", i); + l = sizeof(b) < len - i ? sizeof(b) : len - i; + memcpy(b, (char *)buf + i, l); + + for (j = 0; j < sizeof(b); j++) { + if (j % 2 == 0) + fprintf(stderr, " "); + if (j % 8 == 0) + fprintf(stderr, " "); + if (j < l) + fprintf(stderr, "%02x", (int)b[j]); + else + fprintf(stderr, " "); + } + fprintf(stderr, " |"); + for (j = 0; j < l; j++) { + if (b[j] >= 0x20 && b[j] <= 0x7e) + fprintf(stderr, "%c", b[j]); + else + fprintf(stderr, "."); + } + fprintf(stderr, "|\n"); + } +} + +void +log_pdu(struct pdu *p, int all) +{ + struct iscsi_pdu *pdu; + void *b; + size_t s; + + if (!debug) + return; + + if (!(pdu = pdu_getbuf(p, NULL, PDU_HEADER))) { + log_debug("empty pdu"); + return; + } + + fprintf(stderr, "PDU: op %x%s flags %02x%02x%02x ahs %d len %d\n", + ISCSI_PDU_OPCODE(pdu->opcode), ISCSI_PDU_I(pdu) ? " I" : "", + pdu->flags, pdu->_reserved1[0], pdu->_reserved1[1], + pdu->ahslen, pdu->datalen[0] << 16 | pdu->datalen[1] << 8 | + pdu->datalen[2]); + fprintf(stderr, " lun %02x%02x%02x%02x%02x%02x%02x%02x itt %u " + "cmdsn %u expstatsn %u\n", pdu->lun[0], pdu->lun[1], pdu->lun[2], + pdu->lun[3], pdu->lun[4], pdu->lun[5], pdu->lun[6], pdu->lun[7], + ntohl(pdu->itt), ntohl(pdu->cmdsn), ntohl(pdu->expstatsn)); + log_hexdump(pdu, sizeof(*pdu)); + + if (all && (b = pdu_getbuf(p, &s, PDU_DATA))) + log_hexdump(b, s); +} |