"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/sg_requests.c" between
sg3_utils-1.47r908.tgz and sg3_utils-1.47r915.tar.xz

About: sg3_utils contains utilities that send SCSI commands to devices. Beta version.

sg_requests.c  (sg3_utils-1.47r908.tgz):sg_requests.c  (sg3_utils-1.47r915.tar.xz)
skipping to change at line 37 skipping to change at line 37
#include "sg_cmds_basic.h" #include "sg_cmds_basic.h"
#include "sg_pr2serr.h" #include "sg_pr2serr.h"
#include "sg_pt.h" #include "sg_pt.h"
/* A utility program for the Linux OS SCSI subsystem. /* A utility program for the Linux OS SCSI subsystem.
* *
* *
* This program issues the SCSI command REQUEST SENSE to the given SCSI device. * This program issues the SCSI command REQUEST SENSE to the given SCSI device.
*/ */
static const char * version_str = "1.36 20210610"; static const char * version_str = "1.38 20211001";
#define MAX_REQS_RESP_LEN 255 #define MAX_REQS_RESP_LEN 255
#define DEF_REQS_RESP_LEN 252 #define DEF_REQS_RESP_LEN 252
#define SENSE_BUFF_LEN 96 /* Arbitrary, could be larger */ #define SENSE_BUFF_LEN 96 /* Arbitrary, could be larger */
#define DEF_PT_TIMEOUT 60 /* 60 seconds */ #define DEF_PT_TIMEOUT 60 /* 60 seconds */
#define REQUEST_SENSE_CMD 0x3 #define REQUEST_SENSE_CMD 0x3
#define REQUEST_SENSE_CMDLEN 6 #define REQUEST_SENSE_CMDLEN 6
skipping to change at line 333 skipping to change at line 333
pr2serr(" cdb: %s\n", pr2serr(" cdb: %s\n",
sg_get_command_str(rs_cdb, REQUEST_SENSE_CMDLEN, sg_get_command_str(rs_cdb, REQUEST_SENSE_CMDLEN,
true, sizeof(bb), bb)); true, sizeof(bb), bb));
} }
rs = do_scsi_pt(ptvp, -1, DEF_PT_TIMEOUT, verbose); rs = do_scsi_pt(ptvp, -1, DEF_PT_TIMEOUT, verbose);
n = sg_cmds_process_resp(ptvp, "Request sense", rs, (0 == k), n = sg_cmds_process_resp(ptvp, "Request sense", rs, (0 == k),
verbose, &sense_cat); verbose, &sense_cat);
} }
if (-1 == n) { if (-1 == n) {
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); if (get_scsi_pt_transport_err(ptvp))
ret = SG_LIB_TRANSPORT_ERROR;
else
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp));
goto finish; goto finish;
} else if (-2 == n) { } else if (-2 == n) {
switch (sense_cat) { switch (sense_cat) {
case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_RECOVERED:
case SG_LIB_CAT_NO_SENSE: case SG_LIB_CAT_NO_SENSE:
break; break;
case SG_LIB_CAT_NOT_READY: case SG_LIB_CAT_NOT_READY:
++num_errs; ++num_errs;
if (1 == num_rs) { if (1 == num_rs) {
ret = sense_cat; ret = sense_cat;
skipping to change at line 426 skipping to change at line 429
pr2serr(" cdb: %s\n", pr2serr(" cdb: %s\n",
sg_get_command_str(rs_cdb, REQUEST_SENSE_CMDLEN, sg_get_command_str(rs_cdb, REQUEST_SENSE_CMDLEN,
true, sizeof(bb), bb)); true, sizeof(bb), bb));
} }
rs = do_scsi_pt(ptvp, -1, DEF_PT_TIMEOUT, verbose); rs = do_scsi_pt(ptvp, -1, DEF_PT_TIMEOUT, verbose);
n = sg_cmds_process_resp(ptvp, "Request sense", rs, (0 == k), n = sg_cmds_process_resp(ptvp, "Request sense", rs, (0 == k),
verbose, &sense_cat); verbose, &sense_cat);
} }
if (-1 == n) { if (-1 == n) {
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); if (get_scsi_pt_transport_err(ptvp))
ret = SG_LIB_TRANSPORT_ERROR;
else
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp));
goto finish; goto finish;
} else if (-2 == n) { } else if (-2 == n) {
switch (sense_cat) { switch (sense_cat) {
case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_RECOVERED:
case SG_LIB_CAT_NO_SENSE: case SG_LIB_CAT_NO_SENSE:
break; break;
case SG_LIB_CAT_NOT_READY: case SG_LIB_CAT_NOT_READY:
++num_errs; ++num_errs;
if (1 == num_rs) { if (1 == num_rs) {
ret = sense_cat; ret = sense_cat;
skipping to change at line 474 skipping to change at line 480
if (sg_scsi_normalize_sense(rsBuff, act_din_len, &ssh)) { if (sg_scsi_normalize_sense(rsBuff, act_din_len, &ssh)) {
if (ssh.sense_key > 0) { if (ssh.sense_key > 0) {
++num_din_errs; ++num_din_errs;
most_recent_skey = ssh.sense_key; most_recent_skey = ssh.sense_key;
} }
if (not_raw_hex && ((1 == num_rs) || verbose)) { if (not_raw_hex && ((1 == num_rs) || verbose)) {
char bb[144]; char bb[144];
sg_get_sense_str(NULL, rsBuff, act_din_len, sg_get_sense_str(NULL, rsBuff, act_din_len,
false, sizeof(bb), bb); false, sizeof(bb), bb);
pr2serr("data-in decoded as sense:\n%s\n", b); pr2serr("data-in decoded as sense:\n%s\n", bb);
} }
} }
} }
partial_clear_scsi_pt_obj(ptvp); partial_clear_scsi_pt_obj(ptvp);
if (ret) if (ret)
goto finish; goto finish;
if (act_din_len > 0) { if (act_din_len > 0) {
if (do_raw) if (do_raw)
dStrRaw(rsBuff, act_din_len); dStrRaw(rsBuff, act_din_len);
 End of changes. 4 change blocks. 
4 lines changed or deleted 10 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)