removing dbus_getuid
Peter Kümmel
syntheticpp at gmx.net
Sun May 27 06:02:55 PDT 2007
Havoc, maybe it has not become clear:
I seriously try to go your route.
I hope I'm not completely wrong.
Peter Kümmel wrote:
> I've tried to remove dbus_getuid calls from the "platform independent"
> code. The first step was to introduce _dbus_append_uid, first patch.
>
> Internally I still use the dummy uid, but they could be later on
> replaced by a DBusString which holds a sid.
>
> I've found _dbus_getuid() in a call of _dbus_user_database_get_uid
> in init_system_db. Is it right that we have to set up a database
> which handles DBusStrings?
>
>
> A other call is in
>
> bus_policy_allow_user (BusPolicy *policy,
> unsigned long uid)
> {
> dbus_bool_t allowed;
> unsigned long *group_ids;
> int n_group_ids;
>
> Seems this makes only sens on Unix, so I've introduced
> "allow_unix_user_function" and "allow_win_user_function",
> to avoid the calling of bus_policy_allow_user, see the second patch.
> (the patches only demonstrate the changes)
>
>
> How should we fix the "plain _wrong_" patch of policy.c?
>
> "bus_policy_create_client_policy" also uses dbus_uid_t and
> is called by "bus_context_create_client_policy"
> which is called by "bus_connection_complete". Should we rename
> all these function to *_unix?
> But this looks like duplicating the code. Or are all these functions
> without sens on windows?.
>
> A other way is to call everywhere the function for unix and win and
> make one of the functions a noop when it is called on the wrong system.
> But currently the unix function will fail on windows.
>
> Peter
>
>
More information about the dbus
mailing list