2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 #include <vconf/vconf.h>
21 #include "net_connection_private.h"
24 static connection_cellular_service_type_e __profile_convert_to_connection_cellular_service_type(net_service_type_t svc_type)
27 case NET_SERVICE_INTERNET:
28 return CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET;
30 return CONNECTION_CELLULAR_SERVICE_TYPE_MMS;
32 return CONNECTION_CELLULAR_SERVICE_TYPE_WAP;
33 case NET_SERVICE_PREPAID_INTERNET:
34 return CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET;
35 case NET_SERVICE_PREPAID_MMS:
36 return CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS;
38 return CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN;
42 static net_dev_info_t* __profile_get_net_info(net_profile_info_t *profile_info)
44 switch (profile_info->profile_type) {
45 case NET_DEVICE_CELLULAR:
46 return &profile_info->ProfileInfo.Pdp.net_info;
48 return &profile_info->ProfileInfo.Wlan.net_info;
49 case NET_DEVICE_ETHERNET:
50 return &profile_info->ProfileInfo.Ethernet.net_info;
51 case NET_DEVICE_DEFAULT:
53 case NET_DEVICE_UNKNOWN:
60 static connection_profile_state_e __profile_convert_to_cp_state(net_state_type_t state)
62 connection_profile_state_e cp_state;
65 case NET_STATE_TYPE_ONLINE:
66 case NET_STATE_TYPE_READY:
67 cp_state = CONNECTION_PROFILE_STATE_CONNECTED;
69 case NET_STATE_TYPE_IDLE:
70 case NET_STATE_TYPE_FAILURE:
71 case NET_STATE_TYPE_DISCONNECT:
72 cp_state = CONNECTION_PROFILE_STATE_DISCONNECTED;
74 case NET_STATE_TYPE_ASSOCIATION:
75 cp_state = CONNECTION_PROFILE_STATE_ASSOCIATION;
77 case NET_STATE_TYPE_CONFIGURATION:
78 cp_state = CONNECTION_PROFILE_STATE_CONFIGURATION;
87 static char* __profile_convert_ip_to_string(net_addr_t *ip_addr)
89 unsigned char *ipaddr = (unsigned char *)&ip_addr->Data.Ipv4.s_addr;
91 char *ipstr = g_try_malloc0(16);
95 snprintf(ipstr, 16, "%d.%d.%d.%d", ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]);
100 net_service_type_t _connection_profile_convert_to_libnet_cellular_service_type(connection_cellular_service_type_e svc_type)
103 case CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET:
104 return NET_SERVICE_INTERNET;
105 case CONNECTION_CELLULAR_SERVICE_TYPE_MMS:
106 return NET_SERVICE_MMS;
107 case CONNECTION_CELLULAR_SERVICE_TYPE_WAP:
108 return NET_SERVICE_WAP;
109 case CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET:
110 return NET_SERVICE_PREPAID_INTERNET;
111 case CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS:
112 return NET_SERVICE_PREPAID_MMS;
114 return NET_SERVICE_UNKNOWN;
118 net_state_type_t _connection_profile_convert_to_net_state(connection_profile_state_e state)
120 net_state_type_t libnet_state = NET_STATE_TYPE_UNKNOWN;
123 case CONNECTION_PROFILE_STATE_CONNECTED:
124 libnet_state = NET_STATE_TYPE_ONLINE;
126 case CONNECTION_PROFILE_STATE_DISCONNECTED:
127 libnet_state = NET_STATE_TYPE_IDLE;
129 case CONNECTION_PROFILE_STATE_ASSOCIATION:
130 libnet_state = NET_STATE_TYPE_ASSOCIATION;
132 case CONNECTION_PROFILE_STATE_CONFIGURATION:
133 libnet_state = NET_STATE_TYPE_CONFIGURATION;
140 static void __profile_init_cellular_profile(net_profile_info_t *profile_info)
142 profile_info->profile_type = NET_DEVICE_CELLULAR;
143 profile_info->ProfileState = NET_STATE_TYPE_IDLE;
144 profile_info->ProfileInfo.Pdp.net_info.IpConfigType = NET_IP_CONFIG_TYPE_OFF;
145 profile_info->ProfileInfo.Pdp.net_info.ProxyMethod = NET_PROXY_TYPE_DIRECT;
148 static void __profile_init_wifi_profile(net_profile_info_t *profile_info)
150 profile_info->profile_type = NET_DEVICE_WIFI;
151 profile_info->ProfileState = NET_STATE_TYPE_IDLE;
152 profile_info->ProfileInfo.Wlan.net_info.IpConfigType = NET_IP_CONFIG_TYPE_OFF;
153 profile_info->ProfileInfo.Wlan.net_info.ProxyMethod = NET_PROXY_TYPE_DIRECT;
154 profile_info->ProfileInfo.Wlan.wlan_mode = NETPM_WLAN_CONNMODE_AUTO;
155 profile_info->ProfileInfo.Wlan.security_info.sec_mode = WLAN_SEC_MODE_NONE;
156 profile_info->ProfileInfo.Wlan.security_info.enc_mode = WLAN_ENC_MODE_NONE;
159 static void __profile_init_ethernet_profile(net_profile_info_t *profile_info)
161 profile_info->profile_type = NET_DEVICE_ETHERNET;
162 profile_info->ProfileState = NET_STATE_TYPE_IDLE;
163 profile_info->ProfileInfo.Ethernet.net_info.IpConfigType = NET_IP_CONFIG_TYPE_OFF;
164 profile_info->ProfileInfo.Ethernet.net_info.ProxyMethod = NET_PROXY_TYPE_DIRECT;
167 /* Connection profile module *********************************************************************/
169 int connection_profile_create(connection_profile_type_e type, connection_profile_h* profile)
171 if ((type != CONNECTION_PROFILE_TYPE_CELLULAR &&
172 type != CONNECTION_PROFILE_TYPE_WIFI &&
173 type != CONNECTION_PROFILE_TYPE_ETHERNET) || profile == NULL) {
174 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
175 return CONNECTION_ERROR_INVALID_PARAMETER;
178 net_profile_info_t *profile_info = g_try_malloc0(sizeof(net_profile_info_t));
179 if (profile_info == NULL)
180 return CONNECTION_ERROR_OUT_OF_MEMORY;
183 case CONNECTION_PROFILE_TYPE_CELLULAR:
184 __profile_init_cellular_profile(profile_info);
186 case CONNECTION_PROFILE_TYPE_WIFI:
187 __profile_init_wifi_profile(profile_info);
189 case CONNECTION_PROFILE_TYPE_ETHERNET:
190 __profile_init_ethernet_profile(profile_info);
194 *profile = (connection_profile_h)profile_info;
195 _connection_libnet_add_to_profile_list(*profile);
197 return CONNECTION_ERROR_NONE;
200 int connection_profile_destroy(connection_profile_h profile)
202 if (!(_connection_libnet_check_profile_validity(profile))) {
203 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
204 return CONNECTION_ERROR_INVALID_PARAMETER;
207 _connection_libnet_remove_from_profile_list(profile);
209 return CONNECTION_ERROR_NONE;
212 int connection_profile_clone(connection_profile_h* cloned_profile, connection_profile_h origin_profile)
214 if (!(_connection_libnet_check_profile_validity(origin_profile)) || cloned_profile == NULL) {
215 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
216 return CONNECTION_ERROR_INVALID_PARAMETER;
219 *cloned_profile = g_try_malloc0(sizeof(net_profile_info_t));
220 if (*cloned_profile == NULL)
221 return CONNECTION_ERROR_OUT_OF_MEMORY;
223 memcpy(*cloned_profile, origin_profile, sizeof(net_profile_info_t));
224 _connection_libnet_add_to_profile_list(*cloned_profile);
226 return CONNECTION_ERROR_NONE;
229 int connection_profile_get_name(connection_profile_h profile, char** profile_name)
231 if (!(_connection_libnet_check_profile_validity(profile)) || profile_name == NULL) {
232 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
233 return CONNECTION_ERROR_INVALID_PARAMETER;
236 net_profile_info_t *profile_info = profile;
238 *profile_name = g_strdup(profile_info->ProfileName);
239 if (*profile_name == NULL)
240 return CONNECTION_ERROR_OUT_OF_MEMORY;
242 return CONNECTION_ERROR_NONE;
245 int connection_profile_get_type(connection_profile_h profile, connection_profile_type_e* type)
247 if (!(_connection_libnet_check_profile_validity(profile)) || type == NULL) {
248 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
249 return CONNECTION_ERROR_INVALID_PARAMETER;
252 net_profile_info_t *profile_info = profile;
254 switch (profile_info->profile_type) {
255 case NET_DEVICE_CELLULAR:
256 *type = CONNECTION_PROFILE_TYPE_CELLULAR;
258 case NET_DEVICE_WIFI:
259 *type = CONNECTION_PROFILE_TYPE_WIFI;
261 case NET_DEVICE_ETHERNET:
262 *type = CONNECTION_PROFILE_TYPE_ETHERNET;
265 CONNECTION_LOG(CONNECTION_ERROR, "Invalid profile type\n");
266 return CONNECTION_ERROR_OPERATION_FAILED;
269 return CONNECTION_ERROR_NONE;
272 int connection_profile_get_network_interface_name(connection_profile_h profile, char** interface_name)
274 if (!(_connection_libnet_check_profile_validity(profile)) || interface_name == NULL) {
275 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
276 return CONNECTION_ERROR_INVALID_PARAMETER;
279 net_profile_info_t *profile_info = profile;
280 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
281 if (net_info == NULL)
282 return CONNECTION_ERROR_INVALID_PARAMETER;
284 *interface_name = g_strdup(net_info->DevName);
285 if (*interface_name == NULL)
286 return CONNECTION_ERROR_OUT_OF_MEMORY;
288 return CONNECTION_ERROR_NONE;
291 int connection_profile_get_state(connection_profile_h profile, connection_profile_state_e* state)
293 if (!(_connection_libnet_check_profile_validity(profile)) || state == NULL) {
294 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
295 return CONNECTION_ERROR_INVALID_PARAMETER;
298 net_profile_info_t *profile_info = profile;
299 *state = __profile_convert_to_cp_state(profile_info->ProfileState);
301 return CONNECTION_ERROR_OPERATION_FAILED;
303 return CONNECTION_ERROR_NONE;
306 int connection_profile_get_ip_config_type(connection_profile_h profile, connection_address_family_e address_family, connection_ip_config_type_e* type)
308 if (!(_connection_libnet_check_profile_validity(profile)) ||
309 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
310 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
312 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
313 return CONNECTION_ERROR_INVALID_PARAMETER;
316 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
317 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
319 net_profile_info_t *profile_info = profile;
320 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
321 if (net_info == NULL)
322 return CONNECTION_ERROR_OPERATION_FAILED;
324 switch (net_info->IpConfigType) {
325 case NET_IP_CONFIG_TYPE_STATIC:
326 *type = CONNECTION_IP_CONFIG_TYPE_STATIC;
328 case NET_IP_CONFIG_TYPE_DYNAMIC:
329 *type = CONNECTION_IP_CONFIG_TYPE_DYNAMIC;
331 case NET_IP_CONFIG_TYPE_AUTO_IP:
332 *type = CONNECTION_IP_CONFIG_TYPE_AUTO;
334 case NET_IP_CONFIG_TYPE_FIXED:
335 *type = CONNECTION_IP_CONFIG_TYPE_FIXED;
337 case NET_IP_CONFIG_TYPE_OFF:
338 *type = CONNECTION_IP_CONFIG_TYPE_NONE;
341 return CONNECTION_ERROR_OPERATION_FAILED;
344 return CONNECTION_ERROR_NONE;
347 int connection_profile_get_ip_address(connection_profile_h profile,
348 connection_address_family_e address_family, char** ip_address)
350 if (!(_connection_libnet_check_profile_validity(profile)) ||
351 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
352 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
353 ip_address == NULL) {
354 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
355 return CONNECTION_ERROR_INVALID_PARAMETER;
358 net_profile_info_t *profile_info = profile;
359 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
360 if (net_info == NULL)
361 return CONNECTION_ERROR_OPERATION_FAILED;
363 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
364 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
366 *ip_address = __profile_convert_ip_to_string(&net_info->IpAddr);
367 if (*ip_address == NULL)
368 return CONNECTION_ERROR_OUT_OF_MEMORY;
370 return CONNECTION_ERROR_NONE;
373 int connection_profile_get_subnet_mask(connection_profile_h profile,
374 connection_address_family_e address_family, char** subnet_mask)
376 if (!(_connection_libnet_check_profile_validity(profile)) ||
377 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
378 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
379 subnet_mask == NULL) {
380 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
381 return CONNECTION_ERROR_INVALID_PARAMETER;
384 net_profile_info_t *profile_info = profile;
385 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
386 if (net_info == NULL)
387 return CONNECTION_ERROR_OPERATION_FAILED;
389 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
390 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
392 *subnet_mask = __profile_convert_ip_to_string(&net_info->SubnetMask);
393 if (*subnet_mask == NULL)
394 return CONNECTION_ERROR_OUT_OF_MEMORY;
396 return CONNECTION_ERROR_NONE;
399 int connection_profile_get_gateway_address(connection_profile_h profile,
400 connection_address_family_e address_family, char** gateway_address)
402 if (!(_connection_libnet_check_profile_validity(profile)) ||
403 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
404 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
405 gateway_address == NULL) {
406 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
407 return CONNECTION_ERROR_INVALID_PARAMETER;
410 net_profile_info_t *profile_info = profile;
411 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
412 if (net_info == NULL)
413 return CONNECTION_ERROR_OPERATION_FAILED;
415 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
416 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
418 *gateway_address = __profile_convert_ip_to_string(&net_info->GatewayAddr);
419 if (*gateway_address == NULL)
420 return CONNECTION_ERROR_OUT_OF_MEMORY;
422 return CONNECTION_ERROR_NONE;
425 int connection_profile_get_dns_address(connection_profile_h profile, int order,
426 connection_address_family_e address_family, char** dns_address)
428 if (!(_connection_libnet_check_profile_validity(profile)) ||
429 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
430 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
431 dns_address == NULL ||
433 order > NET_DNS_ADDR_MAX) {
434 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
435 return CONNECTION_ERROR_INVALID_PARAMETER;
438 net_profile_info_t *profile_info = profile;
439 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
440 if (net_info == NULL)
441 return CONNECTION_ERROR_OPERATION_FAILED;
443 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
444 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
446 *dns_address = __profile_convert_ip_to_string(&net_info->DnsAddr[order-1]);
447 if (*dns_address == NULL)
448 return CONNECTION_ERROR_OUT_OF_MEMORY;
450 return CONNECTION_ERROR_NONE;
453 int connection_profile_get_proxy_type(connection_profile_h profile, connection_proxy_type_e* type)
455 if (!(_connection_libnet_check_profile_validity(profile)) || type == NULL) {
456 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
457 return CONNECTION_ERROR_INVALID_PARAMETER;
460 net_profile_info_t *profile_info = profile;
461 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
462 if (net_info == NULL)
463 return CONNECTION_ERROR_OPERATION_FAILED;
465 switch (net_info->ProxyMethod) {
466 case NET_PROXY_TYPE_DIRECT:
467 *type = CONNECTION_PROXY_TYPE_DIRECT;
469 case NET_PROXY_TYPE_AUTO:
470 *type = CONNECTION_PROXY_TYPE_AUTO;
472 case NET_PROXY_TYPE_MANUAL:
473 *type = CONNECTION_PROXY_TYPE_MANUAL;
475 case NET_PROXY_TYPE_UNKNOWN:
477 return CONNECTION_ERROR_OPERATION_FAILED;
480 return CONNECTION_ERROR_NONE;
483 int connection_profile_get_proxy_address(connection_profile_h profile,
484 connection_address_family_e address_family, char** proxy_address)
486 if (!(_connection_libnet_check_profile_validity(profile)) ||
487 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
488 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
489 proxy_address == NULL) {
490 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
491 return CONNECTION_ERROR_INVALID_PARAMETER;
494 net_profile_info_t *profile_info = profile;
495 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
496 if (net_info == NULL)
497 return CONNECTION_ERROR_OPERATION_FAILED;
499 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
500 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
502 *proxy_address = g_strdup(net_info->ProxyAddr);
503 if (*proxy_address == NULL)
504 return CONNECTION_ERROR_OUT_OF_MEMORY;
506 return CONNECTION_ERROR_NONE;
509 int connection_profile_set_ip_config_type(connection_profile_h profile, connection_address_family_e address_family, connection_ip_config_type_e type)
511 if (!(_connection_libnet_check_profile_validity(profile)) ||
512 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
513 address_family != CONNECTION_ADDRESS_FAMILY_IPV6)) {
514 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
515 return CONNECTION_ERROR_INVALID_PARAMETER;
518 net_profile_info_t *profile_info = profile;
519 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
520 if (net_info == NULL)
521 return CONNECTION_ERROR_OPERATION_FAILED;
523 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
524 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
527 case CONNECTION_IP_CONFIG_TYPE_STATIC:
528 net_info->IpConfigType = NET_IP_CONFIG_TYPE_STATIC;
530 case CONNECTION_IP_CONFIG_TYPE_DYNAMIC:
531 net_info->IpConfigType = NET_IP_CONFIG_TYPE_DYNAMIC;
533 case CONNECTION_IP_CONFIG_TYPE_AUTO:
534 net_info->IpConfigType = NET_IP_CONFIG_TYPE_AUTO_IP;
536 case CONNECTION_IP_CONFIG_TYPE_FIXED:
537 net_info->IpConfigType = NET_IP_CONFIG_TYPE_FIXED;
539 case CONNECTION_IP_CONFIG_TYPE_NONE:
540 net_info->IpConfigType = NET_IP_CONFIG_TYPE_OFF;
543 return CONNECTION_ERROR_INVALID_PARAMETER;
546 return CONNECTION_ERROR_NONE;
549 int connection_profile_set_ip_address(connection_profile_h profile,
550 connection_address_family_e address_family, const char* ip_address)
552 if (!(_connection_libnet_check_profile_validity(profile)) ||
553 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
554 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
555 ip_address == NULL) {
556 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
557 return CONNECTION_ERROR_INVALID_PARAMETER;
560 net_profile_info_t *profile_info = profile;
561 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
562 if (net_info == NULL)
563 return CONNECTION_ERROR_OPERATION_FAILED;
565 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
566 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
568 inet_aton(ip_address, &(net_info->IpAddr.Data.Ipv4));
570 return CONNECTION_ERROR_NONE;
573 int connection_profile_set_subnet_mask(connection_profile_h profile,
574 connection_address_family_e address_family, const char* subnet_mask)
576 if (!(_connection_libnet_check_profile_validity(profile)) ||
577 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
578 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
579 subnet_mask == NULL) {
580 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
581 return CONNECTION_ERROR_INVALID_PARAMETER;
584 net_profile_info_t *profile_info = profile;
585 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
586 if (net_info == NULL)
587 return CONNECTION_ERROR_OPERATION_FAILED;
589 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
590 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
592 inet_aton(subnet_mask, &(net_info->SubnetMask.Data.Ipv4));
594 return CONNECTION_ERROR_NONE;
597 int connection_profile_set_gateway_address(connection_profile_h profile,
598 connection_address_family_e address_family, const char* gateway_address)
600 if (!(_connection_libnet_check_profile_validity(profile)) ||
601 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
602 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
603 gateway_address == NULL) {
604 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
605 return CONNECTION_ERROR_INVALID_PARAMETER;
608 net_profile_info_t *profile_info = profile;
609 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
610 if (net_info == NULL)
611 return CONNECTION_ERROR_OPERATION_FAILED;
613 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
614 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
616 inet_aton(gateway_address, &(net_info->GatewayAddr.Data.Ipv4));
618 return CONNECTION_ERROR_NONE;
621 int connection_profile_set_dns_address(connection_profile_h profile, int order,
622 connection_address_family_e address_family, const char* dns_address)
624 if (!(_connection_libnet_check_profile_validity(profile)) ||
625 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
626 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
627 dns_address == NULL ||
629 order > NET_DNS_ADDR_MAX) {
630 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
631 return CONNECTION_ERROR_INVALID_PARAMETER;
634 net_profile_info_t *profile_info = profile;
635 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
636 if (net_info == NULL)
637 return CONNECTION_ERROR_OPERATION_FAILED;
639 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
640 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
642 inet_aton(dns_address, &(net_info->DnsAddr[order-1].Data.Ipv4));
644 return CONNECTION_ERROR_NONE;
647 int connection_profile_set_proxy_type(connection_profile_h profile, connection_proxy_type_e type)
649 if (!(_connection_libnet_check_profile_validity(profile))) {
650 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
651 return CONNECTION_ERROR_INVALID_PARAMETER;
654 net_profile_info_t *profile_info = profile;
655 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
656 if (net_info == NULL)
657 return CONNECTION_ERROR_OPERATION_FAILED;
660 case CONNECTION_PROXY_TYPE_DIRECT:
661 net_info->ProxyMethod = NET_PROXY_TYPE_DIRECT;
663 case CONNECTION_PROXY_TYPE_AUTO:
664 net_info->ProxyMethod = NET_PROXY_TYPE_AUTO;
666 case CONNECTION_PROXY_TYPE_MANUAL:
667 net_info->ProxyMethod = NET_PROXY_TYPE_MANUAL;
670 return CONNECTION_ERROR_INVALID_PARAMETER;
673 return CONNECTION_ERROR_NONE;
676 int connection_profile_set_proxy_address(connection_profile_h profile,
677 connection_address_family_e address_family, const char* proxy_address)
679 if (!(_connection_libnet_check_profile_validity(profile)) ||
680 (address_family != CONNECTION_ADDRESS_FAMILY_IPV4 &&
681 address_family != CONNECTION_ADDRESS_FAMILY_IPV6) ||
682 proxy_address == NULL) {
683 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
684 return CONNECTION_ERROR_INVALID_PARAMETER;
687 net_profile_info_t *profile_info = profile;
688 net_dev_info_t *net_info = __profile_get_net_info(profile_info);
689 if (net_info == NULL)
690 return CONNECTION_ERROR_OPERATION_FAILED;
692 if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
693 return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
695 g_strlcpy(net_info->ProxyAddr, proxy_address, NET_PROXY_LEN_MAX);
697 return CONNECTION_ERROR_NONE;
700 int connection_profile_set_state_changed_cb(connection_profile_h profile,
701 connection_profile_state_changed_cb callback, void* user_data)
703 if (!(_connection_libnet_check_profile_validity(profile)) || callback == NULL) {
704 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
705 return CONNECTION_ERROR_INVALID_PARAMETER;
708 if (_connection_libnet_add_to_profile_cb_list(profile, callback, user_data))
709 return CONNECTION_ERROR_NONE;
711 return CONNECTION_ERROR_OPERATION_FAILED;
714 int connection_profile_unset_state_changed_cb(connection_profile_h profile)
716 if (!(_connection_libnet_check_profile_validity(profile))) {
717 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
718 return CONNECTION_ERROR_INVALID_PARAMETER;
721 _connection_libnet_remove_from_profile_cb_list(profile);
723 return CONNECTION_ERROR_NONE;
727 /* Wi-Fi profile module **************************************************************************/
729 int connection_profile_get_wifi_essid(connection_profile_h profile, char** essid)
731 if (!(_connection_libnet_check_profile_validity(profile)) || essid == NULL) {
732 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
733 return CONNECTION_ERROR_INVALID_PARAMETER;
736 net_profile_info_t *profile_info = profile;
738 if (profile_info->profile_type != NET_DEVICE_WIFI)
739 return CONNECTION_ERROR_INVALID_PARAMETER;
741 *essid = g_strdup(profile_info->ProfileInfo.Wlan.essid);
743 return CONNECTION_ERROR_OUT_OF_MEMORY;
745 return CONNECTION_ERROR_NONE;
748 int connection_profile_get_wifi_bssid(connection_profile_h profile, char** bssid)
750 if (!(_connection_libnet_check_profile_validity(profile)) || bssid == NULL) {
751 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
752 return CONNECTION_ERROR_INVALID_PARAMETER;
755 net_profile_info_t *profile_info = profile;
757 if (profile_info->profile_type != NET_DEVICE_WIFI)
758 return CONNECTION_ERROR_INVALID_PARAMETER;
760 *bssid = g_strdup(profile_info->ProfileInfo.Wlan.bssid);
762 return CONNECTION_ERROR_OUT_OF_MEMORY;
764 return CONNECTION_ERROR_NONE;
767 int connection_profile_get_wifi_rssi(connection_profile_h profile, int* rssi)
769 if (!(_connection_libnet_check_profile_validity(profile)) || rssi == NULL) {
770 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
771 return CONNECTION_ERROR_INVALID_PARAMETER;
774 net_profile_info_t *profile_info = profile;
776 if (profile_info->profile_type != NET_DEVICE_WIFI)
777 return CONNECTION_ERROR_INVALID_PARAMETER;
779 *rssi = (int)profile_info->ProfileInfo.Wlan.Strength;
781 return CONNECTION_ERROR_NONE;
784 int connection_profile_get_wifi_frequency(connection_profile_h profile, int* frequency)
786 if (!(_connection_libnet_check_profile_validity(profile)) || frequency == NULL) {
787 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
788 return CONNECTION_ERROR_INVALID_PARAMETER;
791 net_profile_info_t *profile_info = profile;
793 if (profile_info->profile_type != NET_DEVICE_WIFI)
794 return CONNECTION_ERROR_INVALID_PARAMETER;
796 *frequency = (int)profile_info->ProfileInfo.Wlan.frequency;
798 return CONNECTION_ERROR_NONE;
801 int connection_profile_get_wifi_max_speed(connection_profile_h profile, int* max_speed)
803 if (!(_connection_libnet_check_profile_validity(profile)) || max_speed == NULL) {
804 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
805 return CONNECTION_ERROR_INVALID_PARAMETER;
808 net_profile_info_t *profile_info = profile;
810 if (profile_info->profile_type != NET_DEVICE_WIFI)
811 return CONNECTION_ERROR_INVALID_PARAMETER;
813 *max_speed = (int)profile_info->ProfileInfo.Wlan.max_rate;
815 return CONNECTION_ERROR_NONE;
818 int connection_profile_get_wifi_security_type(connection_profile_h profile, connection_wifi_security_type_e* type)
820 if (!(_connection_libnet_check_profile_validity(profile)) || type == NULL) {
821 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
822 return CONNECTION_ERROR_INVALID_PARAMETER;
825 net_profile_info_t *profile_info = profile;
827 if (profile_info->profile_type != NET_DEVICE_WIFI)
828 return CONNECTION_ERROR_INVALID_PARAMETER;
830 switch (profile_info->ProfileInfo.Wlan.security_info.sec_mode) {
831 case WLAN_SEC_MODE_NONE:
832 *type = CONNECTION_WIFI_SECURITY_TYPE_NONE;
834 case WLAN_SEC_MODE_WEP:
835 *type = CONNECTION_WIFI_SECURITY_TYPE_WEP;
837 case WLAN_SEC_MODE_IEEE8021X:
838 *type = CONNECTION_WIFI_SECURITY_TYPE_EAP;
840 case WLAN_SEC_MODE_WPA_PSK:
841 *type = CONNECTION_WIFI_SECURITY_TYPE_WPA_PSK;
843 case WLAN_SEC_MODE_WPA2_PSK:
844 *type = CONNECTION_WIFI_SECURITY_TYPE_WPA2_PSK;
847 return CONNECTION_ERROR_OPERATION_FAILED;
850 return CONNECTION_ERROR_NONE;
853 int connection_profile_get_wifi_encryption_type(connection_profile_h profile, connection_wifi_encryption_type_e* type)
855 if (!(_connection_libnet_check_profile_validity(profile)) || type == NULL) {
856 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
857 return CONNECTION_ERROR_INVALID_PARAMETER;
860 net_profile_info_t *profile_info = profile;
862 if (profile_info->profile_type != NET_DEVICE_WIFI)
863 return CONNECTION_ERROR_INVALID_PARAMETER;
865 switch (profile_info->ProfileInfo.Wlan.security_info.enc_mode) {
866 case WLAN_ENC_MODE_NONE:
867 *type = CONNECTION_WIFI_ENCRYPTION_TYPE_NONE;
869 case WLAN_ENC_MODE_WEP:
870 *type = CONNECTION_WIFI_ENCRYPTION_TYPE_WEP;
872 case WLAN_ENC_MODE_TKIP:
873 *type = CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP;
875 case WLAN_ENC_MODE_AES:
876 *type = CONNECTION_WIFI_ENCRYPTION_TYPE_AES;
878 case WLAN_ENC_MODE_TKIP_AES_MIXED:
879 *type = CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED;
882 return CONNECTION_ERROR_OPERATION_FAILED;
885 return CONNECTION_ERROR_NONE;
888 int connection_profile_is_wifi_passphrase_required(connection_profile_h profile, bool* required)
890 if (!(_connection_libnet_check_profile_validity(profile)) || required == NULL) {
891 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
892 return CONNECTION_ERROR_INVALID_PARAMETER;
895 net_profile_info_t *profile_info = profile;
897 if (profile_info->profile_type != NET_DEVICE_WIFI)
898 return CONNECTION_ERROR_INVALID_PARAMETER;
900 if (profile_info->ProfileInfo.Wlan.PassphraseRequired)
905 return CONNECTION_ERROR_NONE;
908 int connection_profile_set_wifi_passphrase(connection_profile_h profile, const char* passphrase)
910 if (!(_connection_libnet_check_profile_validity(profile)) || passphrase == NULL) {
911 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
912 return CONNECTION_ERROR_INVALID_PARAMETER;
915 net_profile_info_t *profile_info = profile;
917 if (profile_info->profile_type != NET_DEVICE_WIFI)
918 return CONNECTION_ERROR_INVALID_PARAMETER;
920 g_strlcpy(profile_info->ProfileInfo.Wlan.security_info.authentication.psk.pskKey,
921 passphrase, NETPM_WLAN_MAX_PSK_PASSPHRASE_LEN);
923 return CONNECTION_ERROR_NONE;
926 int connection_profile_is_wifi_wps_supported(connection_profile_h profile, bool* supported)
928 if (!(_connection_libnet_check_profile_validity(profile)) || supported == NULL) {
929 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
930 return CONNECTION_ERROR_INVALID_PARAMETER;
933 net_profile_info_t *profile_info = profile;
935 if (profile_info->profile_type != NET_DEVICE_WIFI)
936 return CONNECTION_ERROR_INVALID_PARAMETER;
938 if (profile_info->ProfileInfo.Wlan.security_info.wps_support)
943 return CONNECTION_ERROR_NONE;
947 /* Cellular profile module ***********************************************************************/
949 int connection_profile_get_cellular_network_type(connection_profile_h profile, connection_cellular_network_type_e* type)
951 if (!(_connection_libnet_check_profile_validity(profile)) || type == NULL) {
952 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
953 return CONNECTION_ERROR_INVALID_PARAMETER;
956 net_profile_info_t *profile_info = profile;
958 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
959 return CONNECTION_ERROR_INVALID_PARAMETER;
961 switch (profile_info->ProfileInfo.Pdp.ProtocolType) {
962 case NET_PDP_TYPE_NONE:
963 *type = CONNECTION_CELLULAR_NETWORK_TYPE_UNKNOWN;
965 case NET_PDP_TYPE_GPRS:
966 *type = CONNECTION_CELLULAR_NETWORK_TYPE_GPRS;
968 case NET_PDP_TYPE_EDGE:
969 *type = CONNECTION_CELLULAR_NETWORK_TYPE_EDGE;
971 case NET_PDP_TYPE_UMTS:
972 *type = CONNECTION_CELLULAR_NETWORK_TYPE_UMTS;
975 return CONNECTION_ERROR_OPERATION_FAILED;
978 return CONNECTION_ERROR_NONE;
981 int connection_profile_get_cellular_service_type(connection_profile_h profile,
982 connection_cellular_service_type_e* type)
984 if (!(_connection_libnet_check_profile_validity(profile)) || type == NULL) {
985 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
986 return CONNECTION_ERROR_INVALID_PARAMETER;
989 net_profile_info_t *profile_info = profile;
991 if (profile_info->profile_type != NET_DEVICE_CELLULAR) {
992 CONNECTION_LOG(CONNECTION_ERROR, "Invalid profile type Passed\n");
993 return CONNECTION_ERROR_INVALID_PARAMETER;
996 *type = __profile_convert_to_connection_cellular_service_type(profile_info->ProfileInfo.Pdp.ServiceType);
998 if (*type == CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN) {
999 CONNECTION_LOG(CONNECTION_ERROR, "Invalid service type Passed\n");
1000 return CONNECTION_ERROR_OPERATION_FAILED;
1003 return CONNECTION_ERROR_NONE;
1006 int connection_profile_get_cellular_apn(connection_profile_h profile, char** apn)
1008 if (!(_connection_libnet_check_profile_validity(profile)) || apn == NULL) {
1009 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
1010 return CONNECTION_ERROR_INVALID_PARAMETER;
1013 net_profile_info_t *profile_info = profile;
1015 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
1016 return CONNECTION_ERROR_INVALID_PARAMETER;
1018 *apn = g_strdup(profile_info->ProfileInfo.Pdp.Apn);
1020 return CONNECTION_ERROR_OUT_OF_MEMORY;
1022 return CONNECTION_ERROR_NONE;
1025 int connection_profile_get_cellular_auth_info(connection_profile_h profile,
1026 connection_cellular_auth_type_e* type, char** user_name, char** password)
1028 if (!(_connection_libnet_check_profile_validity(profile)) ||
1029 type == NULL || user_name == NULL || password == NULL) {
1030 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
1031 return CONNECTION_ERROR_INVALID_PARAMETER;
1034 net_profile_info_t *profile_info = profile;
1036 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
1037 return CONNECTION_ERROR_INVALID_PARAMETER;
1039 switch (profile_info->ProfileInfo.Pdp.AuthInfo.AuthType) {
1040 case NET_PDP_AUTH_NONE:
1041 *type = CONNECTION_CELLULAR_AUTH_TYPE_NONE;
1043 case NET_PDP_AUTH_PAP:
1044 *type = CONNECTION_CELLULAR_AUTH_TYPE_PAP;
1046 case NET_PDP_AUTH_CHAP:
1047 *type = CONNECTION_CELLULAR_AUTH_TYPE_CHAP;
1050 return CONNECTION_ERROR_OPERATION_FAILED;
1053 *user_name = g_strdup(profile_info->ProfileInfo.Pdp.AuthInfo.UserName);
1054 if (*user_name == NULL)
1055 return CONNECTION_ERROR_OUT_OF_MEMORY;
1057 *password = g_strdup(profile_info->ProfileInfo.Pdp.AuthInfo.Password);
1058 if (*password == NULL) {
1060 return CONNECTION_ERROR_OUT_OF_MEMORY;
1063 return CONNECTION_ERROR_NONE;
1066 int connection_profile_get_cellular_home_url(connection_profile_h profile, char** home_url)
1068 if (!(_connection_libnet_check_profile_validity(profile)) || home_url == NULL) {
1069 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
1070 return CONNECTION_ERROR_INVALID_PARAMETER;
1073 net_profile_info_t *profile_info = profile;
1075 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
1076 return CONNECTION_ERROR_INVALID_PARAMETER;
1078 *home_url = g_strdup(profile_info->ProfileInfo.Pdp.HomeURL);
1079 if (*home_url == NULL)
1080 return CONNECTION_ERROR_OUT_OF_MEMORY;
1082 return CONNECTION_ERROR_NONE;
1085 int connection_profile_is_cellular_roaming(connection_profile_h profile, bool* is_roaming)
1087 if (!(_connection_libnet_check_profile_validity(profile)) || is_roaming == NULL) {
1088 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
1089 return CONNECTION_ERROR_INVALID_PARAMETER;
1092 net_profile_info_t *profile_info = profile;
1094 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
1095 return CONNECTION_ERROR_INVALID_PARAMETER;
1097 if (profile_info->ProfileInfo.Pdp.Roaming)
1100 *is_roaming = false;
1102 return CONNECTION_ERROR_NONE;
1105 int connection_profile_set_cellular_service_type(connection_profile_h profile,
1106 connection_cellular_service_type_e service_type)
1108 if (!(_connection_libnet_check_profile_validity(profile))) {
1109 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
1110 return CONNECTION_ERROR_INVALID_PARAMETER;
1113 net_profile_info_t *profile_info = profile;
1115 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
1116 return CONNECTION_ERROR_INVALID_PARAMETER;
1118 switch (service_type) {
1119 case CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET:
1120 profile_info->ProfileInfo.Pdp.ServiceType = NET_SERVICE_INTERNET;
1122 case CONNECTION_CELLULAR_SERVICE_TYPE_MMS:
1123 profile_info->ProfileInfo.Pdp.ServiceType = NET_SERVICE_MMS;
1125 case CONNECTION_CELLULAR_SERVICE_TYPE_WAP:
1126 profile_info->ProfileInfo.Pdp.ServiceType = NET_SERVICE_WAP;
1128 case CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET:
1129 profile_info->ProfileInfo.Pdp.ServiceType = NET_SERVICE_PREPAID_INTERNET;
1131 case CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS:
1132 profile_info->ProfileInfo.Pdp.ServiceType = NET_SERVICE_PREPAID_MMS;
1134 case CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN:
1136 return CONNECTION_ERROR_INVALID_PARAMETER;
1139 return CONNECTION_ERROR_NONE;
1142 int connection_profile_set_cellular_apn(connection_profile_h profile, const char* apn)
1144 if (!(_connection_libnet_check_profile_validity(profile)) || apn == NULL) {
1145 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
1146 return CONNECTION_ERROR_INVALID_PARAMETER;
1149 net_profile_info_t *profile_info = profile;
1151 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
1152 return CONNECTION_ERROR_INVALID_PARAMETER;
1154 g_strlcpy(profile_info->ProfileInfo.Pdp.Apn, apn, NET_PDP_APN_LEN_MAX+1);
1156 return CONNECTION_ERROR_NONE;
1159 int connection_profile_set_cellular_auth_info(connection_profile_h profile,
1160 connection_cellular_auth_type_e type, const char* user_name, const char* password)
1162 if (!(_connection_libnet_check_profile_validity(profile)) ||
1163 user_name == NULL || password == NULL) {
1164 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
1165 return CONNECTION_ERROR_INVALID_PARAMETER;
1168 net_profile_info_t *profile_info = profile;
1170 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
1171 return CONNECTION_ERROR_INVALID_PARAMETER;
1174 case CONNECTION_CELLULAR_AUTH_TYPE_NONE:
1175 profile_info->ProfileInfo.Pdp.AuthInfo.AuthType = NET_PDP_AUTH_NONE;
1177 case CONNECTION_CELLULAR_AUTH_TYPE_PAP:
1178 profile_info->ProfileInfo.Pdp.AuthInfo.AuthType = NET_PDP_AUTH_PAP;
1180 case CONNECTION_CELLULAR_AUTH_TYPE_CHAP:
1181 profile_info->ProfileInfo.Pdp.AuthInfo.AuthType = NET_PDP_AUTH_CHAP;
1184 return CONNECTION_ERROR_INVALID_PARAMETER;
1187 g_strlcpy(profile_info->ProfileInfo.Pdp.AuthInfo.UserName, user_name, NET_PDP_AUTH_USERNAME_LEN_MAX+1);
1188 g_strlcpy(profile_info->ProfileInfo.Pdp.AuthInfo.Password, password, NET_PDP_AUTH_PASSWORD_LEN_MAX+1);
1190 return CONNECTION_ERROR_NONE;
1193 int connection_profile_set_cellular_home_url(connection_profile_h profile, const char* home_url)
1195 if (!(_connection_libnet_check_profile_validity(profile)) || home_url == NULL) {
1196 CONNECTION_LOG(CONNECTION_ERROR, "Wrong Parameter Passed\n");
1197 return CONNECTION_ERROR_INVALID_PARAMETER;
1200 net_profile_info_t *profile_info = profile;
1202 if (profile_info->profile_type != NET_DEVICE_CELLULAR)
1203 return CONNECTION_ERROR_INVALID_PARAMETER;
1205 g_strlcpy(profile_info->ProfileInfo.Pdp.HomeURL, home_url, NET_HOME_URL_LEN_MAX);
1207 return CONNECTION_ERROR_NONE;