summaryrefslogtreecommitdiff
path: root/usr/src/lib/libbrand/common/libbrand.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libbrand/common/libbrand.c')
-rw-r--r--usr/src/lib/libbrand/common/libbrand.c29
1 files changed, 25 insertions, 4 deletions
diff --git a/usr/src/lib/libbrand/common/libbrand.c b/usr/src/lib/libbrand/common/libbrand.c
index d0343acc47..5e6f3e502e 100644
--- a/usr/src/lib/libbrand/common/libbrand.c
+++ b/usr/src/lib/libbrand/common/libbrand.c
@@ -63,6 +63,8 @@
#define DTD_ELEM_MODNAME ((const xmlChar *) "modname")
#define DTD_ELEM_MOUNT ((const xmlChar *) "mount")
#define DTD_ELEM_RESTARTINIT ((const xmlChar *) "restartinit")
+#define DTD_ELEM_RESTARTINIT0 ((const xmlChar *) "restartinit0")
+#define DTD_ELEM_RESTARTINITREBOOT ((const xmlChar *) "restartinitreboot")
#define DTD_ELEM_POSTATTACH ((const xmlChar *) "postattach")
#define DTD_ELEM_POSTCLONE ((const xmlChar *) "postclone")
#define DTD_ELEM_POSTINSTALL ((const xmlChar *) "postinstall")
@@ -522,21 +524,40 @@ brand_get_initname(brand_handle_t bh, char *buf, size_t len)
buf, len, DTD_ELEM_INITNAME, B_FALSE, B_FALSE));
}
-boolean_t
-brand_restartinit(brand_handle_t bh)
+static boolean_t
+i_brand_restartinit(brand_handle_t bh, const xmlChar *tagname, boolean_t deflt)
{
struct brand_handle *bhp = (struct brand_handle *)bh;
char val[80];
if (brand_get_value(bhp, NULL, NULL, NULL, NULL,
- val, sizeof (val), DTD_ELEM_RESTARTINIT, B_FALSE, B_FALSE) != 0)
- return (B_TRUE);
+ val, sizeof (val), tagname, B_FALSE, B_FALSE) != 0) {
+ return (deflt);
+ }
if (strcmp(val, "false") == 0)
return (B_FALSE);
return (B_TRUE);
}
+boolean_t
+brand_restartinit(brand_handle_t bh)
+{
+ return (i_brand_restartinit(bh, DTD_ELEM_RESTARTINIT, B_TRUE));
+}
+
+boolean_t
+brand_restartinit0(brand_handle_t bh)
+{
+ return (i_brand_restartinit(bh, DTD_ELEM_RESTARTINIT0, B_FALSE));
+}
+
+boolean_t
+brand_restartinitreboot(brand_handle_t bh)
+{
+ return (i_brand_restartinit(bh, DTD_ELEM_RESTARTINITREBOOT, B_FALSE));
+}
+
int
brand_get_login_cmd(brand_handle_t bh, const char *username,
char *buf, size_t len)