1 /*
2 * Copyright (C) 2015-2020 Alibaba Group Holding Limited
3 */
4
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <netmgr.h>
8 #include <netmgr_wifi.h>
9 #include <aos/list.h>
10 #include <uservice/uservice.h>
11
12
13 #define KV_VAL_LENGTH 32
14
15 struct hdl_info;
16 typedef struct hdl_info {
17 slist_t next;
18 char* file_name;
19 netmgr_hdl_t hdl;
20 netmgr_type_t type;
21 } hdl_info_t;
22
23 #define TAG "netmgr_service"
24
25 static slist_t g_hdl_list_head;
26
27 int netmgr_wifi_set_ip_mode(netmgr_wifi_ip_mode_t mode);
28 netmgr_wifi_ip_mode_t netmgr_wifi_get_ip_mode(void);
29 int netmgr_wifi_get_ip_stat(char* ip_addr, char* mask, char* gw, char* dns_server);
30 void netmgr_wifi_auto_reconnect(int enable);
31 int netmgr_wifi_get_wifi_state();
32 int netmgr_wifi_set_static_ip_stat(const char* ip_addr, const char* mask, const char* gw, const char* dns_server);
33
event_service_init(utask_t * task)34 int event_service_init(utask_t *task)
35 {
36 return 0;
37 }
38
add_hdl_info(int fd,char * file_name,netmgr_type_t type)39 static int add_hdl_info(int fd, char* file_name, netmgr_type_t type)
40 {
41 hdl_info_t* cur;
42
43 printf("%s:%d\n", __func__, __LINE__);
44 cur = malloc(sizeof(hdl_info_t));
45 if(cur == NULL) {
46 return -1;
47 }
48 memset(cur, 0, sizeof(hdl_info_t));
49 printf("%s:%d\n", __func__, __LINE__);
50
51 cur->hdl = fd;
52 cur->file_name = strdup(file_name);
53 cur->type = type;
54
55 slist_add_tail(&cur->next, &g_hdl_list_head);
56
57 return 0;
58 }
59
del_hdl_by_name(char * file_name)60 static int del_hdl_by_name(char* file_name)
61 {
62 hdl_info_t* cur;
63 int found = 0;
64
65 slist_for_each_entry(&g_hdl_list_head, cur, hdl_info_t, next) {
66 if(strcmp(cur->file_name, file_name) == 0) {
67 found = 1;
68 break;
69 }
70 }
71
72 if(1 == found) {
73 free(cur->file_name);
74 slist_del(&cur->next, &g_hdl_list_head);
75 return 0;
76 } else {
77 return -1;
78 }
79 }
80
get_hdl_by_name(char * file_name)81 static netmgr_hdl_t get_hdl_by_name(char* file_name)
82 {
83 hdl_info_t* cur;
84 int found = 0;
85
86 slist_for_each_entry(&g_hdl_list_head, cur, hdl_info_t, next) {
87 if(strcmp(cur->file_name, file_name) == 0) {
88 found = 1;
89 break;
90 }
91 }
92
93 if(1 == found) {
94 return cur->hdl;
95 } else {
96 return -1;
97 }
98 }
99
100 /**
101 * @brief create & init the netmgr uservice
102 * @param [in] task
103 * @return
104 */
netmgr_service_init(utask_t * task)105 int netmgr_service_init(utask_t *task)
106 {
107 return 0;
108 }
109
110 /**
111 * @brief destroy & uninit the netmgr uservice
112 * @return
113 */
netmgr_service_deinit()114 void netmgr_service_deinit()
115 {
116
117 }
118
netmgr_add_dev(const char * name)119 int netmgr_add_dev(const char* name)
120 {
121 return 0;
122 }
123
netmgr_get_dev(const char * name)124 netmgr_hdl_t netmgr_get_dev(const char* name)
125 {
126 return get_hdl_by_name((char *)name);
127 }
128
netmgr_set_ifconfig(netmgr_hdl_t hdl,netmgr_ifconfig_info_t * info)129 int netmgr_set_ifconfig(netmgr_hdl_t hdl, netmgr_ifconfig_info_t* info)
130 {
131 return 0;
132 }
133
netmgr_get_ifconfig(netmgr_hdl_t hdl,netmgr_ifconfig_info_t * info)134 int netmgr_get_ifconfig(netmgr_hdl_t hdl, netmgr_ifconfig_info_t* info)
135 {
136 if(info != NULL) {
137 info->dhcp_en = true;
138 //return netmgr_wifi_get_ip_stat(info->ip_addr, info->mask, info->gw, info->dns_server);
139 info->ip_addr[0] = 1;
140 info->ip_addr[2] = 2;
141 return 0;
142 } else {
143 return -1;
144 }
145 return 0;
146 }
147
netmgr_set_auto_reconnect(netmgr_hdl_t hdl,bool enable)148 void netmgr_set_auto_reconnect(netmgr_hdl_t hdl, bool enable)
149 {
150
151 }
152
153
netmgr_get_config(netmgr_hdl_t hdl,netmgr_config_t * config)154 int netmgr_get_config(netmgr_hdl_t hdl, netmgr_config_t* config)
155 {
156
157 return 0;
158 }
159
netmgr_del_config(netmgr_hdl_t hdl,netmgr_del_config_t * config)160 int netmgr_del_config(netmgr_hdl_t hdl, netmgr_del_config_t* config)
161 {
162 return 0;
163 }
164
165
netmgr_get_state(netmgr_hdl_t hdl)166 netmgr_conn_state_t netmgr_get_state(netmgr_hdl_t hdl)
167 {
168 return 0;
169 }
170
netmgr_connect(netmgr_hdl_t hdl,netmgr_connect_params_t * params)171 int netmgr_connect(netmgr_hdl_t hdl, netmgr_connect_params_t* params)
172 {
173 aos_printf("wifi connect begin...\n");
174 aos_printf("ssid %s, password %s\n", params->params.wifi_params.ssid, params->params.wifi_params.pwd);
175 aos_msleep(5000);
176 aos_printf("wifi connected\n");
177 return 0;
178 }
179
netmgr_disconnect(netmgr_hdl_t hdl)180 int netmgr_disconnect(netmgr_hdl_t hdl)
181 {
182 return 0;
183 }
184
netmgr_save_config(netmgr_hdl_t hdl)185 int netmgr_save_config(netmgr_hdl_t hdl)
186 {
187 return 0;
188 }
189
netmgr_set_connect_params(netmgr_hdl_t hdl,netmgr_connect_params_t * params)190 int netmgr_set_connect_params(netmgr_hdl_t hdl, netmgr_connect_params_t* params)
191 {
192 //TODO
193 return 0;
194 }
195
netmgr_set_msg_cb(netmgr_hdl_t hdl,netmgr_msg_cb_t cb)196 int netmgr_set_msg_cb(netmgr_hdl_t hdl, netmgr_msg_cb_t cb)
197 {
198
199 return 0;
200 }
201
netmgr_del_msg_cb(netmgr_hdl_t hdl,netmgr_msg_cb_t cb)202 int netmgr_del_msg_cb(netmgr_hdl_t hdl, netmgr_msg_cb_t cb)
203 {
204
205 return 0;
206 }
207