diff options
Diffstat (limited to 'server/providers/data_provider.c')
-rw-r--r-- | server/providers/data_provider.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/server/providers/data_provider.c b/server/providers/data_provider.c index e361dfc87..2eacf47e4 100644 --- a/server/providers/data_provider.c +++ b/server/providers/data_provider.c @@ -29,6 +29,7 @@ #include <string.h> #include <sys/time.h> #include <errno.h> +#include <time.h> #include "popt.h" #include "util/util.h" #include "confdb/confdb.h" @@ -88,12 +89,33 @@ struct sbus_method mon_sbus_methods[] = { }; static int dp_get_account_info(DBusMessage *message, void *data, DBusMessage **r); +static int get_policies(DBusMessage *message, void *data, DBusMessage **r); struct sbus_method dp_sbus_methods[] = { { DP_SRV_METHOD_GETACCTINFO, dp_get_account_info }, + {DP_PP_GET_POLICIES, get_policies}, { NULL, NULL } }; +static int get_policies(DBusMessage *message, void *data, DBusMessage **r) { + DBusMessage *reply; + dbus_bool_t ret; + int val; + + val = 1+(int) (4.0*rand()/(RAND_MAX+1.0)); + + reply = dbus_message_new_method_return(message); + ret = dbus_message_append_args(reply, DBUS_TYPE_UINT32, &val, + DBUS_TYPE_INVALID); + if (!ret) { + return EIO; + } + + *r = reply; + return EOK; +} + + struct dp_request { /* reply message to send when request is done */ DBusMessage *reply; |