summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/cmd/svc/dtd/service_bundle.dtd.130
-rw-r--r--usr/src/cmd/svc/svccfg/svccfg.h70
-rw-r--r--usr/src/cmd/svc/svccfg/svccfg_xml.c6
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: