blob: bd83821c07e919728fd80871eed1b1c792c66e31 (
plain)
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
|
/* Copyright 2016 ALPS ELECTRIC CO., LTD.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//#include <dlog.h>
#include <glib.h>
#include <stdlib.h>
#include <gio/gio.h>
#include <glib-object.h>
#ifdef __cplusplus
extern "C" {
#endif
/** Maximum Profile Count */
#define CONNMAN_MAX_BUFLEN 512
#define CONNMAN_STATE_STRLEN 16
#define CONNMAN_SERVICE "net.connman"
#define CONNMAN_MANAGER_INTERFACE CONNMAN_SERVICE ".Manager"
#define CONNMAN_TECHNOLOGY_INTERFACE CONNMAN_SERVICE ".Technology"
#define CONNMAN_SERVICE_INTERFACE CONNMAN_SERVICE ".Service"
#define CONNMAN_PROFILE_INTERFACE CONNMAN_SERVICE ".Profile"
#define CONNMAN_COUNTER_INTERFACE CONNMAN_SERVICE ".Counter"
#define CONNMAN_ERROR_INTERFACE CONNMAN_SERVICE ".Error"
#define CONNMAN_AGENT_INTERFACE CONNMAN_SERVICE ".Agent"
#define CONNMAN_MANAGER_PATH "/"
#define CONNMAN_PATH "/net/connman"
#define CONNMAN_TECHNOLOGY_PATH "/net/connman/technology/wifi"
/** ConnMan technology and profile prefixes for ConnMan 0.78 */
#define CONNMAN_WIFI_TECHNOLOGY_PREFIX CONNMAN_PATH "/technology/wifi"
#define CONNMAN_WIFI_SERVICE_PROFILE_PREFIX CONNMAN_PATH "/service/wifi_"
#define WIFI_ESSID_LEN 128
#define WIFI_MAX_WPSPIN_LEN 8
#define WIFI_BSSID_LEN 17
#define WIFI_MAX_PSK_PASSPHRASE_LEN 65
#define WIFI_MAX_WEP_KEY_LEN 26
#define AGENT_PATH "/net/connman/Agent"
#define AGENT_SERVICE "org.agent"
#define DBUS_REPLY_TIMEOUT (120 * 1000)
#define DBUS_REPLY_TIMEOUT_SHORT (10 * 1000)
struct gdbus_connection_data_s{
GDBusConnection *connection;
int conn_ref_count;
GCancellable *cancellable;
void *handle_libnetwork;
};
struct wifiStatus {
unsigned int state;
unsigned int connected;
};
struct security_profile{
char *sec_type;
char *enc_type;
char *wepKey;
char *pskKey;
unsigned int PassphraseRequired;
unsigned int wps_support;
};
struct wifi_net{
char *method;
char *IPaddress;
char *netmask;
};
struct wifi_profile_info{
char *ESSID;
char *NetworkPath;
char *state;
unsigned int Strength;
struct security_profile Security;
struct wifi_net wifiNetwork;
};
//typedef void(*callback)(void);
typedef void(*callback)(int password_rejected_flag);
void register_callback(callback ptr);
int extract_values(GVariantIter *content, struct wifi_profile_info* wifiProfile);
int wifi_state(struct wifiStatus *status);
GError* do_wifiActivate();
GError* do_wifiDeactivate();
GError* do_wifiScan();
GError* do_displayScan(GSList **wifi_list);
GError* do_connectNetwork(gchar *object);
GError* do_disconnectNetwork(gchar *object);
GError* create_agent(GDBusConnection *connection);
GError* stop_agent(GDBusConnection *connection);
void registerPasskey(gchar *object);
GError* sendPasskey(gchar *object);
GError* do_initialize();
GError* do_initialize();
|