diff options
-rw-r--r-- | usr/src/cmd/svc/dtd/service_bundle.dtd.1 | 30 | ||||
-rw-r--r-- | usr/src/cmd/svc/svccfg/svccfg.h | 70 | ||||
-rw-r--r-- | usr/src/cmd/svc/svccfg/svccfg_xml.c | 6 |
3 files changed, 80 insertions, 26 deletions
diff --git a/usr/src/cmd/svc/dtd/service_bundle.dtd.1 b/usr/src/cmd/svc/dtd/service_bundle.dtd.1 index c664b8fd33..494fd18a6f 100644 --- a/usr/src/cmd/svc/dtd/service_bundle.dtd.1 +++ b/usr/src/cmd/svc/dtd/service_bundle.dtd.1 @@ -105,6 +105,7 @@ opaque_list host_list hostname_list + net_address_list net_address_v4_list net_address_v6_list time_list @@ -146,6 +147,11 @@ <!ATTLIST hostname_list> +<!ELEMENT net_address_list + ( value_node+ )> + +<!ATTLIST net_address_list> + <!ELEMENT net_address_v4_list ( value_node+ )> @@ -208,14 +214,14 @@ <![%profile;[ <!ELEMENT property ( count_list | integer_list | opaque_list | host_list | hostname_list | - net_address_v4_list | net_address_v6_list | time_list | - astring_list | ustring_list | boolean_list | fmri_list | + net_address_list | net_address_v4_list | net_address_v6_list | + time_list | astring_list | ustring_list | boolean_list | fmri_list | uri_list )? > <!ATTLIST property name CDATA #REQUIRED type ( count | integer | opaque | host | hostname | - net_address_v4 | net_address_v6 | time | + net_address | net_address_v4 | net_address_v6 | time | astring | ustring | boolean | fmri | uri ) #IMPLIED override ( true | false ) "false" > ]]> @@ -223,14 +229,14 @@ <![%manifest;[ <!ELEMENT property ( count_list | integer_list | opaque_list | host_list | hostname_list | - net_address_v4_list | net_address_v6_list | time_list | - astring_list | ustring_list | boolean_list | fmri_list | + net_address_list | net_address_v4_list | net_address_v6_list | + time_list | astring_list | ustring_list | boolean_list | fmri_list | uri_list )? > <!ATTLIST property name CDATA #REQUIRED type ( count | integer | opaque | host | hostname | - net_address_v4 | net_address_v6 | time | + net_address | net_address_v4 | net_address_v6 | time | astring | ustring | boolean | fmri | uri ) #REQUIRED override ( true | false ) "false" > ]]> @@ -260,8 +266,8 @@ <!ATTLIST propval name CDATA #REQUIRED type ( count | integer | opaque | host | hostname | - net_address_v4 | net_address_v6 | time | astring | - ustring | boolean | fmri | uri ) #IMPLIED + net_address | net_address_v4 | net_address_v6 | time | + astring | ustring | boolean | fmri | uri ) #IMPLIED value CDATA #REQUIRED override ( true | false ) "false" > ]]> @@ -272,8 +278,8 @@ <!ATTLIST propval name CDATA #REQUIRED type ( count | integer | opaque | host | hostname | - net_address_v4 | net_address_v6 | time | astring | - ustring | boolean | fmri | uri ) #REQUIRED + net_address | net_address_v4 | net_address_v6 | time | + astring | ustring | boolean | fmri | uri ) #REQUIRED value CDATA #REQUIRED override ( true | false ) "false" > ]]> @@ -872,8 +878,8 @@ <!ATTLIST prop_pattern name CDATA #REQUIRED type ( count | integer | opaque | host | hostname | - net_address_v4 | net_address_v6 | time | astring | - ustring | boolean | fmri | uri ) #IMPLIED + net_address | net_address_v4 | net_address_v6 | time | + astring | ustring | boolean | fmri | uri ) #IMPLIED required ( true | false ) "false" > <!-- diff --git a/usr/src/cmd/svc/svccfg/svccfg.h b/usr/src/cmd/svc/svccfg/svccfg.h index ad870db620..5cec384daf 100644 --- a/usr/src/cmd/svc/svccfg/svccfg.h +++ b/usr/src/cmd/svc/svccfg/svccfg.h @@ -85,20 +85,62 @@ extern int lex_lineno; * lxml_prop_types[] */ typedef enum element { - SC_ASTRING = 0, SC_BOOLEAN, SC_CARDINALITY, SC_CHOICES, - SC_COMMON_NAME, SC_CONSTRAINTS, SC_COUNT, - SC_INSTANCE_CREATE_DEFAULT, SC_DEPENDENCY, SC_DEPENDENT, - SC_DESCRIPTION, SC_DOC_LINK, SC_DOCUMENTATION, SC_ENABLED, - SC_EXEC_METHOD, SC_FMRI, SC_HOST, SC_HOSTNAME, SC_INCLUDE_VALUES, - SC_INSTANCE, SC_INTEGER, SC_INTERNAL_SEPARATORS, SC_LOCTEXT, SC_MANPAGE, - SC_METHOD_CONTEXT, SC_METHOD_CREDENTIAL, - SC_METHOD_PROFILE, SC_METHOD_ENVIRONMENT, SC_METHOD_ENVVAR, - SC_NET_ADDR_V4, SC_NET_ADDR_V6, SC_OPAQUE, SC_PG_PATTERN, - SC_PROP_PATTERN, SC_PROPERTY, SC_PROPERTY_GROUP, SC_PROPVAL, SC_RANGE, - SC_RESTARTER, SC_SERVICE, SC_SERVICE_BUNDLE, SC_SERVICE_FMRI, - SC_INSTANCE_SINGLE, SC_STABILITY, SC_TEMPLATE, SC_TIME, SC_UNITS, - SC_URI, SC_USTRING, SC_VALUE, SC_VALUE_NODE, SC_VALUES, - SC_VISIBILITY, SC_XI_FALLBACK, SC_XI_INCLUDE + SC_ASTRING = 0, + SC_BOOLEAN, + SC_CARDINALITY, + SC_CHOICES, + SC_COMMON_NAME, + SC_CONSTRAINTS, + SC_COUNT, + SC_INSTANCE_CREATE_DEFAULT, + SC_DEPENDENCY, + SC_DEPENDENT, + SC_DESCRIPTION, + SC_DOC_LINK, + SC_DOCUMENTATION, + SC_ENABLED, + SC_EXEC_METHOD, + SC_FMRI, + SC_HOST, + SC_HOSTNAME, + SC_INCLUDE_VALUES, + SC_INSTANCE, + SC_INTEGER, + SC_INTERNAL_SEPARATORS, + SC_LOCTEXT, + SC_MANPAGE, + SC_METHOD_CONTEXT, + SC_METHOD_CREDENTIAL, + SC_METHOD_PROFILE, + SC_METHOD_ENVIRONMENT, + SC_METHOD_ENVVAR, + SC_NET_ADDR, + SC_NET_ADDR_V4, + SC_NET_ADDR_V6, + SC_OPAQUE, + SC_PG_PATTERN, + SC_PROP_PATTERN, + SC_PROPERTY, + SC_PROPERTY_GROUP, + SC_PROPVAL, + SC_RANGE, + SC_RESTARTER, + SC_SERVICE, + SC_SERVICE_BUNDLE, + SC_SERVICE_FMRI, + SC_INSTANCE_SINGLE, + SC_STABILITY, + SC_TEMPLATE, + SC_TIME, + SC_UNITS, + SC_URI, + SC_USTRING, + SC_VALUE, + SC_VALUE_NODE, + SC_VALUES, + SC_VISIBILITY, + SC_XI_FALLBACK, + SC_XI_INCLUDE } element_t; typedef enum bundle_type { diff --git a/usr/src/cmd/svc/svccfg/svccfg_xml.c b/usr/src/cmd/svc/svccfg/svccfg_xml.c index a02ea74d54..3dfacf53c5 100644 --- a/usr/src/cmd/svc/svccfg/svccfg_xml.c +++ b/usr/src/cmd/svc/svccfg/svccfg_xml.c @@ -133,6 +133,7 @@ static const char *lxml_elements[] = { "method_profile", /* SC_METHOD_PROFILE */ "method_environment", /* SC_METHOD_ENVIRONMENT */ "envvar", /* SC_METHOD_ENVVAR */ + "net_address_list", /* SC_NET_ADDR */ "net_address_v4_list", /* SC_NET_ADDR_V4 */ "net_address_v6_list", /* SC_NET_ADDR_V6 */ "opaque_list", /* SC_OPAQUE */ @@ -195,6 +196,7 @@ static const char *lxml_prop_types[] = { "", /* SC_METHOD_PROFILE */ "", /* SC_METHOD_ENVIRONMENT */ "", /* SC_METHOD_ENVVAR */ + "net_address", /* SC_NET_ADDR */ "net_address_v4", /* SC_NET_ADDR_V4 */ "net_address_v6", /* SC_NET_ADDR_V6 */ "opaque", /* SC_OPAQUE */ @@ -305,6 +307,7 @@ lxml_element_to_type(element_t type) case SC_HOST: return (SCF_TYPE_HOST); case SC_HOSTNAME: return (SCF_TYPE_HOSTNAME); case SC_INTEGER: return (SCF_TYPE_INTEGER); + case SC_NET_ADDR: return (SCF_TYPE_NET_ADDR); case SC_NET_ADDR_V4: return (SCF_TYPE_NET_ADDR_V4); case SC_NET_ADDR_V6: return (SCF_TYPE_NET_ADDR_V6); case SC_OPAQUE: return (SCF_TYPE_OPAQUE); @@ -330,6 +333,7 @@ lxml_type_to_element(scf_type_t type) case SCF_TYPE_HOST: return (SC_HOST); case SCF_TYPE_HOSTNAME: return (SC_HOSTNAME); case SCF_TYPE_INTEGER: return (SC_INTEGER); + case SCF_TYPE_NET_ADDR: return (SC_NET_ADDR); case SCF_TYPE_NET_ADDR_V4: return (SC_NET_ADDR_V4); case SCF_TYPE_NET_ADDR_V6: return (SC_NET_ADDR_V6); case SCF_TYPE_OPAQUE: return (SC_OPAQUE); @@ -554,6 +558,7 @@ lxml_store_value(value_t *v, element_t type, const xmlChar *value) case SC_OPAQUE: case SC_HOST: case SC_HOSTNAME: + case SC_NET_ADDR: case SC_NET_ADDR_V4: case SC_NET_ADDR_V6: case SC_FMRI: @@ -757,6 +762,7 @@ lxml_get_property(pgroup_t *pgrp, xmlNodePtr property) case SC_HOST: case SC_HOSTNAME: case SC_INTEGER: + case SC_NET_ADDR: case SC_NET_ADDR_V4: case SC_NET_ADDR_V6: case SC_OPAQUE: |