Skip to content

Commit e0db450

Browse files
dwsuseigaw
authored andcommitted
fabrics: use hex numbers when generating command line options
The keyclt CLI and /proc/keys show the key ids as hex numbers. This makes debugging unnessary more complex when comparing what the key ids from the connect command line with the key store ids. Signed-off-by: Daniel Wagner <[email protected]>
1 parent 6b76c10 commit e0db450

1 file changed

Lines changed: 35 additions & 2 deletions

File tree

src/nvme/fabrics.c

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,22 @@ static int __add_bool_argument(char **argstr, char *tok, bool arg)
309309
return 0;
310310
}
311311

312+
static int __add_hex_argument(char **argstr, char *tok, int arg, bool allow_zero)
313+
{
314+
char *nstr;
315+
316+
if (arg < 0 || (!arg && !allow_zero))
317+
return 0;
318+
if (asprintf(&nstr, "%s,%s=0x%08x", *argstr, tok, arg) < 0) {
319+
errno = ENOMEM;
320+
return -1;
321+
}
322+
free(*argstr);
323+
*argstr = nstr;
324+
325+
return 0;
326+
}
327+
312328
static int __add_int_argument(char **argstr, char *tok, int arg, bool allow_zero)
313329
{
314330
char *nstr;
@@ -379,6 +395,23 @@ static int __nvmf_supported_options(nvme_root_t r);
379395
ret; \
380396
})
381397

398+
#define add_hex_argument(r, argstr, tok, arg, allow_zero) \
399+
({ \
400+
int ret; \
401+
if (nvmf_check_option(r, tok)) { \
402+
ret = __add_hex_argument(argstr, \
403+
stringify(tok), \
404+
arg, \
405+
allow_zero); \
406+
} else { \
407+
nvme_msg(r, LOG_DEBUG, \
408+
"option \"%s\" ignored\n", \
409+
stringify(tok)); \
410+
ret = 0; \
411+
} \
412+
ret; \
413+
})
414+
382415
#define add_int_argument(r, argstr, tok, arg, allow_zero) \
383416
({ \
384417
int ret; \
@@ -648,9 +681,9 @@ static int build_options(nvme_host_t h, nvme_ctrl_t c, char **argstr)
648681
cfg->fast_io_fail_tmo, false)) ||
649682
(strcmp(transport, "loop") &&
650683
add_int_argument(r, argstr, tos, cfg->tos, true)) ||
651-
add_int_argument(r, argstr, keyring, keyring_id, false) ||
684+
add_hex_argument(r, argstr, keyring, keyring_id, false) ||
652685
(!strcmp(transport, "tcp") &&
653-
add_int_argument(r, argstr, tls_key, key_id, false)) ||
686+
add_hex_argument(r, argstr, tls_key, key_id, false)) ||
654687
add_bool_argument(r, argstr, duplicate_connect,
655688
cfg->duplicate_connect) ||
656689
add_bool_argument(r, argstr, disable_sqflow,

0 commit comments

Comments
 (0)