static pgroup_t * internal_pgroup_create_common(entity_t *e, const char *name, const char *type, boolean_t unique) { pgroup_t *pg; pg = internal_pgroup_find(e, name, type); if (pg != NULL) { if (unique == B_TRUE) { return (NULL); } else { return (pg); } } pg = internal_pgroup_new(); (void) internal_attach_pgroup(e, pg); pg->sc_pgroup_name = strdup(name); pg->sc_pgroup_flags = 0; if (type != NULL) { pg->sc_pgroup_type = strdup(type); } else { est->sc_miss_type = B_TRUE; pg->sc_pgroup_type = NULL; } if (pg->sc_pgroup_name == NULL || (e->sc_op != SVCCFG_OP_APPLY && pg->sc_pgroup_type == NULL)) uu_die(gettext("Could not duplicate string")); return (pg); }
pgroup_t * internal_pgroup_find_or_create(entity_t *e, const char *name, const char *type) { pgroup_t *pg; pg = internal_pgroup_find(e, name, type); if (pg != NULL) return (pg); pg = internal_pgroup_new(); (void) internal_attach_pgroup(e, pg); pg->sc_pgroup_name = strdup(name); pg->sc_pgroup_type = strdup(type); pg->sc_pgroup_flags = 0; if (pg->sc_pgroup_name == NULL || pg->sc_pgroup_type == NULL) uu_die(gettext("Could not duplicate string")); return (pg); }