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
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
|
/*
* Copyright (c) 2011-2013 Samsung Electronics Co., Ltd All Rights Reserved
*
* 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.
*/
#ifndef __TIZEN_NETWORK_CONNECTION_PROFILE_H__
#define __TIZEN_NETWORK_CONNECTION_PROFILE_H__
#include <tizen.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @file connection_profile.h
*/
/**
* @addtogroup CAPI_NETWORK_CONNECTION_WIFI_PROFILE_MODULE
* @{
*/
/**
* @brief Enumeration for security type of Wi-Fi.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum
{
CONNECTION_WIFI_SECURITY_TYPE_NONE = 0, /**< Security disabled */
CONNECTION_WIFI_SECURITY_TYPE_WEP = 1, /**< WEP */
CONNECTION_WIFI_SECURITY_TYPE_WPA_PSK = 2, /**< WPA-PSK */
CONNECTION_WIFI_SECURITY_TYPE_WPA2_PSK = 3, /**< WPA2-PSK */
CONNECTION_WIFI_SECURITY_TYPE_EAP = 4, /**< EAP */
} connection_wifi_security_type_e;
/**
* @brief Enumeration for encryption modes.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum
{
CONNECTION_WIFI_ENCRYPTION_TYPE_NONE = 0, /**< Encryption disabled */
CONNECTION_WIFI_ENCRYPTION_TYPE_WEP = 1, /**< WEP */
CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP = 2, /**< TKIP */
CONNECTION_WIFI_ENCRYPTION_TYPE_AES = 3, /**< AES */
CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED = 4, /**< TKIP and AES are both supported */
} connection_wifi_encryption_type_e;
/**
* @}
*/
/**
* @addtogroup CAPI_NETWORK_CONNECTION_CELLULAR_PROFILE_MODULE
* @{
*/
/**
* @brief Enumeration for cellular service type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum
{
CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN = 0, /**< Unknown */
CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET = 1, /**< Internet */
CONNECTION_CELLULAR_SERVICE_TYPE_MMS = 2, /**< MMS */
CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET = 3, /**< Prepaid internet */
CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS = 4, /**< Prepaid MMS */
CONNECTION_CELLULAR_SERVICE_TYPE_TETHERING = 5, /**< Tethering */
CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION = 6, /**< Specific application */
} connection_cellular_service_type_e;
/**
* @brief Enumeration for cellular authentication type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum
{
CONNECTION_CELLULAR_AUTH_TYPE_NONE = 0, /**< No authentication */
CONNECTION_CELLULAR_AUTH_TYPE_PAP = 1, /**< PAP authentication */
CONNECTION_CELLULAR_AUTH_TYPE_CHAP = 2, /**< CHAP authentication */
} connection_cellular_auth_type_e;
/**
* @}
*/
/**
* @addtogroup CAPI_NETWORK_CONNECTION_PROFILE_MODULE
* @{
*/
/**
* @brief The profile handle.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef void* connection_profile_h;
/**
* @brief Enumeration for profile state type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum
{
CONNECTION_PROFILE_STATE_DISCONNECTED = 0, /**< Disconnected state */
CONNECTION_PROFILE_STATE_ASSOCIATION = 1, /**< Association state */
CONNECTION_PROFILE_STATE_CONFIGURATION = 2, /**< Configuration state */
CONNECTION_PROFILE_STATE_CONNECTED = 3, /**< Connected state */
} connection_profile_state_e;
/**
* @brief Enumeration for address family.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum
{
CONNECTION_ADDRESS_FAMILY_IPV4 = 0, /**< IPV4 Address type */
CONNECTION_ADDRESS_FAMILY_IPV6 = 1, /**< IPV6 Address type */
} connection_address_family_e;
/**
* @brief Enumeration for IP configuration type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum
{
CONNECTION_IP_CONFIG_TYPE_NONE = 0, /**< Not defined */
CONNECTION_IP_CONFIG_TYPE_STATIC = 1, /**< Manual IP configuration */
CONNECTION_IP_CONFIG_TYPE_DYNAMIC = 2, /**< Config IP using DHCP client*/
CONNECTION_IP_CONFIG_TYPE_AUTO = 3, /**< Config IP from Auto IP pool (169.254/16). Later with DHCP client, if available */
CONNECTION_IP_CONFIG_TYPE_FIXED = 4, /**< Indicates an IP address that can not be modified */
} connection_ip_config_type_e;
/**
* @brief Enumeration for proxy method type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum
{
CONNECTION_PROXY_TYPE_DIRECT = 0, /**< Direct connection */
CONNECTION_PROXY_TYPE_AUTO = 1, /**< Auto configuration(Use PAC file). If URL property is not set, DHCP/WPAD auto-discover will be tried */
CONNECTION_PROXY_TYPE_MANUAL = 2, /**< Manual configuration */
} connection_proxy_type_e;
/**
* @brief Enumeration for network connection type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
*/
typedef enum{
CONNECTION_PROFILE_TYPE_CELLULAR = 0, /**< Cellular type */
CONNECTION_PROFILE_TYPE_WIFI = 1, /**< Wi-Fi type */
CONNECTION_PROFILE_TYPE_ETHERNET = 2, /**< Ethernet type */
CONNECTION_PROFILE_TYPE_BT = 3, /**< Bluetooth type */
} connection_profile_type_e;
/**
* @brief Creates a profile handle.
* @details The profile name, which you get from connection_profile_get_name(), will include the keyword you set.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @privlevel public
* @privilege %http://tizen.org/privilege/network.profile \n
* %http://tizen.org/privilege/network.get
* @remarks You must release @a profile using connection_profile_destroy(). \n
* This API needs both privileges.
* @param[in] type The type of profile\n
* #CONNECTION_PROFILE_TYPE_CELLULAR and #CONNECTION_PROFILE_TYPE_WIFI are supported.
* @param[in] keyword The keyword included in profile name
* @param[out] profile The handle of the profile
* @return @c 0 on success, otherwise negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
* @see connection_profile_destroy()
* @see connection_profile_get_name()
*/
int connection_profile_create(connection_profile_type_e type, const char* keyword, connection_profile_h* profile);
/**
* @brief Destroys a profile handle.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[out] profile The handle to the profile
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @see connection_profile_create()
*/
int connection_profile_destroy(connection_profile_h profile);
/**
* @brief Clones a profile handle.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a cloned_profile using connection_profile_destroy().
* @param[out] cloned_profile The handle of the cloned profile
* @param[in] origin_profile The handle of the origin profile
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @see connection_profile_destroy()
*/
int connection_profile_clone(connection_profile_h* cloned_profile, connection_profile_h origin_profile);
/**
* @brief Gets the profile ID.
* @details The separate profiles can have the same name.
* So, you must use this API instead of connection_profile_get_name() if you want to get the unique identification.
* In case you create a profile, this value will be determined when you add the profile.
*
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a profile_id using free().
* @param[in] profile The profile handle
* @param[out] profile_id The ID of the profile
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @see connection_profile_get_name()
* @see connection_add_profile()
*/
int connection_profile_get_id(connection_profile_h profile, char** profile_id);
/**
* @brief Gets the profile name.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a profile_name using free().
* @param[in] profile The profile handle
* @param[out] profile_name The name of the profile
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @see connection_profile_get_id()
*/
int connection_profile_get_name(connection_profile_h profile, char** profile_name);
/**
* @brief Gets the network type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] type The type of the profile
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_type(connection_profile_h profile, connection_profile_type_e* type);
/**
* @brief Gets the name of the network interface, e.g. eth0 and pdp0.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a interface_name using free().
* @param[in] profile The profile handle
* @param[out] interface_name The name of the network interface
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
*/
int connection_profile_get_network_interface_name(connection_profile_h profile, char** interface_name);
/**
* @brief Refreshes the profile information.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @privlevel public
* @privilege %http://tizen.org/privilege/network.get
* @remarks You should call this function in order to get the current information because the profile information can be changed.
* @param[in] profile The profile handle
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission Denied
*/
int connection_profile_refresh(connection_profile_h profile);
/**
* @brief Gets the network type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] state The state of the profile
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_state(connection_profile_h profile, connection_profile_state_e* state);
/**
* @brief Gets the IP config type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[out] type The type of the IP config
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_ip_config_type(connection_profile_h profile, connection_address_family_e address_family, connection_ip_config_type_e* type);
/**
* @brief Gets the IP address.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a ip_address using free().
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[out] ip_address The IP address
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_ip_address(connection_profile_h profile, connection_address_family_e address_family, char** ip_address);
/**
* @brief Gets the Subnet Mask.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a subnet_mask using free().
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[out] subnet_mask The subnet mask
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_subnet_mask(connection_profile_h profile, connection_address_family_e address_family, char** subnet_mask);
/**
* @brief Gets the Gateway address.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a gateway_address using free().
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[out] gateway_address The gateway address
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_gateway_address(connection_profile_h profile, connection_address_family_e address_family, char** gateway_address);
/**
* @brief Gets the DNS address.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks The allowance of the DNS address is @c 2. You must release @a dns_address using free().
* @param[in] profile The profile handle
* @param[in] order The order of DNS address \n
* it starts from 1, which means first DNS address.
* @param[in] address_family The address family
* @param[out] dns_address The DNS address
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_dns_address(connection_profile_h profile, int order, connection_address_family_e address_family, char** dns_address);
/**
* @brief Gets the Proxy type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] type The type of the proxy
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_proxy_type(connection_profile_h profile, connection_proxy_type_e* type);
/**
* @brief Gets the Proxy address.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a proxy_address using free().
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[out] proxy_address The proxy address
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_get_proxy_address(connection_profile_h profile, connection_address_family_e address_family, char** proxy_address);
/**
* @brief Sets the IP config type.
* @details If you set IP config type to #CONNECTION_IP_CONFIG_TYPE_STATIC,
* then IP address, Gateway and Subnet mask will be set to the initial value "0.0.0.0".
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[in] type The type of the IP config
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
*/
int connection_profile_set_ip_config_type(connection_profile_h profile, connection_address_family_e address_family, connection_ip_config_type_e type);
/**
* @brief Sets the IP address.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[in] ip_address The IP address.\n
* If you set this value to @c NULL, then the existing value will be deleted.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @see connection_update_profile()
*/
int connection_profile_set_ip_address(connection_profile_h profile, connection_address_family_e address_family, const char* ip_address);
/**
* @brief Sets the Subnet Mask.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[in] subnet_mask The subnet mask. \n
* If you set this value to @c NULL, then the existing value will be deleted.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @see connection_update_profile()
*/
int connection_profile_set_subnet_mask(connection_profile_h profile, connection_address_family_e address_family, const char* subnet_mask);
/**
* @brief Sets the Gateway address.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[in] gateway_address The gateway address. \n
* If you set this value to @c NULL, then the existing value will be deleted.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @see connection_update_profile()
*/
int connection_profile_set_gateway_address(connection_profile_h profile, connection_address_family_e address_family, const char* gateway_address);
/**
* @brief Sets the DNS address.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks The allowance of the DNS address is @c 2.
* @param[in] profile The profile handle
* @param[in] order The order of the DNS address. \n
* It starts from @c 1, which means first DNS address.
* @param[in] address_family The address family
* @param[in] dns_address The DNS address; if you set this value to NULL, then the existing value will be deleted
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @see connection_update_profile()
*/
int connection_profile_set_dns_address(connection_profile_h profile, int order, connection_address_family_e address_family, const char* dns_address);
/**
* @brief Sets the Proxy type.
* @details If you set the Proxy type to #CONNECTION_PROXY_TYPE_AUTO or #CONNECTION_PROXY_TYPE_MANUAL, then Proxy will be restored.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] type The type of the proxy
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @see connection_update_profile()
*/
int connection_profile_set_proxy_type(connection_profile_h profile, connection_proxy_type_e type);
/**
* @brief Sets the Proxy address.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] address_family The address family
* @param[in] proxy_address The proxy address. \n
* if you set this value to @c NULL, then the existing value will be deleted.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @see connection_update_profile()
*/
int connection_profile_set_proxy_address(connection_profile_h profile, connection_address_family_e address_family, const char* proxy_address);
/**
* @brief Called when the state of the profile is changed.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] state The state
* @param[in] user_data The user data passed from the callback registration function
* @see connection_profile_set_state_changed_cb()
* @see connection_profile_unset_state_changed_cb()
*/
typedef void(*connection_profile_state_changed_cb)(connection_profile_state_e state, void* user_data);
/**
* @brief Registers the callback that is called when the state of profile is changed.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] callback The callback function to be called
* @param[in] user_data The user data passed to the callback function
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @post connection_opened_cb() is invoked when the state of profile is changed.
* @see connection_profile_state_changed_cb()
* @see connection_profile_unset_state_changed_cb()
*/
int connection_profile_set_state_changed_cb(connection_profile_h profile, connection_profile_state_changed_cb callback, void* user_data);
/**
* @brief Unregisters the callback that is called when the state of profile is changed.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @see connection_profile_state_changed_cb()
* @see connection_profile_set_state_changed_cb()
*/
int connection_profile_unset_state_changed_cb(connection_profile_h profile);
/**
* @}
*/
/**
* @addtogroup CAPI_NETWORK_CONNECTION_WIFI_PROFILE_MODULE
* @{
*/
/**
* @brief Gets the ESSID (Extended Service Set Identifier).
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a essid using free().
* @param[in] profile The profile handle
* @param[out] essid The ESSID
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_wifi_essid(connection_profile_h profile, char** essid);
/**
* @brief Gets the BSSID (Basic Service Set Identifier).
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a bssid using free().
* @param[in] profile The profile handle
* @param[out] bssid The BSSID
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_wifi_bssid(connection_profile_h profile, char** bssid);
/**
* @brief Gets the RSSI.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] rssi The RSSI
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_wifi_rssi(connection_profile_h profile, int* rssi);
/**
* @brief Gets the frequency (MHz).
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] frequency The frequency
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_wifi_frequency(connection_profile_h profile, int* frequency);
/**
* @brief Gets the max speed (Mbps).
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] max_speed The max speed
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_wifi_max_speed(connection_profile_h profile, int* max_speed);
/**
* @brief Gets the security mode of Wi-Fi.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] type The type of Wi-Fi security
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_wifi_security_type(connection_profile_h profile, connection_wifi_security_type_e* type);
/**
* @brief Gets the security mode of Wi-Fi.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] type The type of Wi-Fi security
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_wifi_encryption_type(connection_profile_h profile, connection_wifi_encryption_type_e* type);
/**
* @brief Checks whether passphrase is required.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks This function is not valid if security type is #CONNECTION_WIFI_SECURITY_TYPE_EAP.
* @param[in] profile The profile handle
* @param[out] required @c true if a passphrase is required, otherwise @c false if a passphrase is not required.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_is_wifi_passphrase_required(connection_profile_h profile, bool* required);
/**
* @brief Sets the passphrase of the Wi-Fi WPA.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] passphrase The passphrase of Wi-Fi security
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
* @see connection_update_profile()
*/
int connection_profile_set_wifi_passphrase(connection_profile_h profile, const char* passphrase);
/**
* @brief Checks whether the WPS (Wi-Fi Protected Setup) is supported.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks If WPS is supported, you can connect the access point with WPS by wifi_connect_with_wps().
* @param[in] profile The profile handle
* @param[out] supported @c true if WPS is supported, otherwise @c false if WPS is not supported.
* @return @c 0 on success, otherwise negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_is_wifi_wps_supported(connection_profile_h profile, bool* supported);
/**
* @}
*/
/**
* @addtogroup CAPI_NETWORK_CONNECTION_CELLULAR_PROFILE_MODULE
* @{
*/
/**
* @brief Gets the service type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] type The type of the cellular service
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_cellular_service_type(connection_profile_h profile, connection_cellular_service_type_e* type);
/**
* @brief Gets the APN (access point name).
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a apn using free().
* @param[in] profile The profile handle
* @param[out] apn The name of the APN
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_cellular_apn(connection_profile_h profile, char** apn);
/**
* @brief Gets the authentication information.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a user_name and @a password using free().
* @param[in] profile The profile handle
* @param[out] type The type of the authentication
* @param[out] user_name The user name
* @param[out] password The password
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_cellular_auth_info(connection_profile_h profile, connection_cellular_auth_type_e* type, char** user_name, char** password);
/**
* @brief Gets the home URL.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @remarks You must release @a home_url using free().
* @param[in] profile The profile handle
* @param[out] home_url The home URL
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_get_cellular_home_url(connection_profile_h profile, char** home_url);
/**
* @brief Checks wheter the connection is in roaming state.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] is_roaming @c true if the cellular is roaming, otherwise @c false if it is not roaming.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_is_cellular_roaming(connection_profile_h profile, bool* is_roaming);
/**
* @brief Checks whether the profile is hidden.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] is_hidden @c ture if the profile is in hidden, otherwise @c false if the profile is not hidden.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_is_cellular_hidden(connection_profile_h profile, bool* is_hidden);
/**
* @brief Checks whether the profile is editable.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] is_editable @c true if the profile is editable, otherwise @c false if the profile is not editable.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_is_cellular_editable(connection_profile_h profile, bool* is_editable);
/**
* @brief Checks whether the profile is default.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[out] is_default @c true if the profile is default, otherwise @c false if the profile is not default.
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
*/
int connection_profile_is_cellular_default(connection_profile_h profile, bool* is_default);
/**
* @brief Sets the service type.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] service_type The type of cellular service
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
* @see connection_update_profile()
*/
int connection_profile_set_cellular_service_type(connection_profile_h profile, connection_cellular_service_type_e service_type);
/**
* @brief Sets the APN (Access Point Name).
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] apn The name of APN
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
* @see connection_update_profile()
*/
int connection_profile_set_cellular_apn(connection_profile_h profile, const char* apn);
/**
* @brief Sets the Authentication information.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] type The type of the authentication
* @param[in] user_name The user name
* @param[in] password The password
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
* @see connection_update_profile()
*/
int connection_profile_set_cellular_auth_info(connection_profile_h profile, connection_cellular_auth_type_e type, const char* user_name, const char* password);
/**
* @brief Sets the home URL.
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
* @param[in] profile The profile handle
* @param[in] home_url The home URL
* @return @c 0 on success, otherwise a negative error value
* @retval #CONNECTION_ERROR_NONE Successful
* @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
* @see connection_update_profile()
*/
int connection_profile_set_cellular_home_url(connection_profile_h profile, const char* home_url);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __TIZEN_NETWORK_CONNECTION_PROFILE_H__ */
|