1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
|
/*
*
* Connection Manager UI
*
* Copyright (C) 2012 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
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifndef __CONNMAN_INTERFACE_H__
#define __CONNMAN_INTERFACE_H__
#include <errno.h>
#include <stdbool.h>
#include <stdint.h>
#include <glib.h>
// TEMPORARY
#include <stdio.h>
//
enum connman_state {
CONNMAN_STATE_UNKNOWN = 0,
CONNMAN_STATE_OFFLINE = 1,
CONNMAN_STATE_IDLE = 2,
CONNMAN_STATE_READY = 3,
CONNMAN_STATE_ONLINE = 4,
CONNMAN_STATE_FAILURE = 5,
};
struct connman_ipv4 {
char *method;
char *address;
char *netmask;
char *gateway;
};
struct connman_ipv6 {
char *method;
char *address;
uint8_t prefix;
char *gateway;
char *privacy;
};
struct connman_proxy {
char *method;
char *url;
char *servers;
char *excludes;
};
struct connman_provider {
char *host;
char *domain;
char *name;
char *type;
};
struct connman_ethernet {
char *method;
char *interface;
char *address;
uint16_t mtu;
uint16_t speed;
char *duplex;
};
typedef void (*connman_interface_cb_f)(void *user_data);
typedef void (*connman_scan_cb_f)(void *user_data);
typedef void (*connman_refresh_cb_f)(void *user_data);
typedef void (*connman_property_changed_cb_f)(const char *path,
const char *property,
void *user_data);
typedef void (*connman_property_set_cb_f)(const char *path,
const char *property,
int error,
void *user_data);
typedef void (*connman_path_changed_cb_f)(const char *path);
typedef void (*agent_error_cb_f)(const char *path, const char *error);
typedef void (*agent_browser_cb_f)(const char *path, const char *url);
typedef void (*agent_input_cb_f)(const char *path, gboolean hidden,
gboolean identity, gboolean passphrase,
const char *previous_passphrase, gboolean wpspin,
const char *previous_wpspin, gboolean login);
typedef void (*agent_cancel_cb_f)(void);
/***********\
* Main part *
\***********/
int connman_interface_init(connman_interface_cb_f interface_connected_cb,
connman_interface_cb_f interface_disconnected_cb,
void *user_data);
void connman_interface_finalize(void);
/**************\
* Manager part *
\**************/
int connman_manager_init(connman_property_changed_cb_f property_changed_cb,
void *user_data);
void connman_manager_finalize(void);
int connman_manager_set_offlinemode(gboolean offlinemode);
enum connman_state connman_manager_get_state(void);
gboolean connman_manager_get_offlinemode(void);
void connman_manager_register_agent(const char *path);
void connman_manager_unregister_agent(const char *path);
/*****************\
* Technology part *
\*****************/
int connman_technology_init(void);
void connman_technology_finalize(void);
void connman_technology_set_global_property_callback(
connman_property_changed_cb_f property_changed_cb,
void *user_data);
void connman_technology_set_property_changed_callback(const char *path,
connman_property_changed_cb_f property_changed_cb,
void *user_data);
void connman_technology_set_property_error_callback(const char *path,
connman_property_set_cb_f property_set_cb,
void *user_data);
void connman_technology_set_removed_callback(
connman_path_changed_cb_f removed_cb);
void connman_technology_set_added_callback(connman_path_changed_cb_f added_cb);
GList *connman_technology_get_technologies(void);
int connman_technology_scan(const char *path,
connman_scan_cb_f callback, void *user_data);
int connman_technology_enable(const char *path, gboolean enable);
int connman_technology_tether(const char *path, gboolean tethering);
int connman_technology_set_tethering_identifier(const char *path,
const char *identifier);
int connman_technology_set_tethering_passphrase(const char *path,
const char *passphrase);
const char *connman_technology_get_name(const char *path);
const char *connman_technology_get_type(const char *path);
gboolean connman_technology_is_enabled(const char *path);
gboolean connman_technology_is_tethering(const char *path);
const char *connman_technology_get_tethering_identifier(const char *path);
const char *connman_technology_get_tethering_passphrase(const char *path);
/**************\
* Service part *
\**************/
int connman_service_init(void);
void connman_service_finalize(void);
int connman_service_refresh_services_list(connman_refresh_cb_f refresh_cb,
connman_scan_cb_f scan_cb, void *user_data);
GSList *connman_service_get_services(void);
void connman_service_free_services_list(void);
void connman_service_set_property_changed_callback(const char *path,
connman_property_changed_cb_f property_changed_cb,
void *user_data);
void connman_service_set_property_error_callback(const char *path,
connman_property_set_cb_f property_set_cb,
void *user_data);
void connman_service_set_removed_callback(
connman_path_changed_cb_f removed_cb);
const char *connman_service_get_name(const char *path);
const char *connman_service_get_type(const char *path);
enum connman_state connman_service_get_state(const char *path);
const char *connman_service_get_error(const char *path);
const char *connman_service_get_security(const char *path);
uint8_t connman_service_get_strength(const char *path);
gboolean connman_service_is_favorite(const char *path);
gboolean connman_service_is_immutable(const char *path);
gboolean connman_service_is_autoconnect(const char *path);
gboolean connman_service_is_roaming(const char *path);
const char *connman_service_get_nameservers(const char *path);
const char *connman_service_get_nameservers_config(const char *path);
const char *connman_service_get_domains(const char *path);
const char *connman_service_get_domains_config(const char *path);
const char *connman_service_get_timeservers(const char *path);
const char *connman_service_get_timeservers_config(const char *path);
const struct connman_ipv4 *connman_service_get_ipv4(const char *path);
const struct connman_ipv4 *connman_service_get_ipv4_config(const char *path);
const struct connman_ipv6 *connman_service_get_ipv6(const char *path);
const struct connman_ipv6 *connman_service_get_ipv6_config(const char *path);
const struct connman_proxy *connman_service_get_proxy(const char *path);
const struct connman_proxy *connman_service_get_proxy_config(const char *path);
const struct connman_provider *connman_service_get_provider(const char *path);
const struct connman_ethernet *connman_service_get_ethernet(const char *path);
gboolean connman_service_is_connected(const char *path);
int connman_service_select(const char *path);
void connman_service_deselect(void);
int connman_service_connect(const char *path);
int connman_service_disconnect(const char *path);
int connman_service_remove(const char *path);
int connman_service_set_autoconnectable(const char *path, gboolean enable);
int connman_service_set_ipv4_config(const char *path,
const struct connman_ipv4 *ipv4_config);
int connman_service_set_ipv6_config(const char *path,
const struct connman_ipv6 *ipv6_config);
int connman_service_set_proxy_config(const char *path,
const struct connman_proxy *proxy_config);
int connman_service_set_nameservers_config(const char *path,
const char *nameservers_config);
int connman_service_set_domains_config(const char *path,
const char *domains_config);
int connman_service_set_timeservers_config(const char *path,
const char *timeservers_config);
/************\
* Agent part *
\************/
int connman_agent_init(void);
void connman_agent_finalize(void);
int connman_agent_set_error_cb(agent_error_cb_f error_cb);
int connman_agent_set_browser_cb(agent_browser_cb_f browser_cb);
int connman_agent_set_input_cb(agent_input_cb_f input_cb);
int connman_agent_set_cancel_cb(agent_cancel_cb_f cancel_cb);
void connman_agent_reply_retry(void);
void connman_agent_reply_canceled(void);
void connman_agent_reply_launch_browser(void);
int connman_agent_reply_identity(const char *identity, const char *passphrase);
int connman_agent_reply_passphrase(const char *hidden_name,
const char *passphrase, gboolean wps, const char *wpspin);
int connman_agent_reply_login(const char *username, const char *password);
#endif /* __CONNMAN_INTERFACE_H__ */
|