DEBUG add function to set debug fd

DPRINTF was blindly sending all debug output to fd 2 (stderr).
The new function iscsi_set_debug_fd() will set the debug fd.
In general debugging is completely disabled by default.
This commit is contained in:
Peter Lieven
2012-11-06 16:07:43 +01:00
parent 3e57a612db
commit ec46d6fa43
5 changed files with 26 additions and 5 deletions

View File

@@ -130,6 +130,7 @@ struct iscsi_context {
int no_auto_reconnect;
int reconnect_deferred;
int debug;
int debug_fd;
int mallocs;
int reallocs;
int frees;
@@ -304,7 +305,7 @@ struct scsi_task *iscsi_scsi_get_task_from_pdu(struct iscsi_pdu *pdu);
void iscsi_set_noautoreconnect(struct iscsi_context *iscsi, int state);
void iscsi_decrement_iface_rr();
void iscsi_decrement_iface_rr(void);
#ifdef __cplusplus
}

View File

@@ -971,12 +971,12 @@ iscsi_scsi_cancel_all_tasks(struct iscsi_context *iscsi);
#define DPRINTF(iscsi,level,fmt,args...) \
do { \
if ((iscsi)->debug >= level) { \
fprintf(stderr,"libiscsi: "); \
fprintf(stderr, (fmt), ##args); \
dprintf((iscsi)->debug_fd,"libiscsi: "); \
dprintf((iscsi)->debug_fd, (fmt), ##args); \
if (iscsi->target_name[0]) { \
fprintf(stderr," [%s]",iscsi->target_name); \
dprintf((iscsi)->debug_fd," [%s]",iscsi->target_name); \
} \
fprintf(stderr,"\n"); \
dprintf((iscsi)->debug_fd,"\n"); \
} \
} while (0);
@@ -993,6 +993,12 @@ iscsi_scsi_cancel_all_tasks(struct iscsi_context *iscsi);
EXTERN void
iscsi_set_debug(struct iscsi_context *iscsi, int level);
/*
* This function is to set fd where debugging info is sent to. default is stderr (2)
*/
EXTERN void
iscsi_set_debug_fd(struct iscsi_context *iscsi, int fd);
/*
* This function is to set the TCP_USER_TIMEOUT option. It has to be called after iscsi
* context creation. The value given in ms is then applied each time a new socket is created.