launch_daemon: Basic user session implementation.
* Instead of launching Tracker/Deskbar directly, we now launch the Login application. * This will now start a new session for the selected user (the password is currently ignored). * When a user session is started, the launch_daemon forks, and the child then restarts the LaunchDaemon application in user mode. * It then registers itself with its parent, in order to resolve user dependent services. * Added a user launch file that will cause Tracker, and Deskbar to start in the new session.
This commit is contained in:
@@ -24,7 +24,9 @@ namespace BPrivate {
|
||||
|
||||
// message constants
|
||||
enum {
|
||||
B_GET_LAUNCH_DATA = 'lncd',
|
||||
B_GET_LAUNCH_DATA = 'lnda',
|
||||
B_LAUNCH_SESSION = 'lnse',
|
||||
B_REGISTER_LAUNCH_SESSION = 'lnrs',
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,14 @@ public:
|
||||
port_id GetPort(const char* signature,
|
||||
const char* name);
|
||||
|
||||
status_t StartSession(const char* login,
|
||||
const char* password);
|
||||
|
||||
class Private;
|
||||
|
||||
private:
|
||||
friend class Private;
|
||||
|
||||
void _InitMessenger();
|
||||
|
||||
private:
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright 2015 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _LAUNCH_ROSTER_PRIVATE_H
|
||||
#define _LAUNCH_ROSTER_PRIVATE_H
|
||||
|
||||
|
||||
#include <LaunchRoster.h>
|
||||
|
||||
|
||||
class BLaunchRoster::Private {
|
||||
public:
|
||||
Private(BLaunchRoster* roster);
|
||||
Private(BLaunchRoster& roster);
|
||||
|
||||
status_t RegisterSession(const BMessenger& target);
|
||||
|
||||
private:
|
||||
BLaunchRoster* fRoster;
|
||||
};
|
||||
|
||||
|
||||
#endif // _LAUNCH_ROSTER_PRIVATE_H
|
||||
Reference in New Issue
Block a user