diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-05-18 00:14:28 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-05-19 18:23:32 +0400 |
commit | 48086e4b94f94b9e41d61406129b92078b65fdf1 (patch) | |
tree | 3b5ac464ea88e0fbc5ee4810df002647a57fe4d0 /usr/src/cmd/itadm/itadm.c | |
parent | 213d4f4f0d053d779dd43aa3ed1b6e256569ce16 (diff) | |
download | iscsit-48086e4b94f94b9e41d61406129b92078b65fdf1.tar.gz |
Portable versionupstream/1.0
Diffstat (limited to 'usr/src/cmd/itadm/itadm.c')
-rw-r--r-- | usr/src/cmd/itadm/itadm.c | 142 |
1 files changed, 89 insertions, 53 deletions
diff --git a/usr/src/cmd/itadm/itadm.c b/usr/src/cmd/itadm/itadm.c index 87a6971..58fbefd 100644 --- a/usr/src/cmd/itadm/itadm.c +++ b/usr/src/cmd/itadm/itadm.c @@ -23,6 +23,7 @@ */ #include <stdlib.h> #include <stdio.h> +#include <stdbool.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> @@ -187,25 +188,25 @@ static int modify_target(char *tgt, char *new, nvlist_t *proplist); static int -delete_target(char *tgt, boolean_t force); +delete_target(char *tgt, bool force); static int -list_target(char *tgt, boolean_t verbose, boolean_t script); +list_target(char *tgt, bool verbose, bool script); static int create_tpg(char *tpg, int addrc, char **addrs); static int -list_tpg(char *tpg, boolean_t verbose, boolean_t script); +list_tpg(char *tpg, bool verbose, bool script); static int -delete_tpg(char *tpg, boolean_t force); +delete_tpg(char *tpg, bool force); static int -modify_initiator(char *ini, nvlist_t *proplist, boolean_t create); +modify_initiator(char *ini, nvlist_t *proplist, bool create); static int -list_initiator(char *ini, boolean_t verbose, boolean_t script); +list_initiator(char *ini, bool verbose, bool script); static int delete_initiator(char *ini); @@ -214,7 +215,7 @@ static int modify_defaults(nvlist_t *proplist); static int -list_defaults(boolean_t script); +list_defaults(bool script); static void tag_name_to_num(char *tagname, uint16_t *tagnum); @@ -236,18 +237,18 @@ main(int argc, char *argv[]) char *objp; int itind = 0; nvlist_t *proplist = NULL; - boolean_t verbose = B_FALSE; - boolean_t scripting = B_FALSE; - boolean_t tbool; + bool verbose = false; + bool scripting = false; + bool tbool; char *targetname = NULL; char *propname; - boolean_t force = B_FALSE; + bool force = false; struct passwd *pwd = NULL; uint32_t count = 0; char *smfstate = NULL; (void) setlocale(LC_ALL, ""); - (void) textdomain(TEXT_DOMAIN); + (void) textdomain(PACKAGE); if (argc < 2) { ret = 1; @@ -308,7 +309,7 @@ main(int argc, char *argv[]) "radiussecret", optarg, NULL); break; case 'f': - force = B_TRUE; + force = true; break; case '?': /* @@ -330,10 +331,10 @@ main(int argc, char *argv[]) case 'i': if (strncmp(optarg, "enable", strlen(optarg)) == 0) { - tbool = B_TRUE; + tbool = true; } else if (strncmp(optarg, "disable", strlen(optarg)) == 0) { - tbool = B_FALSE; + tbool = false; } else { (void) fprintf(stderr, "%s\n", gettext("invalid value for -i")); @@ -406,7 +407,7 @@ main(int argc, char *argv[]) propname, optarg); break; case 'v': - verbose = B_TRUE; + verbose = true; break; case ':': (void) fprintf(stderr, @@ -569,10 +570,10 @@ main(int argc, char *argv[]) ret = list_tpg(objp, verbose, scripting); break; case CREATE_INI: - ret = modify_initiator(objp, proplist, B_TRUE); + ret = modify_initiator(objp, proplist, true); break; case MODIFY_INI: - ret = modify_initiator(objp, proplist, B_FALSE); + ret = modify_initiator(objp, proplist, false); break; case LIST_INI: ret = list_initiator(objp, verbose, scripting); @@ -630,7 +631,7 @@ create_target(char *tgt, nvlist_t *proplist) uint16_t tagid = 0; it_tpgt_t *tpgt; char *sec = "solaris.smf.modify.stmf"; - boolean_t did_it_config_load = B_FALSE; + bool did_it_config_load = false; ITADM_CHKAUTH(sec); @@ -653,7 +654,7 @@ create_target(char *tgt, nvlist_t *proplist) goto done; } - did_it_config_load = B_TRUE; + did_it_config_load = true; ret = it_tgt_create(cfg, &tgtp, tgt); if (ret != 0) { @@ -785,14 +786,14 @@ done: } int -list_target(char *tgt, boolean_t verbose, boolean_t script) +list_target(char *tgt, bool verbose, bool script) { int ret; it_config_t *cfg; it_tgt_t *ptr; - boolean_t found = B_FALSE; - boolean_t first = B_TRUE; - boolean_t first_tag = B_TRUE; + bool found = false; + bool first = true; + bool first_tag = true; char *gauth = "none"; char *galias = "-"; char *auth; @@ -839,7 +840,7 @@ list_target(char *tgt, boolean_t verbose, boolean_t script) if (strcasecmp(tgt, ptr->tgt_name) != 0) { continue; } else { - found = B_TRUE; + found = true; } } @@ -876,7 +877,7 @@ list_target(char *tgt, boolean_t verbose, boolean_t script) if (!script && first) { (void) printf("%-61s%-9s%-9s\n", "TARGET NAME", "STATE", "SESSIONS"); - first = B_FALSE; + first = false; } if (!script) { @@ -932,13 +933,13 @@ list_target(char *tgt, boolean_t verbose, boolean_t script) chapu, chaps); } - first_tag = B_TRUE; + first_tag = true; tagp = ptr->tgt_tpgt_list; for (; tagp != NULL; tagp = tagp->tpgt_next) { if (!first_tag) { (void) printf(","); } else { - first_tag = B_FALSE; + first_tag = false; } (void) printf("%s = %d", tagp->tpgt_tpg_name, tagp->tpgt_tag); @@ -965,7 +966,7 @@ list_target(char *tgt, boolean_t verbose, boolean_t script) } int -delete_target(char *tgt, boolean_t force) +delete_target(char *tgt, bool force) { int ret; it_config_t *cfg; @@ -1047,7 +1048,7 @@ modify_target(char *tgt, char *newname, nvlist_t *proplist) uint16_t tagid; it_tpgt_t *tpgt = NULL; char *sec = "solaris.smf.modify.stmf"; - boolean_t did_it_config_load = B_FALSE; + bool did_it_config_load = false; ITADM_CHKAUTH(sec); @@ -1067,7 +1068,7 @@ modify_target(char *tgt, char *newname, nvlist_t *proplist) goto done; } - did_it_config_load = B_TRUE; + did_it_config_load = true; /* * If newname is specified, ensure it is a valid name. @@ -1400,15 +1401,15 @@ create_tpg(char *tpg, int addrc, char **addrs) } static int -list_tpg(char *tpg, boolean_t verbose, boolean_t script) +list_tpg(char *tpg, bool verbose, bool script) { int ret; it_config_t *cfg; it_tpg_t *ptr; - boolean_t found = B_FALSE; + bool found = false; it_portal_t *portal; - boolean_t first = B_TRUE; - boolean_t first_portal; + bool first = true; + bool first_portal; char *pstr; char *sec = "solaris.smf.read.stmf"; @@ -1432,14 +1433,14 @@ list_tpg(char *tpg, boolean_t verbose, boolean_t script) if (strcmp(tpg, ptr->tpg_name) != 0) { continue; } else { - found = B_TRUE; + found = true; } } if (!script && first) { (void) printf("%-30s%-9s\n", "TARGET PORTAL GROUP", "PORTAL COUNT"); - first = B_FALSE; + first = false; } if (!script) { @@ -1462,7 +1463,7 @@ list_tpg(char *tpg, boolean_t verbose, boolean_t script) (void) printf("\n portals:"); } - first_portal = B_TRUE; + first_portal = true; portal = ptr->tpg_portal_list; for (; portal != NULL; portal = portal->portal_next) { @@ -1475,7 +1476,7 @@ list_tpg(char *tpg, boolean_t verbose, boolean_t script) (void) printf(","); } else { (void) printf("\t"); - first_portal = B_FALSE; + first_portal = false; } (void) printf("%s", pstr); @@ -1503,7 +1504,7 @@ list_tpg(char *tpg, boolean_t verbose, boolean_t script) } static int -delete_tpg(char *tpg, boolean_t force) +delete_tpg(char *tpg, bool force) { int ret; it_config_t *cfg; @@ -1562,7 +1563,7 @@ delete_tpg(char *tpg, boolean_t force) } static int -modify_initiator(char *ini, nvlist_t *proplist, boolean_t create) +modify_initiator(char *ini, nvlist_t *proplist, bool create) { int ret; it_config_t *cfg; @@ -1570,7 +1571,7 @@ modify_initiator(char *ini, nvlist_t *proplist, boolean_t create) nvlist_t *errlist = NULL; nvpair_t *nvp = NULL; char *sec = "solaris.smf.modify.stmf"; - boolean_t changed = B_TRUE; + bool changed = true; ITADM_CHKAUTH(sec); @@ -1599,7 +1600,7 @@ modify_initiator(char *ini, nvlist_t *proplist, boolean_t create) } if ((nvp == NULL) && !create) { - changed = B_FALSE; + changed = false; } /* @@ -1696,13 +1697,13 @@ modify_initiator(char *ini, nvlist_t *proplist, boolean_t create) } static int -list_initiator(char *ini, boolean_t verbose, boolean_t script) /* ARGSUSED */ +list_initiator(char *ini, bool verbose, bool script) /* ARGSUSED */ { int ret; it_config_t *cfg; it_ini_t *ptr; - boolean_t found = B_FALSE; - boolean_t first = B_TRUE; + bool found = false; + bool first = true; char *isecret; char *iuser; char *sec = "solaris.smf.read.stmf"; @@ -1730,7 +1731,7 @@ list_initiator(char *ini, boolean_t verbose, boolean_t script) /* ARGSUSED */ if (strcasecmp(ini, ptr->ini_name) != 0) { continue; } else { - found = B_TRUE; + found = true; } } @@ -1747,7 +1748,7 @@ list_initiator(char *ini, boolean_t verbose, boolean_t script) /* ARGSUSED */ if (!script && first) { (void) printf("%-61s%-10s%-7s\n", "INITIATOR NAME", "CHAPUSER", "SECRET"); - first = B_FALSE; + first = false; } if (!script) { @@ -1904,7 +1905,7 @@ modify_defaults(nvlist_t *proplist) } static int -list_defaults(boolean_t script) +list_defaults(bool script) { int ret; it_config_t *cfg; @@ -1916,7 +1917,7 @@ list_defaults(boolean_t script) uint32_t scount = 0; char *rsvr = "<none>"; char *rsecret = "unset"; - boolean_t val = B_FALSE; + bool val = false; int i; char *sec = "solaris.smf.read.stmf"; @@ -1935,7 +1936,7 @@ list_defaults(boolean_t script) (void) nvlist_lookup_string(nvl, "alias", &alias); (void) nvlist_lookup_string(nvl, "auth", &auth); (void) nvlist_lookup_boolean_value(nvl, "isns", &val); - if (val == B_TRUE) { + if (val == true) { isns = "enabled"; } (void) nvlist_lookup_string_array(nvl, "isnsserver", &isvrs, @@ -2091,6 +2092,41 @@ itadm_get_password(nvlist_t *nvl, char *key, char *passfile, return (ret); } +static size_t +_my_bufsplit(char *buf, size_t dim, char **array) +{ + static char *bsplitchar; + + unsigned numsplit; + int i; + + if (!buf) + return (0); + if (!dim ^ !array) + return (0); + if (buf && !dim && !array) { + bsplitchar = buf; + return (1); + } + numsplit = 0; + while (numsplit < dim) { + array[numsplit] = buf; + numsplit++; + buf = strpbrk(buf, bsplitchar); + if (buf) + *(buf++) = '\0'; + else + break; + if (*buf == '\0') { + break; + } + } + buf = strrchr(array[numsplit-1], '\0'); + for (i = numsplit; i < dim; i++) + array[i] = buf; + return (numsplit); +} + static int itadm_opt_to_arr(nvlist_t *nvl, char *key, char *opt, uint32_t *num) { @@ -2121,10 +2157,10 @@ itadm_opt_to_arr(nvlist_t *nvl, char *key, char *opt, uint32_t *num) bufp = opt; /* set delimiter to comma */ - (void) bufsplit(",", 0, NULL); + (void) _my_bufsplit(",", 0, NULL); /* split up that buf! */ - (void) bufsplit(bufp, count, arr); + (void) _my_bufsplit(bufp, count, arr); /* if requested, return the number of array members found */ if (num) { |