5312bab sbus: Refactor how we export DBus interfaces

21 files Authored by stefw 9 years ago, Committed by jhrozek 9 years ago,
    sbus: Refactor how we export DBus interfaces
    
    Most importantly, stop using per connection private data. This doesn't
    scale when you have more than one thing exporting or exported on a
    connection.
    
    Remove struct sbus_interface and expand sbus_conn_add_interface()
    function. Remove various struct sbus_interface args to connection
    initialization functions and make callers use sbus_conn_add_interface()
    directly. The old method was optimized for exporting one interface
    on a connection. We'll have connections that export zero, one or more
    interfaces.
    
    To export an interface on a DBus server, call sbus_conn_add_interface()
    from within the sbus_server_conn_init_fn. To export an interface on
    a DBus client, call sbus_conn_add_interface() after sbus_new_connection()
    returns.
    
    As before struct sbus_interface represents an object exported via DBus.
    However it is now talloc allocated. One can set instance data on the
    struct sbus_interface. This instance data is passed to the various
    handlers and used in their implementation.
    
    However, we now have type safe interface exporting in the various
    high level sss_process_init() sss_monitor_init() and so on.
    
    Introspection support was not in use, and is now gone until we
    implement it using the metadata (future patch).
    
    Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
    Reviewed-by: Pavel Březina <pbrezina@redhat.com>
    Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
    (cherry picked from commit 07e941c1bbdc752142bbd3b838c540bc7ecd0ed7)
    
        
file modified
+9 -14
file modified
+16 -6
file modified
+12 -29
file modified
+2 -15
file modified
+2 -15
file modified
+2 -14
file modified
+2 -14
file modified
+2 -9
file modified
+1 -4
file modified
+19 -13
file modified
+31 -65
file modified
+0 -4
file modified
+1 -7