*
* Connection Manager
*
- * Copyright (C) 2007-2012 Intel Corporation. All rights reserved.
+ * Copyright (C) 2007-2013 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
#ifndef __CONNMAN_PROVIDER_H
#define __CONNMAN_PROVIDER_H
+#include <stdbool.h>
+
#include <glib.h>
-#include <connman/types.h>
#ifdef __cplusplus
extern "C" {
CONNMAN_PROVIDER_ERROR_AUTH_FAILED = 3,
};
+enum connman_provider_route_type {
+ CONNMAN_PROVIDER_ROUTE_UNKNOWN = 0,
+ CONNMAN_PROVIDER_ROUTE_ALL = 0,
+ CONNMAN_PROVIDER_ROUTE_USER = 1,
+ CONNMAN_PROVIDER_ROUTE_SERVER = 2,
+};
+
struct connman_provider;
struct connman_ipaddress;
const char *file, int line, const char *caller);
int connman_provider_disconnect(struct connman_provider *provider);
+int connman_provider_remove(struct connman_provider *provider);
int connman_provider_set_string(struct connman_provider *provider,
const char *key, const char *value);
struct connman_ipaddress *ipaddress);
int connman_provider_set_pac(struct connman_provider *provider,
const char *pac);
+int connman_provider_create_service(struct connman_provider *provider);
+int connman_provider_set_immutable(struct connman_provider *provider,
+ bool immutable);
+struct connman_provider *connman_provider_get(const char *identifier);
+void connman_provider_put(struct connman_provider *provider);
int connman_provider_set_domain(struct connman_provider *provider,
const char *domain);
int connman_provider_set_nameservers(struct connman_provider *provider,
- const char *nameservers);
+ char * const *nameservers);
int connman_provider_append_route(struct connman_provider *provider,
const char *key, const char *value);
const char *connman_provider_get_driver_name(struct connman_provider *provider);
const char *connman_provider_get_save_group(struct connman_provider *provider);
+typedef void (* connection_ready_cb) (DBusMessage *msg, int error_code,
+ void *user_data);
struct connman_provider_driver {
const char *name;
int (*connect) (struct connman_provider *provider);
int (*disconnect) (struct connman_provider *provider);
int (*save) (struct connman_provider *provider, GKeyFile *keyfile);
+ int (*set_property) (struct connman_provider *provider,
+ const char *key, const char *value);
+ const char * (*get_property) (struct connman_provider *provider,
+ const char *key);
+ int (*create) (DBusMessage *msg, connection_ready_cb callback);
+ int (*set_routes) (struct connman_provider *provider,
+ enum connman_provider_route_type type);
+ bool (*check_routes) (struct connman_provider *provider);
};
int connman_provider_driver_register(struct connman_provider_driver *driver);
void connman_provider_driver_unregister(struct connman_provider_driver *driver);
+void connman_provider_set_driver(struct connman_provider *provider,
+ struct connman_provider_driver *driver);
#ifdef __cplusplus
}