8 _elements_print(E_Connman_Element **elements, int count)
11 for (i = 0; i < count; i++)
13 printf("--- element %d:\n", i);
14 e_connman_element_print(stdout, elements[i]);
17 printf("END: all elements count = %d\n", count);
21 _on_element_add(void *data, int type, void *info)
23 E_Connman_Element *element = info;
24 printf(">>> %s\n", element->path);
29 _on_element_del(void *data, int type, void *info)
31 E_Connman_Element *element = info;
32 printf("<<< %s\n", element->path);
37 _on_element_updated(void *data, int type, void *info)
39 E_Connman_Element *element = info;
40 printf("!!! %s\n", element->path);
41 e_connman_element_print(stderr, element);
46 _on_cmd_quit(char *cmd, char *args)
48 fputs("Bye!\n", stderr);
49 ecore_main_loop_quit();
54 _on_cmd_sync(char *cmd, char *args)
56 e_connman_manager_sync_elements();
78 _on_cmd_get_all(char *cmd, char *args)
80 E_Connman_Element **elements;
91 ret = e_connman_elements_get_all_type(type, &count, &elements);
93 ret = e_connman_elements_get_all(&count, &elements);
96 fputs("ERROR: could not get elements\n", stderr);
99 printf("BEG: all elements type=%s count = %d\n", type, count);
100 _elements_print(elements, count);
106 static E_Connman_Element *
107 _element_from_args(char *args, char **next_args)
109 E_Connman_Element *element;
113 fputs("ERROR: missing element path\n", stderr);
118 *next_args = _tok(args);
119 element = e_connman_element_get(args);
121 fprintf(stderr, "ERROR: no element called \"%s\".\n", args);
127 _on_cmd_print(char *cmd, char *args)
130 E_Connman_Element *element = _element_from_args(args, &next_args);
132 e_connman_element_print(stdout, element);
137 _on_cmd_get_properties(char *cmd, char *args)
140 E_Connman_Element *element = _element_from_args(args, &next_args);
142 e_connman_element_properties_sync(element);
147 _on_cmd_property_set(char *cmd, char *args)
149 char *next_args, *name, *p;
150 E_Connman_Element *element = _element_from_args(args, &next_args);
162 fputs("ERROR: missing parameters name, type and value.\n", stderr);
170 fputs("ERROR: missing parameters type and value.\n", stderr);
177 fputs("ERROR: missing parameter value.\n", stderr);
184 case DBUS_TYPE_BOOLEAN:
185 vlong = !!atol(next_args);
186 value = (void *)vlong;
187 fprintf(stderr, "DBG: boolean is: %ld\n", vlong);
189 case DBUS_TYPE_UINT16:
190 vu16 = strtol(next_args, &p, 0);
193 fprintf(stderr, "ERROR: invalid number \"%s\".\n", next_args);
197 fprintf(stderr, "DBG: u16 is: %hu\n", vu16);
199 case DBUS_TYPE_UINT32:
200 vu32 = strtol(next_args, &p, 0);
203 fprintf(stderr, "ERROR: invalid number \"%s\".\n", next_args);
207 fprintf(stderr, "DBG: u16 is: %u\n", vu32);
209 case DBUS_TYPE_STRING:
210 case DBUS_TYPE_OBJECT_PATH:
211 p = next_args + strlen(next_args);
214 while (p > next_args && isspace(*p))
218 fprintf(stderr, "ERROR: invalid string \"%s\".\n", next_args);
222 fprintf(stderr, "DBG: string is: \"%s\"\n", next_args);
225 fprintf(stderr, "ERROR: don't know how to parse type '%c' (%d)\n",
230 fprintf(stderr, "set_property %s [%p] %s %c %p...\n",
231 args, element, name, type, value);
232 if (!e_connman_element_property_set(element, name, type, value))
234 fputs("ERROR: error setting property.\n", stderr);
241 /* Manager Commands */
244 _on_cmd_manager_get(char *cmd, char *args)
246 E_Connman_Element *element;
247 element = e_connman_manager_get();
248 e_connman_element_print(stderr, element);
253 _on_cmd_manager_get_profiles(char *cmd, char *args)
256 E_Connman_Element **profiles;
258 if (!e_connman_manager_profiles_get(&count, &profiles))
260 fputs("ERROR: can't get profiles\n", stderr);
263 printf("BEG: all manager profiles elements count = %d\n", count);
264 _elements_print(profiles, count);
269 _on_cmd_manager_get_devices(char *cmd, char *args)
272 E_Connman_Element **devices;
274 if (!e_connman_manager_devices_get(&count, &devices))
276 fputs("ERROR: can't get devices\n", stderr);
279 printf("BEG: all manager devices elements count = %d\n", count);
280 _elements_print(devices, count);
285 _on_cmd_manager_get_services(char *cmd, char *args)
288 E_Connman_Element **services;
290 if (!e_connman_manager_services_get(&count, &services))
292 fputs("ERROR: can't get services\n", stderr);
295 printf("BEG: all manager services elements count = %d\n", count);
296 _elements_print(services, count);
301 _on_cmd_manager_register_agent(char *cmd, char *args)
307 fputs("ERROR: missing the object path\n", stderr);
312 if (e_connman_manager_agent_register(path, NULL, NULL))
313 printf(":::Registering agent %s...\n", path);
315 fprintf(stderr, "ERROR: can't register agent %s\n", path);
321 _on_cmd_manager_unregister_agent(char *cmd, char *args)
327 fputs("ERROR: missing the object path\n", stderr);
332 if (e_connman_manager_agent_unregister(path, NULL, NULL))
333 printf(":::Unregistering agent %s...\n", path);
335 fprintf(stderr, "ERROR: can't unregister agent %s\n", path);
341 _on_cmd_manager_get_state(char *cmd, char *args)
344 if (e_connman_manager_state_get(&state))
345 printf(":::Manager state = \"%s\"\n", state);
347 fputs("ERROR: can't get manager state\n", stderr);
352 _on_cmd_manager_get_offline_mode(char *cmd, char *args)
355 if (e_connman_manager_offline_mode_get(&offline))
356 printf(":::Manager Offline Mode = %hhu\n", offline);
358 fputs("ERROR: can't get manager offline mode\n", stderr);
363 _on_cmd_manager_set_offline_mode(char *cmd, char *args)
368 fputs("ERROR: missing the offline mode value\n", stderr);
372 offline = !!atol(args);
373 if (e_connman_manager_offline_mode_set(offline, NULL, NULL))
374 printf(":::Manager Offline Mode set to %hhu\n", offline);
376 fputs("ERROR: can't set manager offline mode\n", stderr);
381 _on_cmd_manager_request_scan(char *cmd, char *args)
389 if (e_connman_manager_request_scan(args, NULL, NULL))
390 printf(":::Manager Request Scan for %s\n", args[0] ? args : "<all>");
392 fputs("ERROR: can't request scan on manager\n", stderr);
397 _on_cmd_manager_technology_enable(char *cmd, char *args)
401 fputs("ERROR: missing the technology type\n", stderr);
406 if (e_connman_manager_technology_enable(args, NULL, NULL))
407 printf(":::Manager Enable Technology %s\n", args);
409 fputs("ERROR: can't enable technology on manager\n", stderr);
414 _on_cmd_manager_technology_disable(char *cmd, char *args)
418 fputs("ERROR: missing the technology type\n", stderr);
423 if (e_connman_manager_technology_disable(args, NULL, NULL))
424 printf(":::Manager Disable Technology %s\n", args);
426 fputs("ERROR: can't disable technology on manager\n", stderr);
431 _on_cmd_manager_profile_remove(char *cmd, char *args)
433 E_Connman_Element *e;
437 fputs("ERROR: missing the profile path\n", stderr);
442 e = e_connman_profile_get(args);
443 if (e_connman_manager_profile_remove(e, NULL, NULL))
444 printf(":::Manager Remove Profile %s\n", args);
446 fputs("ERROR: can't remove profile from manager\n", stderr);
451 _on_cmd_manager_profile_get_active(char *cmd, char *args)
453 E_Connman_Element *e;
455 if (!e_connman_manager_profile_active_get(&e))
456 fputs("ERROR: can't active_get profile from manager\n", stderr);
458 e_connman_element_print(stderr, e);
463 _on_cmd_manager_profile_set_active(char *cmd, char *args)
465 E_Connman_Element *e;
469 fputs("ERROR: missing the profile path\n", stderr);
474 e = e_connman_profile_get(args);
475 if (e_connman_manager_profile_active_set(e, NULL, NULL))
476 printf(":::Manager Active Profile set to %s\n", args);
478 fputs("ERROR: can't set active profile\n", stderr);
482 /* Device Commands */
484 _on_cmd_device_propose_scan(char *cmd, char *args)
487 E_Connman_Element *e;
491 fputs("ERROR: missing the device path\n", stderr);
497 e = e_connman_device_get(path);
498 if (e_connman_device_propose_scan(e, NULL, NULL))
499 printf(":::Proposing scan %s...\n", path);
501 fputs("ERROR: can't propose scan\n", stderr);
506 _on_cmd_device_get_address(char *cmd, char *args)
508 const char *address, *path;
509 E_Connman_Element *e;
513 fputs("ERROR: missing the device path\n", stderr);
519 e = e_connman_device_get(path);
520 if (e_connman_device_address_get(e, &address))
521 printf(":::Device %s Address = \"%s\"\n", path, address);
523 fputs("ERROR: can't get device address\n", stderr);
528 _on_cmd_device_get_name(char *cmd, char *args)
530 const char *name, *path;
531 E_Connman_Element *e;
535 fputs("ERROR: missing the device path\n", stderr);
541 e = e_connman_device_get(path);
542 if (e_connman_device_name_get(e, &name))
543 printf(":::Device %s Name = \"%s\"\n", path, name);
545 fputs("ERROR: can't get device name\n", stderr);
550 _on_cmd_device_get_type(char *cmd, char *args)
552 const char *type, *path;
553 E_Connman_Element *e;
557 fputs("ERROR: missing the device path\n", stderr);
563 e = e_connman_device_get(path);
564 if (e_connman_device_type_get(e, &type))
565 printf(":::Device %s Type = \"%s\"\n", path, type);
567 fputs("ERROR: can't get device type\n", stderr);
572 _on_cmd_device_get_interface(char *cmd, char *args)
574 const char *interface, *path;
575 E_Connman_Element *e;
579 fputs("ERROR: missing the device path\n", stderr);
585 e = e_connman_device_get(path);
586 if (e_connman_device_interface_get(e, &interface))
587 printf(":::Device %s Interface = \"%s\"\n", path, interface);
589 fputs("ERROR: can't get device interface\n", stderr);
594 _on_cmd_device_get_powered(char *cmd, char *args)
598 E_Connman_Element *e;
602 fputs("ERROR: missing the device path\n", stderr);
608 e = e_connman_device_get(path);
609 if (e_connman_device_powered_get(e, &powered))
610 printf(":::Device %s Powered = %hhu\n", path, powered);
612 fputs("ERROR: can't get device powered\n", stderr);
617 _on_cmd_device_set_powered(char *cmd, char *args)
619 char *device_path, *next_args;
621 E_Connman_Element *e;
625 fputs("ERROR: missing the device path\n", stderr);
629 next_args = _tok(args);
632 fputs("ERROR: missing the powered value\n", stderr);
635 powered = !!atol(next_args);
637 e = e_connman_device_get(device_path);
638 if (e_connman_device_powered_set(e, powered, NULL, NULL))
639 printf(":::Device %s powered set to %hhu\n", device_path, powered);
641 fputs("ERROR: can't set device powered\n", stderr);
646 _on_cmd_device_get_scan_interval(char *cmd, char *args)
649 unsigned short scan_interval;
650 E_Connman_Element *e;
654 fputs("ERROR: missing the device path\n", stderr);
660 e = e_connman_device_get(path);
661 if (e_connman_device_scan_interval_get(e, &scan_interval))
662 printf(":::Device %s ScanInterval = %hu\n", path, scan_interval);
664 fputs("ERROR: can't get device scan interval\n", stderr);
669 _on_cmd_device_set_scan_interval(char *cmd, char *args)
671 char *device_path, *next_args, *p;
672 unsigned short scan_interval;
673 E_Connman_Element *e;
677 fputs("ERROR: missing the device path\n", stderr);
681 next_args = _tok(args);
684 fputs("ERROR: missing the scan interval value\n", stderr);
687 scan_interval = strtol(next_args, &p, 0);
690 fprintf(stderr, "ERROR: invalid number \"%s\".\n", next_args);
694 e = e_connman_device_get(device_path);
695 if (e_connman_device_scan_interval_set(e, scan_interval, NULL, NULL))
696 printf(":::Device %s scan interval set to %hu\n", device_path, scan_interval);
698 fputs("ERROR: can't set device scan interval\n", stderr);
703 _on_cmd_device_get_scanning(char *cmd, char *args)
707 E_Connman_Element *e;
711 fputs("ERROR: missing the device path\n", stderr);
717 e = e_connman_device_get(path);
718 if (e_connman_device_scanning_get(e, &scanning))
719 printf(":::Device %s Scanning = %hhu\n", path, scanning);
721 fputs("ERROR: can't get device scanning\n", stderr);
726 _on_cmd_device_get_networks(char *cmd, char *args)
728 E_Connman_Element **networks;
731 E_Connman_Element *e;
735 fputs("ERROR: missing the device path\n", stderr);
741 e = e_connman_device_get(path);
742 if (!e_connman_device_networks_get(e, &count, &networks))
744 fputs("ERROR: can't get networks\n", stderr);
748 printf("BEG: all device network elements count = %d\n", count);
749 _elements_print(networks, count);
753 /* Profile Commands */
756 _on_cmd_profile_get_name(char *cmd, char *args)
758 const char *name, *path;
759 E_Connman_Element *e;
763 fputs("ERROR: missing the profile path\n", stderr);
769 e = e_connman_profile_get(path);
770 if (e_connman_profile_name_get(e, &name))
771 printf(":::Profile %s Name = \"%s\"\n", path, name);
773 fputs("ERROR: can't get profile name\n", stderr);
778 _on_cmd_profile_set_name(char *cmd, char *args)
780 char *path, *next_args;
781 E_Connman_Element *e;
785 fputs("ERROR: missing the profile path\n", stderr);
789 next_args = _tok(args);
792 fputs("ERROR: missing the offline mode value\n", stderr);
797 e = e_connman_profile_get(path);
798 if (e_connman_profile_name_set(e, next_args, NULL, NULL))
799 printf(":::Profile %s Name set to %s\n", path, next_args);
801 fputs("ERROR: can't set profile name\n", stderr);
806 _on_cmd_profile_get_offline_mode(char *cmd, char *args)
810 E_Connman_Element *e;
814 fputs("ERROR: missing the profile path\n", stderr);
820 e = e_connman_profile_get(path);
821 if (e_connman_profile_offline_mode_get(e, &offline))
822 printf(":::Profile %s Offline Mode = %hhu\n", path, offline);
824 fputs("ERROR: can't get profile offline mode\n", stderr);
829 _on_cmd_profile_set_offline_mode(char *cmd, char *args)
831 char *path, *next_args;
833 E_Connman_Element *e;
837 fputs("ERROR: missing the profile path\n", stderr);
841 next_args = _tok(args);
844 fputs("ERROR: missing the offline mode value\n", stderr);
848 offline = !!atol(next_args);
850 e = e_connman_profile_get(path);
851 if (e_connman_profile_offline_mode_set(e, offline, NULL, NULL))
852 printf(":::Profile %s Offline Mode set to %hhu\n", path, offline);
854 fputs("ERROR: can't set profile offline mode\n", stderr);
859 _on_cmd_profile_get_services(char *cmd, char *args)
861 E_Connman_Element **services;
862 E_Connman_Element *e;
868 fputs("ERROR: missing the profile path\n", stderr);
874 e = e_connman_profile_get(path);
875 if (!e_connman_profile_services_get(e, &count, &services))
877 fputs("ERROR: can't get services\n", stderr);
880 printf("BEG: all profile services count = %d\n", count);
881 _elements_print(services, count);
886 /* Network Commands */
889 _on_cmd_network_get_address(char *cmd, char *args)
891 const char *address, *path;
892 E_Connman_Element *e;
896 fputs("ERROR: missing the network path\n", stderr);
902 e = e_connman_network_get(path);
903 if (e_connman_network_address_get(e, &address))
904 printf(":::Network %s Address = \"%s\"\n", path, address);
906 fputs("ERROR: can't get network address\n", stderr);
911 _on_cmd_network_get_name(char *cmd, char *args)
913 const char *name, *path;
914 E_Connman_Element *e;
918 fputs("ERROR: missing the network path\n", stderr);
924 e = e_connman_network_get(path);
925 if (e_connman_network_name_get(e, &name))
926 printf(":::Network %s Name = \"%s\"\n", path, name);
928 fputs("ERROR: can't get network name\n", stderr);
933 _on_cmd_network_get_connected(char *cmd, char *args)
937 E_Connman_Element *e;
941 fputs("ERROR: missing the network path\n", stderr);
947 e = e_connman_network_get(path);
948 if (e_connman_network_connected_get(e, &connected))
949 printf(":::Network %s Connected = %hhu\n", path, connected);
951 fputs("ERROR: can't get network connected\n", stderr);
956 _on_cmd_network_get_strength(char *cmd, char *args)
959 unsigned char strength;
960 E_Connman_Element *e;
964 fputs("ERROR: missing the network path\n", stderr);
970 e = e_connman_network_get(path);
971 if (e_connman_network_strength_get(e, &strength))
972 printf(":::Network %s Strength = %#02hhx (%d)\n", path, strength, strength);
974 fputs("ERROR: can't get network strength\n", stderr);
979 _on_cmd_network_get_frequency(char *cmd, char *args)
982 unsigned short frequency;
983 E_Connman_Element *e;
987 fputs("ERROR: missing the network path\n", stderr);
993 e = e_connman_network_get(path);
994 if (e_connman_network_frequency_get(e, &frequency))
995 printf(":::Network %s Frequency = %#04hx (%d)\n", path, frequency, frequency);
997 fputs("ERROR: can't get network frequency\n", stderr);
1002 _on_cmd_network_get_device(char *cmd, char *args)
1004 E_Connman_Element *e, *device;
1009 fputs("ERROR: missing the network path\n", stderr);
1015 e = e_connman_network_get(path);
1016 if (!e_connman_network_device_get(e, &device))
1017 fputs("ERROR: can't get network device\n", stderr);
1019 e_connman_element_print(stderr, device);
1024 _on_cmd_network_get_wifi_ssid(char *cmd, char *args)
1026 unsigned char *bytes;
1028 unsigned int i, count;
1029 E_Connman_Element *e;
1033 fputs("ERROR: missing the network path\n", stderr);
1039 e = e_connman_network_get(path);
1040 if (e_connman_network_wifi_ssid_get(e, &count, &bytes))
1042 printf(":::Network %s Wifi SSID = ", path);
1043 for (i = 0; i < count; i++)
1044 printf("%#02hhx (\"%c\"), ", bytes[i], bytes[i]);
1048 fputs("ERROR: can't get network wifi ssid\n", stderr);
1053 _on_cmd_network_get_wifi_mode(char *cmd, char *args)
1055 const char *wifi_mode, *path;
1056 E_Connman_Element *e;
1060 fputs("ERROR: missing the network path\n", stderr);
1066 e = e_connman_network_get(path);
1067 if (e_connman_network_wifi_mode_get(e, &wifi_mode))
1068 printf(":::Network %s Wifi Mode = \"%s\"\n", path, wifi_mode);
1070 fputs("ERROR: can't get network wifi mode\n", stderr);
1075 _on_cmd_network_get_wifi_security(char *cmd, char *args)
1077 const char *wifi_security, *path;
1078 E_Connman_Element *e;
1082 fputs("ERROR: missing the network path\n", stderr);
1088 e = e_connman_network_get(path);
1089 if (e_connman_network_wifi_security_get(e, &wifi_security))
1090 printf(":::Network %s Wifi Security = \"%s\"\n", path, wifi_security);
1092 fputs("ERROR: can't get network wifi security\n", stderr);
1097 _on_cmd_network_get_wifi_passphrase(char *cmd, char *args)
1099 const char *wifi_passphrase, *path;
1100 E_Connman_Element *e;
1104 fputs("ERROR: missing the network path\n", stderr);
1110 e = e_connman_network_get(path);
1111 if (e_connman_network_wifi_passphrase_get(e, &wifi_passphrase))
1112 printf(":::Network %s Wifi Passphrase = \"%s\"\n", path, wifi_passphrase);
1114 fputs("ERROR: can't get network wifi passphrase\n", stderr);
1119 _on_cmd_network_get_wifi_channel(char *cmd, char *args)
1122 E_Connman_Element *e;
1123 unsigned short wifi_channel;
1127 fputs("ERROR: missing the network path\n", stderr);
1133 e = e_connman_network_get(path);
1134 if (e_connman_network_wifi_channel_get(e, &wifi_channel))
1135 printf(":::Network %s Wifi Channel = %#02hx (%d)\n", path, wifi_channel, wifi_channel);
1137 fputs("ERROR: can't get network wifi channel\n", stderr);
1142 _on_cmd_network_get_wifi_eap(char *cmd, char *args)
1144 const char *wifi_eap, *path;
1145 E_Connman_Element *e;
1149 fputs("ERROR: missing the network path\n", stderr);
1155 e = e_connman_network_get(path);
1156 if (e_connman_network_wifi_eap_get(e, &wifi_eap))
1157 printf(":::Network %s Wifi EAP = \"%s\"\n", path, wifi_eap);
1159 fputs("ERROR: can't get network wifi eap\n", stderr);
1163 /* Services Commands */
1165 _on_cmd_service_connect(char *cmd, char *args)
1168 E_Connman_Element *e;
1172 fputs("ERROR: missing the service path\n", stderr);
1178 e = e_connman_service_get(path);
1179 if (e_connman_service_connect(e, NULL, NULL))
1180 printf(":::Connecting to Service %s...\n", path);
1182 fputs("ERROR: can't connect to service\n", stderr);
1187 _on_cmd_service_disconnect(char *cmd, char *args)
1190 E_Connman_Element *e;
1194 fputs("ERROR: missing the service path\n", stderr);
1200 e = e_connman_service_get(path);
1201 if (e_connman_service_disconnect(e, NULL, NULL))
1202 printf(":::Disconnecting Service %s...\n", path);
1204 fputs("ERROR: can't disconnect service\n", stderr);
1209 _on_cmd_service_remove(char *cmd, char *args)
1212 E_Connman_Element *e;
1216 fputs("ERROR: missing the service path\n", stderr);
1222 e = e_connman_service_get(path);
1223 if (e_connman_service_remove(e, NULL, NULL))
1224 printf(":::Removing Service %s...\n", path);
1226 fputs("ERROR: can't remove service\n", stderr);
1231 _on_cmd_service_move_before(char *cmd, char *args)
1233 char *path, *service_path;
1234 E_Connman_Element *e;
1238 fputs("ERROR: missing the service path\n", stderr);
1241 service_path = args;
1246 fputs("ERROR: missing the object service\n", stderr);
1251 e = e_connman_service_get(service_path);
1252 if (e_connman_service_move_before(e, path, NULL, NULL))
1253 printf(":::Moving before %s...\n", path);
1255 fputs("ERROR: can't move before\n", stderr);
1260 _on_cmd_service_move_after(char *cmd, char *args)
1262 char *path, *service_path;
1263 E_Connman_Element *e;
1267 fputs("ERROR: missing the service path\n", stderr);
1270 service_path = args;
1275 fputs("ERROR: missing the object service\n", stderr);
1280 e = e_connman_service_get(service_path);
1281 if (e_connman_service_move_after(e, path, NULL, NULL))
1282 printf(":::Moving after %s...\n", path);
1284 fputs("ERROR: can't move after\n", stderr);
1289 _on_cmd_service_get_state(char *cmd, char *args)
1291 const char *state, *path;
1292 E_Connman_Element *e;
1296 fputs("ERROR: missing the service path\n", stderr);
1302 e = e_connman_service_get(path);
1303 if (e_connman_service_state_get(e, &state))
1304 printf(":::Service %s State = \"%s\"\n", path, state);
1306 fputs("ERROR: can't get service state\n", stderr);
1311 _on_cmd_service_get_error(char *cmd, char *args)
1313 const char *error, *path;
1314 E_Connman_Element *e;
1318 fputs("ERROR: missing the service path\n", stderr);
1324 e = e_connman_service_get(path);
1325 if (e_connman_service_error_get(e, &error))
1326 printf(":::Service %s Error = \"%s\"\n", path, error);
1328 fputs("ERROR: can't get service error\n", stderr);
1333 _on_cmd_service_get_name(char *cmd, char *args)
1335 const char *name, *path;
1336 E_Connman_Element *e;
1340 fputs("ERROR: missing the service path\n", stderr);
1346 e = e_connman_service_get(path);
1347 if (e_connman_service_name_get(e, &name))
1348 printf(":::Service %s Name = \"%s\"\n", path, name);
1350 fputs("ERROR: can't get service name\n", stderr);
1355 _on_cmd_service_get_type(char *cmd, char *args)
1357 const char *type, *path;
1358 E_Connman_Element *e;
1362 fputs("ERROR: missing the service path\n", stderr);
1368 e = e_connman_service_get(path);
1369 if (e_connman_service_type_get(e, &type))
1370 printf(":::Service %s Type = \"%s\"\n", path, type);
1372 fputs("ERROR: can't get service type\n", stderr);
1377 _on_cmd_service_get_mode(char *cmd, char *args)
1379 const char *mode, *path;
1380 E_Connman_Element *e;
1384 fputs("ERROR: missing the service path\n", stderr);
1390 e = e_connman_service_get(path);
1391 if (e_connman_service_mode_get(e, &mode))
1392 printf(":::Service %s Mode = \"%s\"\n", path, mode);
1394 fputs("ERROR: can't get service mode\n", stderr);
1399 _on_cmd_service_get_security(char *cmd, char *args)
1401 const char *security, *path;
1402 E_Connman_Element *e;
1406 fputs("ERROR: missing the service path\n", stderr);
1412 e = e_connman_service_get(path);
1413 if (e_connman_service_security_get(e, &security))
1414 printf(":::Service %s Security = \"%s\"\n", path, security);
1416 fputs("ERROR: can't get service security\n", stderr);
1421 _on_cmd_service_get_passphrase(char *cmd, char *args)
1423 const char *passphrase, *path;
1424 E_Connman_Element *e;
1428 fputs("ERROR: missing the service path\n", stderr);
1434 e = e_connman_service_get(path);
1435 if (e_connman_service_passphrase_get(e, &passphrase))
1436 printf(":::Service %s Passphrase = \"%s\"\n", path, passphrase);
1438 fputs("ERROR: can't get service passphrase\n", stderr);
1443 _on_cmd_service_set_passphrase(char *cmd, char *args)
1445 char *passphrase, *path;
1446 E_Connman_Element *e;
1450 fputs("ERROR: missing the service path\n", stderr);
1454 passphrase = _tok(args);
1458 fputs("ERROR: missing the passphrase value\n", stderr);
1463 e = e_connman_service_get(path);
1464 if (e_connman_service_passphrase_set(e, passphrase, NULL, NULL))
1465 printf(":::Service %s passphrase set to \"%s\"\n", path, passphrase);
1467 fputs("ERROR: can't set service passphrase\n", stderr);
1472 _on_cmd_service_get_passphrase_required(char *cmd, char *args)
1476 E_Connman_Element *e;
1480 fputs("ERROR: missing the service path\n", stderr);
1486 e = e_connman_service_get(path);
1487 if (e_connman_service_passphrase_required_get(e, &passphrase))
1488 printf(":::Service %s Passphrase Required = %hhu\n", path, passphrase);
1490 fputs("ERROR: can't get service passphrase required\n", stderr);
1495 _on_cmd_service_get_strength(char *cmd, char *args)
1498 unsigned char strength;
1499 E_Connman_Element *e;
1503 fputs("ERROR: missing the service path\n", stderr);
1509 e = e_connman_service_get(path);
1510 if (e_connman_service_strength_get(e, &strength))
1511 printf(":::Service %s Strength = %#02hhx (%d)\n", path, strength, strength);
1513 fputs("ERROR: can't get service strength\n", stderr);
1518 _on_cmd_service_get_favorite(char *cmd, char *args)
1522 E_Connman_Element *e;
1526 fputs("ERROR: missing the service path\n", stderr);
1532 e = e_connman_service_get(path);
1533 if (e_connman_service_favorite_get(e, &favorite))
1534 printf(":::Service %s Favorite = %hhu\n", path, favorite);
1536 fputs("ERROR: can't get service favorite\n", stderr);
1541 _on_cmd_service_get_immutable(char *cmd, char *args)
1545 E_Connman_Element *e;
1549 fputs("ERROR: missing the service path\n", stderr);
1555 e = e_connman_service_get(path);
1556 if (e_connman_service_immutable_get(e, &immutable))
1557 printf(":::Service %s Immutable = %hhu\n", path, immutable);
1559 fputs("ERROR: can't get service immutable\n", stderr);
1564 _on_cmd_service_get_auto_connect(char *cmd, char *args)
1568 E_Connman_Element *e;
1572 fputs("ERROR: missing the service path\n", stderr);
1578 e = e_connman_service_get(path);
1579 if (e_connman_service_auto_connect_get(e, &auto_connect))
1580 printf(":::Service %s Auto Connect = %hhu\n", path, auto_connect);
1582 fputs("ERROR: can't get service auto connect\n", stderr);
1587 _on_cmd_service_set_auto_connect(char *cmd, char *args)
1589 char *path, *next_args;
1591 E_Connman_Element *e;
1595 fputs("ERROR: missing the service path\n", stderr);
1599 next_args = _tok(args);
1603 fputs("ERROR: missing the auto connect value\n", stderr);
1607 auto_connect = !!atol(next_args);
1609 e = e_connman_service_get(path);
1610 if (e_connman_service_auto_connect_set(e, auto_connect, NULL, NULL))
1611 printf(":::Service %s auto connect set to %d\n", path, auto_connect);
1613 fputs("ERROR: can't set service auto connect\n", stderr);
1618 _on_cmd_service_get_setup_required(char *cmd, char *args)
1621 bool setup_required;
1622 E_Connman_Element *e;
1626 fputs("ERROR: missing the service path\n", stderr);
1632 e = e_connman_service_get(path);
1633 if (e_connman_service_setup_required_get(e, &setup_required))
1634 printf(":::Service %s Setup Required = %hhu\n", path, setup_required);
1636 fputs("ERROR: can't get service setup required\n", stderr);
1641 _on_cmd_service_get_apn(char *cmd, char *args)
1643 const char *apn, *path;
1644 E_Connman_Element *e;
1648 fputs("ERROR: missing the service path\n", stderr);
1654 e = e_connman_service_get(path);
1655 if (e_connman_service_apn_get(e, &apn))
1656 printf(":::Service %s APN = \"%s\"\n", path, apn);
1658 fputs("ERROR: can't get service APN\n", stderr);
1663 _on_cmd_service_set_apn(char *cmd, char *args)
1666 E_Connman_Element *e;
1670 fputs("ERROR: missing the service path\n", stderr);
1678 fputs("ERROR: missing the apn value\n", stderr);
1683 e = e_connman_service_get(path);
1684 if (e_connman_service_apn_set(e, apn, NULL, NULL))
1685 printf(":::Service %s APN set to \"%s\"\n", path, apn);
1687 fputs("ERROR: can't set service APN\n", stderr);
1692 _on_cmd_service_get_mcc(char *cmd, char *args)
1694 const char *mcc, *path;
1695 E_Connman_Element *e;
1699 fputs("ERROR: missing the service path\n", stderr);
1705 e = e_connman_service_get(path);
1706 if (e_connman_service_mcc_get(e, &mcc))
1707 printf(":::Service %s MCC = \"%s\"\n", path, mcc);
1709 fputs("ERROR: can't get service MCC\n", stderr);
1714 _on_cmd_service_get_mnc(char *cmd, char *args)
1716 const char *mnc, *path;
1717 E_Connman_Element *e;
1721 fputs("ERROR: missing the service path\n", stderr);
1727 e = e_connman_service_get(path);
1728 if (e_connman_service_mnc_get(e, &mnc))
1729 printf(":::Service %s MNC = \"%s\"\n", path, mnc);
1731 fputs("ERROR: can't get service MNC\n", stderr);
1736 _on_cmd_service_get_roaming(char *cmd, char *args)
1740 E_Connman_Element *e;
1744 fputs("ERROR: missing the service path\n", stderr);
1750 e = e_connman_service_get(path);
1751 if (e_connman_service_roaming_get(e, &roaming))
1752 printf(":::Service %s Roaming = %hhu\n", path, roaming);
1754 fputs("ERROR: can't get service roaming\n", stderr);
1759 _on_cmd_service_get_ipv4_method(char *cmd, char *args)
1761 const char *ipv4_method, *path;
1762 E_Connman_Element *e;
1766 fputs("ERROR: missing the service path\n", stderr);
1772 e = e_connman_service_get(path);
1773 if (e_connman_service_ipv4_method_get(e, &ipv4_method))
1774 printf(":::Service %s ipv4 method = \"%s\"\n", path, ipv4_method);
1776 fputs("ERROR: can't get service ipv4 method\n", stderr);
1781 _on_cmd_service_get_ipv4_address(char *cmd, char *args)
1783 const char *ipv4_address, *path;
1784 E_Connman_Element *e;
1788 fputs("ERROR: missing the service path\n", stderr);
1794 e = e_connman_service_get(path);
1795 if (e_connman_service_ipv4_address_get(e, &ipv4_address))
1796 printf(":::Service %s ipv4 address = \"%s\"\n", path, ipv4_address);
1798 fputs("ERROR: can't get service ipv4 address\n", stderr);
1804 _on_input(void *data, Ecore_Fd_Handler *fd_handler)
1810 int (*cb)(char *cmd, char *args);
1812 {"quit", _on_cmd_quit},
1813 {"sync", _on_cmd_sync},
1814 {"get_all", _on_cmd_get_all},
1815 {"print", _on_cmd_print},
1816 {"get_properties", _on_cmd_get_properties},
1817 {"set_property", _on_cmd_property_set},
1818 {"manager_get", _on_cmd_manager_get},
1819 {"manager_get_profiles", _on_cmd_manager_get_profiles},
1820 {"manager_get_devices", _on_cmd_manager_get_devices},
1821 {"manager_get_services", _on_cmd_manager_get_services},
1822 {"manager_register_agent", _on_cmd_manager_register_agent},
1823 {"manager_unregister_agent", _on_cmd_manager_unregister_agent},
1824 {"manager_get_state", _on_cmd_manager_get_state},
1825 {"manager_get_offline_mode", _on_cmd_manager_get_offline_mode},
1826 {"manager_set_offline_mode", _on_cmd_manager_set_offline_mode},
1827 {"manager_request_scan", _on_cmd_manager_request_scan},
1828 {"manager_technology_enable", _on_cmd_manager_technology_enable},
1829 {"manager_technology_disable", _on_cmd_manager_technology_disable},
1830 {"manager_profile_remove", _on_cmd_manager_profile_remove},
1831 {"manager_profile_get_active", _on_cmd_manager_profile_get_active},
1832 {"manager_profile_set_active", _on_cmd_manager_profile_set_active},
1833 {"device_propose_scan", _on_cmd_device_propose_scan},
1834 {"device_get_address", _on_cmd_device_get_address},
1835 {"device_get_name", _on_cmd_device_get_name},
1836 {"device_get_type", _on_cmd_device_get_type},
1837 {"device_get_interface", _on_cmd_device_get_interface},
1838 {"device_get_powered", _on_cmd_device_get_powered},
1839 {"device_set_powered", _on_cmd_device_set_powered},
1840 {"device_get_scan_interval", _on_cmd_device_get_scan_interval},
1841 {"device_set_scan_interval", _on_cmd_device_set_scan_interval},
1842 {"device_get_scanning", _on_cmd_device_get_scanning},
1843 {"device_get_networks", _on_cmd_device_get_networks},
1844 {"profile_get_name", _on_cmd_profile_get_name},
1845 {"profile_set_name", _on_cmd_profile_set_name},
1846 {"profile_get_offline_mode", _on_cmd_profile_get_offline_mode},
1847 {"profile_set_offline_mode", _on_cmd_profile_set_offline_mode},
1848 {"profile_get_services", _on_cmd_profile_get_services},
1849 {"network_get_address", _on_cmd_network_get_address},
1850 {"network_get_name", _on_cmd_network_get_name},
1851 {"network_get_connected", _on_cmd_network_get_connected},
1852 {"network_get_strength", _on_cmd_network_get_strength},
1853 {"network_get_frequency", _on_cmd_network_get_frequency},
1854 {"network_get_device", _on_cmd_network_get_device},
1855 {"network_get_wifi_ssid", _on_cmd_network_get_wifi_ssid},
1856 {"network_get_wifi_mode", _on_cmd_network_get_wifi_mode},
1857 {"network_get_wifi_security", _on_cmd_network_get_wifi_security},
1858 {"network_get_wifi_passphrase", _on_cmd_network_get_wifi_passphrase},
1859 {"network_get_wifi_channel", _on_cmd_network_get_wifi_channel},
1860 {"network_get_wifi_eap", _on_cmd_network_get_wifi_eap},
1861 {"service_connect", _on_cmd_service_connect},
1862 {"service_disconnect", _on_cmd_service_disconnect},
1863 {"service_remove", _on_cmd_service_remove},
1864 {"service_move_before", _on_cmd_service_move_before},
1865 {"service_move_after", _on_cmd_service_move_after},
1866 {"service_get_state", _on_cmd_service_get_state},
1867 {"service_get_error", _on_cmd_service_get_error},
1868 {"service_get_name", _on_cmd_service_get_name},
1869 {"service_get_type", _on_cmd_service_get_type},
1870 {"service_get_mode", _on_cmd_service_get_mode},
1871 {"service_get_security", _on_cmd_service_get_security},
1872 {"service_get_passphrase", _on_cmd_service_get_passphrase},
1873 {"service_set_passphrase", _on_cmd_service_set_passphrase},
1874 {"service_get_passphrase_required", _on_cmd_service_get_passphrase_required},
1875 {"service_get_strength", _on_cmd_service_get_strength},
1876 {"service_get_favorite", _on_cmd_service_get_favorite},
1877 {"service_get_immutable", _on_cmd_service_get_immutable},
1878 {"service_get_auto_connect", _on_cmd_service_get_auto_connect},
1879 {"service_set_auto_connect", _on_cmd_service_set_auto_connect},
1880 {"service_get_setup_required", _on_cmd_service_get_setup_required},
1881 {"service_get_apn", _on_cmd_service_get_apn},
1882 {"service_set_apn", _on_cmd_service_set_apn},
1883 {"service_get_mcc", _on_cmd_service_get_mcc},
1884 {"service_get_mnc", _on_cmd_service_get_mnc},
1885 {"service_get_roaming", _on_cmd_service_get_roaming},
1886 {"service_get_ipv4_method", _on_cmd_service_get_ipv4_method},
1887 {"service_get_ipv4_address", _on_cmd_service_get_ipv4_address},
1892 if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_ERROR))
1894 fputs("ERROR: reading from stdin, exit\n", stderr);
1898 if (!ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ))
1900 fputs("ERROR: nothing to read?\n", stderr);
1904 if (!fgets(buf, sizeof(buf), stdin))
1906 fprintf(stderr, "ERROR: could not read command: %s\n", strerror(errno));
1907 ecore_main_loop_quit();
1912 while (isspace(*cmd))
1915 args = strchr(cmd, ' ');
1923 while (isspace(*args))
1926 p = args + strlen(args) - 1;
1934 p = cmd + strlen(cmd) - 1;
1939 if (strcmp(cmd, "help") == 0)
1943 printf("Commands with '%s' in the name:\n", args);
1944 for (itr = maps; itr->cmd != NULL; itr++)
1945 if (strstr(itr->cmd, args))
1946 printf("\t%s\n", itr->cmd);
1950 fputs("Commands:\n", stdout);
1951 for (itr = maps; itr->cmd != NULL; itr++)
1952 printf("\t%s\n", itr->cmd);
1954 fputc('\n', stdout);
1958 for (itr = maps; itr->cmd != NULL; itr++)
1959 if (strcmp(itr->cmd, cmd) == 0)
1960 return itr->cb(cmd, args);
1962 printf("unknown command \"%s\", args=%s\n", cmd, args);
1967 main(int argc, char *argv[])
1969 E_DBus_Connection *c;
1975 c = e_dbus_bus_get(DBUS_BUS_SYSTEM);
1977 printf("ERROR: can't connect to system session\n");
1981 e_connman_system_init(c);
1982 ecore_event_handler_add(E_CONNMAN_EVENT_ELEMENT_ADD, _on_element_add, NULL);
1983 ecore_event_handler_add(E_CONNMAN_EVENT_ELEMENT_DEL, _on_element_del, NULL);
1984 ecore_event_handler_add(E_CONNMAN_EVENT_ELEMENT_UPDATED,
1985 _on_element_updated, NULL);
1987 ecore_main_fd_handler_add
1988 (0, ECORE_FD_READ | ECORE_FD_ERROR, _on_input, NULL, NULL, NULL);
1990 ecore_main_loop_begin();
1992 e_connman_system_shutdown();
1994 e_dbus_connection_close(c);
1999 fputs("DBG: clean exit.\n", stderr);