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