4 #include <lightdm/greeter.h>
8 static GKeyFile *config;
11 connected_cb (LdmGreeter *greeter)
13 notify_status ("GREETER CONNECTED-TO-DAEMON");
15 if (ldm_greeter_get_is_first (greeter))
19 username = g_key_file_get_string (config, "test-greeter-config", "username", NULL);
21 if (g_key_file_get_boolean (config, "test-greeter-config", "login-guest", NULL))
23 notify_status ("GREETER LOGIN-GUEST");
24 ldm_greeter_login_as_guest (greeter);
26 else if (g_key_file_get_boolean (config, "test-greeter-config", "prompt-username", NULL))
28 notify_status ("GREETER LOGIN");
29 ldm_greeter_login (greeter, NULL);
33 notify_status ("GREETER LOGIN USERNAME=%s", username);
34 ldm_greeter_login (greeter, username);
42 show_message_cb (LdmGreeter *greeter, const gchar *text)
44 notify_status ("GREETER SHOW-MESSAGE TEXT=\"%s\"", text);
48 show_error_cb (LdmGreeter *greeter, const gchar *text)
50 notify_status ("GREETER SHOW-ERROR TEXT=\"%s\"", text);
54 show_prompt_cb (LdmGreeter *greeter, const gchar *text)
56 gchar *username, *password, *response = NULL;
58 notify_status ("GREETER SHOW-PROMPT TEXT=\"%s\"", text);
60 username = g_key_file_get_string (config, "test-greeter-config", "username", NULL);
61 password = g_key_file_get_string (config, "test-greeter-config", "password", NULL);
63 if (g_key_file_get_boolean (config, "test-greeter-config", "prompt-username", NULL))
65 g_key_file_set_boolean (config, "test-greeter-config", "prompt-username", FALSE);
73 notify_status ("GREETER RESPOND TEXT=\"%s\"", response);
74 ldm_greeter_respond (greeter, response);
82 authentication_complete_cb (LdmGreeter *greeter)
84 notify_status ("GREETER AUTHENTICATION-COMPLETE AUTHENTICATED=%s", ldm_greeter_get_is_authenticated (greeter) ? "TRUE" : "FALSE");
85 if (ldm_greeter_get_is_authenticated (greeter))
86 ldm_greeter_start_default_session (greeter);
90 quit_cb (LdmGreeter *greeter)
92 notify_status ("GREETER QUIT");
97 signal_cb (int signum)
99 notify_status ("GREETER TERMINATE SIGNAL=%d", signum);
104 main (int argc, char **argv)
107 xcb_connection_t *connection;
109 signal (SIGINT, signal_cb);
110 signal (SIGTERM, signal_cb);
112 notify_status ("GREETER START");
114 config = g_key_file_new ();
115 if (g_getenv ("TEST_CONFIG"))
116 g_key_file_load_from_file (config, g_getenv ("TEST_CONFIG"), G_KEY_FILE_NONE, NULL);
120 connection = xcb_connect (NULL, NULL);
122 if (xcb_connection_has_error (connection))
124 fprintf (stderr, "Error connecting\n");
128 notify_status ("GREETER CONNECT-XSERVER %s", getenv ("DISPLAY"));
130 greeter = ldm_greeter_new ();
131 g_signal_connect (greeter, "connected", G_CALLBACK (connected_cb), NULL);
132 g_signal_connect (greeter, "show-message", G_CALLBACK (show_message_cb), NULL);
133 g_signal_connect (greeter, "show-error", G_CALLBACK (show_error_cb), NULL);
134 g_signal_connect (greeter, "show-prompt", G_CALLBACK (show_prompt_cb), NULL);
135 g_signal_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL);
136 g_signal_connect (greeter, "quit", G_CALLBACK (quit_cb), NULL);
138 notify_status ("GREETER CONNECT-TO-DAEMON");
139 ldm_greeter_connect_to_server (greeter);
141 g_main_loop_run (g_main_loop_new (NULL, FALSE));