Changeset View
Changeset View
Standalone View
Standalone View
lib/libcasper/services/cap_net/cap_net.c
| Show First 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | hostent_unpack(const nvlist_t *nvl, struct hostent *hp) | ||||
| hp->h_name = strdup(nvlist_get_string(nvl, "name")); | hp->h_name = strdup(nvlist_get_string(nvl, "name")); | ||||
| if (hp->h_name == NULL) | if (hp->h_name == NULL) | ||||
| goto fail; | goto fail; | ||||
| hp->h_addrtype = (int)nvlist_get_number(nvl, "addrtype"); | hp->h_addrtype = (int)nvlist_get_number(nvl, "addrtype"); | ||||
| hp->h_length = (int)nvlist_get_number(nvl, "length"); | hp->h_length = (int)nvlist_get_number(nvl, "length"); | ||||
| nitems = (unsigned int)nvlist_get_number(nvl, "naliases"); | nitems = (unsigned int)nvlist_get_number(nvl, "naliases"); | ||||
| hp->h_aliases = calloc(sizeof(hp->h_aliases[0]), nitems + 1); | hp->h_aliases = calloc(nitems + 1, sizeof(hp->h_aliases[0])); | ||||
| if (hp->h_aliases == NULL) | if (hp->h_aliases == NULL) | ||||
| goto fail; | goto fail; | ||||
| for (ii = 0; ii < nitems; ii++) { | for (ii = 0; ii < nitems; ii++) { | ||||
| n = snprintf(nvlname, sizeof(nvlname), "alias%u", ii); | n = snprintf(nvlname, sizeof(nvlname), "alias%u", ii); | ||||
| assert(n > 0 && n < (int)sizeof(nvlname)); | assert(n > 0 && n < (int)sizeof(nvlname)); | ||||
| hp->h_aliases[ii] = | hp->h_aliases[ii] = | ||||
| strdup(nvlist_get_string(nvl, nvlname)); | strdup(nvlist_get_string(nvl, nvlname)); | ||||
| if (hp->h_aliases[ii] == NULL) | if (hp->h_aliases[ii] == NULL) | ||||
| goto fail; | goto fail; | ||||
| } | } | ||||
| hp->h_aliases[ii] = NULL; | hp->h_aliases[ii] = NULL; | ||||
| nitems = (unsigned int)nvlist_get_number(nvl, "naddrs"); | nitems = (unsigned int)nvlist_get_number(nvl, "naddrs"); | ||||
| hp->h_addr_list = calloc(sizeof(hp->h_addr_list[0]), nitems + 1); | hp->h_addr_list = calloc(nitems + 1, sizeof(hp->h_addr_list[0])); | ||||
| if (hp->h_addr_list == NULL) | if (hp->h_addr_list == NULL) | ||||
| goto fail; | goto fail; | ||||
| for (ii = 0; ii < nitems; ii++) { | for (ii = 0; ii < nitems; ii++) { | ||||
| hp->h_addr_list[ii] = malloc(hp->h_length); | hp->h_addr_list[ii] = malloc(hp->h_length); | ||||
| if (hp->h_addr_list[ii] == NULL) | if (hp->h_addr_list[ii] == NULL) | ||||
| goto fail; | goto fail; | ||||
| n = snprintf(nvlname, sizeof(nvlname), "addr%u", ii); | n = snprintf(nvlname, sizeof(nvlname), "addr%u", ii); | ||||
| assert(n > 0 && n < (int)sizeof(nvlname)); | assert(n > 0 && n < (int)sizeof(nvlname)); | ||||
| ▲ Show 20 Lines • Show All 1,285 Lines • Show Last 20 Lines | |||||