2010-12-16 13:59:25 +01:00
|
|
|
From: Stefan Seyfried <seife+obs@b1-systems.com>
|
|
|
|
Date: Thu, 16 Dec 2010 11:30:17 +0100
|
2013-04-13 13:09:53 +02:00
|
|
|
Subject: Add bootsplash handling for password dialogs
|
2010-12-16 13:59:25 +01:00
|
|
|
|
|
|
|
openSUSE uses bootsplash.org, so add a crude handling for setting the
|
|
|
|
splash screen to verbose when a password is asked...
|
|
|
|
---
|
2013-04-13 13:09:53 +02:00
|
|
|
src/shared/ask-password-api.c | 22 ++++++++++++++++++++++
|
|
|
|
1 file changed, 22 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/src/shared/ask-password-api.c b/src/shared/ask-password-api.c
|
2013-04-19 22:31:17 +02:00
|
|
|
index 4557155..3750f64 100644
|
2013-04-13 13:09:53 +02:00
|
|
|
--- a/src/shared/ask-password-api.c
|
|
|
|
+++ b/src/shared/ask-password-api.c
|
2013-01-09 10:46:41 +01:00
|
|
|
@@ -63,6 +63,9 @@ int ask_password_tty(
|
2010-12-16 13:59:25 +01:00
|
|
|
bool reset_tty = false;
|
2011-04-22 19:35:38 +02:00
|
|
|
bool silent_mode = false;
|
|
|
|
bool dirty = false;
|
2010-12-16 13:59:25 +01:00
|
|
|
+ bool splash_silent = false;
|
|
|
|
+ FILE *procsplash = NULL;
|
|
|
|
+ char *line = NULL;
|
|
|
|
enum {
|
|
|
|
POLL_TTY,
|
|
|
|
POLL_INOTIFY
|
2013-01-09 10:46:41 +01:00
|
|
|
@@ -106,6 +109,19 @@ int ask_password_tty(
|
2010-12-16 13:59:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
reset_tty = true;
|
|
|
|
+ procsplash = fopen("/proc/splash", "r+");
|
|
|
|
+ if (procsplash) {
|
|
|
|
+ getline(&line, &p, procsplash);
|
|
|
|
+ p = 0; /* reset, just to make sure */
|
|
|
|
+ if (line &&
|
|
|
|
+ (strstr(line, "on\n") == line + strlen(line) - 3) &&
|
|
|
|
+ (strstr(line, "silent") != NULL)) {
|
|
|
|
+ splash_silent = true;
|
|
|
|
+ rewind(procsplash);
|
|
|
|
+ fprintf(procsplash, "verbose\n");
|
|
|
|
+ fflush(procsplash);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
|
|
|
|
zero(pollfd);
|
2013-04-19 22:31:17 +02:00
|
|
|
@@ -239,6 +255,12 @@ finish:
|
2010-12-16 13:59:25 +01:00
|
|
|
close_nointr_nofail(ttyfd);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ if (splash_silent) { /* only set if procsplash != NULL */
|
|
|
|
+ rewind(procsplash);
|
|
|
|
+ fprintf(procsplash, "silent\n");
|
|
|
|
+ fclose(procsplash);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
return r;
|
|
|
|
}
|
|
|
|
|