launch_daemon: Fixed preregister consequences.

* Since the last change, the user launch_daemon would talk to the
  registrar again.
* However, this also caused BRoster::Launch() to preregister the app,
  which messed up our preallocated port.
* BRoster::Private::Launch() now allows to get the port that the
  registrar created in such a case, and the launch_daemon will now just
  use that one as default port.
* This lets us talk to the Deskbar again, and should fix #12455, as
  well as #12454 (again).
This commit is contained in:
Axel Dörfler
2015-11-11 16:04:02 +01:00
parent 2c2ba72cf4
commit 9e73b62749
6 changed files with 80 additions and 38 deletions
+4 -2
View File
@@ -31,9 +31,11 @@ class BRoster::Private {
status_t Launch(const char* mimeType, const entry_ref* ref,
const BList* messageList, int argc, const char* const* args,
const char** environment, team_id* appTeam,
thread_id* appThread, bool launchSuspended)
thread_id* appThread, port_id* appPort, uint32* appToken,
bool launchSuspended)
{ return fRoster->_LaunchApp(mimeType, ref, messageList, argc,
args, environment, appTeam, appThread, launchSuspended); }
args, environment, appTeam, appThread, appPort, appToken,
launchSuspended); }
status_t ShutDown(bool reboot, bool confirm, bool synchronous)
{ return fRoster->_ShutDown(reboot, confirm, synchronous); }