dp_iface.c revision e737cdfa225e0d455c0e574bcb82c2cc16a17d9d
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen/*
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Authors:
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Pavel Březina <pbrezina@redhat.com>
16f816d3f3c32ae3351834253f52ddd0212bcbf3Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Copyright (C) 2016 Red Hat
1098fc409a45e7603701dc94635927a673bee0c1Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen This program is free software; you can redistribute it and/or modify
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen it under the terms of the GNU General Public License as published by
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen the Free Software Foundation; either version 3 of the License, or
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen (at your option) any later version.
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen This program is distributed in the hope that it will be useful,
fd2f5fbc1f07aa93e2214a28cdf02437fb7d06c8Timo Sirainen but WITHOUT ANY WARRANTY; without even the implied warranty of
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen GNU General Public License for more details.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen You should have received a copy of the GNU General Public License
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen along with this program. If not, see <http://www.gnu.org/licenses/>.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen*/
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
a2ce2eb4c266e2854fd34416ea5cfbe05dfd3971Timo Sirainen#include <dbus/dbus.h>
a2ce2eb4c266e2854fd34416ea5cfbe05dfd3971Timo Sirainen
e9f2d9104d395bcf54be3f8ba8d9f63aecf0bcbeTimo Sirainen#include "sbus/sssd_dbus.h"
e9f2d9104d395bcf54be3f8ba8d9f63aecf0bcbeTimo Sirainen#include "providers/data_provider/dp_iface_generated.h"
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen#include "providers/data_provider/dp_iface.h"
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen#include "providers/data_provider/dp_private.h"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen#include "providers/data_provider/dp.h"
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainenstruct iface_dp iface_dp = {
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen {&iface_dp_meta, 0},
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen .pamHandler = dp_pam_handler,
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen .sudoHandler = dp_sudo_handler,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .autofsHandler = dp_autofs_handler,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .hostHandler = dp_host_handler,
e1f05b193ac1edd3267294e9501e8063aa0f791aTimo Sirainen .getDomains = dp_subdomains_handler,
e1f05b193ac1edd3267294e9501e8063aa0f791aTimo Sirainen .getAccountInfo = dp_get_account_info_handler
e1f05b193ac1edd3267294e9501e8063aa0f791aTimo Sirainen};
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainenstruct iface_dp_backend iface_dp_backend = {
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen {&iface_dp_backend_meta, 0},
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .IsOnline = dp_backend_is_online
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen};
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainenstruct iface_dp_failover iface_dp_failover = {
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen { &iface_dp_failover_meta, 0 },
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .ListServices = dp_failover_list_services,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .ActiveServer = dp_failover_active_server,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .ListServers = dp_failover_list_servers
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen};
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
4b058f90f9e8a2c6b2eed275de4eb8cc5195a71dTimo Sirainenstruct iface_dp_access_control iface_dp_access_control = {
ee26329cb5cc679b5645e4933d529f86accb976aTimo Sirainen { &iface_dp_access_control_meta, 0 },
ee26329cb5cc679b5645e4933d529f86accb976aTimo Sirainen .RefreshRules = dp_access_control_refresh_rules_handler
ee26329cb5cc679b5645e4933d529f86accb976aTimo Sirainen};
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen
992a13add4eea0810e4db0f042a595dddf85536aTimo Sirainenstatic struct sbus_iface_map dp_map[] = {
992a13add4eea0810e4db0f042a595dddf85536aTimo Sirainen { DP_PATH, &iface_dp.vtable },
6a19e109ee8c5a6f688da83a86a7f6abeb71abddTimo Sirainen { DP_PATH, &iface_dp_backend.vtable },
992a13add4eea0810e4db0f042a595dddf85536aTimo Sirainen { DP_PATH, &iface_dp_failover.vtable },
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen { DP_PATH, &iface_dp_access_control.vtable },
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen { NULL, NULL }
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen};
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
a2ce2eb4c266e2854fd34416ea5cfbe05dfd3971Timo Sirainenerrno_t
a2ce2eb4c266e2854fd34416ea5cfbe05dfd3971Timo Sirainendp_register_sbus_interface(struct sbus_connection *conn,
a2ce2eb4c266e2854fd34416ea5cfbe05dfd3971Timo Sirainen struct dp_client *pvt)
a2ce2eb4c266e2854fd34416ea5cfbe05dfd3971Timo Sirainen{
a2ce2eb4c266e2854fd34416ea5cfbe05dfd3971Timo Sirainen return sbus_conn_register_iface_map(conn, dp_map, pvt);
a2ce2eb4c266e2854fd34416ea5cfbe05dfd3971Timo Sirainen}
e9f2d9104d395bcf54be3f8ba8d9f63aecf0bcbeTimo Sirainen