{"id":24517491,"url":"https://github.com/futuretea/connman","last_synced_at":"2025-03-15T11:10:10.374Z","repository":{"id":144368144,"uuid":"322774213","full_name":"futuretea/connman","owner":"futuretea","description":"fork connman","archived":false,"fork":false,"pushed_at":"2020-12-19T05:41:08.000Z","size":6130,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-22T01:36:34.261Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/futuretea.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-19T05:28:31.000Z","updated_at":"2020-12-19T05:42:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"84d9b56a-0861-4c3e-9375-6b3350391fd0","html_url":"https://github.com/futuretea/connman","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuretea%2Fconnman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuretea%2Fconnman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuretea%2Fconnman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuretea%2Fconnman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/futuretea","download_url":"https://codeload.github.com/futuretea/connman/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243719399,"owners_count":20336607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-22T01:34:11.753Z","updated_at":"2025-03-15T11:10:10.369Z","avatar_url":"https://github.com/futuretea.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Connection Manager\n******************\n\nCopyright (C) 2007-2012  Intel Corporation. All rights reserved.\n\n\nFunctionality and features\n==========================\n\nThe following features are built-in into Connection Manager:\n\t- Generic plugin infrastructure\n\t- Device and network abstraction (with basic storage support)\n\t- IPv4, IPv4-LL (link-local) and DHCP\n\t- IPv4 address conflict detection (ACD) according to RFC 5227\n\t- IPv6, DHCPv6 and 6to4 tunnels\n\t- Advanced routing and DNS configuration\n\t- Built-in DNS proxy and intelligent caching\n\t- Built-in WISPr hotspot logins and portal detection\n\t- Time and timezone configuration (manual and automatic with NTP)\n\t- Proxy handling (manual and automatic with WPAD)\n\t- Tethering support (USB, Bluetooth and WiFi AP mode)\n\t- Detailed statistics handling (home and roaming)\n\nVarious plugins can be enabled for networking support:\n\t- Ethernet plugin\n\t- WiFi plugin with WEP40/WEP128 and WPA/WPA2 (personal and enterprise)\n\t- Bluetooth plugin (using BlueZ)\n\t- 2G/3G/4G plugin (using oFono)\n\nAlso plugins with additional features are available:\n\t- Loopback interface setup\n\t- PACrunner proxy handling\n\t- PolicyKit authorization support\n\nNote that when ConnMan starts, it clears all network interfaces that are\ngoing to be used. If this is not desired, network interfaces can be ignored\neither by setting NetworkInterfaceBlacklist in the main.conf config file or\nby using the -I command line option.\n\n\nCompilation and installation\n============================\n\nIn order to compile Connection Manager you need following software packages:\n\t- GCC compiler\n\t- GLib library\n\t- D-Bus library\n\t- IP-Tables library (for tethering support)\n\t- GnuTLS library (optional)\n\t- PolicyKit (optional)\n\t- readline (command line client)\n\nTo configure run:\n\t./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var\n\nConfigure automatically searches for all required components and packages.\n\nTo compile and install run:\n\tmake \u0026\u0026 make install\n\n\nConfiguration and options\n=========================\n\nFor a working system, certain configuration options need to be enabled:\n\n\t--disable-ethernet\n\n\t\tDisable support for Ethernet network cards\n\n\t\tBy default Ethernet technology support is built-in and\n\t\tenabled. This option can be used to build a small daemon\n\t\tfor a specific system if Ethernet support is not required.\n\n\t--disable-gadget\n\n\t\tDisable support for USB Ethernet Gadget devices\n\n\t\tBy default USB Ethernet Gadget technology support is built-in and\n\t\tenabled. This option can be used to build a small daemon\n\t\tfor a specific system if USB Ethernet Gadget support is not required.\n\n\t--disable-wifi\n\n\t\tDisable support for WiFi devices\n\n\t\tBy default WiFi technology support is built-in and\n\t\tenabled. This option can be used to build a small daemon\n\t\tfor a specific system if WiFi support is not required.\n\n\t\tIt is safe to build a daemon with WiFi support and no\n\t\trunning wpa_supplicant. The start of wpa_supplicant is\n\t\tautomatically detected and only a runtime dependency. It\n\t\tis not needed to build ConnMan.\n\n\t--disable-bluetooth\n\n\t\tDisable support for Bluetooth devices\n\n\t\tBy default Bluetooth technology support is built-in and\n\t\tenabled. This option can be used to build a small daemon\n\t\tfor a specific system if Bluetooth support is not required.\n\n\t\tIt is safe to build a daemon with Bluetooth support and no\n\t\trunning bluetoothd. The start of bluetoothd is automatically\n\t\tdetected and only a runtime dependency. It is not needed to\n\t\tbuild ConnMan.\n\n\t--disable-ofono\n\n\t\tDisable support for cellular 2G/3G/4G devices\n\n\t\tBy default oFono technology support is built-in and\n\t\tenabled. This option can be used to build a small daemon\n\t\tfor a specific system where oFono is not used.\n\n\t\tIt is safe to build a daemon with oFono support and no\n\t\trunning ofonod. That start of ofonod is automatically\n\t\tdetected and only a runtime dependency. It is not needed to\n\t\tbuild ConnMan.\n\n\t--disable-dundee\n\n\t\tDisable support for Bluetooth DUN devices\n\n\t\tBy default Bluetooth DUN technology (dundee) support is\n\t\tbuilt-in and enabled. This option can be used to build a\n\t\tsmall daemon for a specific system where dundee is not used.\n\n\t\tIt is safe to build a daemon with dundee support and no\n\t\trunning dundee. That start of dundee is automatically\n\t\tdetected and only a runtime dependency. It is not needed to\n\t\tbuild ConnMan.\n\n\t--enable-iwd\n\n\t\tEnable support for Wireless daemon for Linux\n\n\t\tThe IWD project does not have initial release so far,\n\t\ttherefore by default IWD support is not enabled.\n\n\t\tIt is safe to enable this option along WiFi support.\n\n\t--disable-pacrunner\n\n\t\tDisable support for PACrunner proxy handling\n\n\t\tBy default PACrunner support is built-in and enabled. This\n\t\toption can be used to build a small daemon for a specific\n\t\tsystem where PACrunner is not used.\n\n\t\tIt is safe to build a daemon with PACrunner support and no\n\t\tpacrunner daemon. It will detect and start a PACrunner\n\t\tprocess if needed at runtime. The presence is not needed\n\t\tto build ConnMan.\n\n\t--disable-loopback\n\n\t\tDisable setup of loopback device\n\n\t\tFor distributions with a really minimal init system and no\n\t\tnetworking scripts this can take care of setting up the\n\t\tloopback device and enabling it.\n\n\t\tIt is safe to leave this selected even if networking\n\t\tscripts are in place. It detects an already configured\n\t\tloopback device and leaves it as it is.\n\n\t--disable-wispr\n\n\t\tDisable support for WISPr hotspot logins\n\n\t\tFor systems with really minimal memory requirements, this\n\t\twill disable the support for WISPr hotspot logins. The code\n\t\tfor WISPr will be still compiled into the daemon, but its\n\t\trequirement on GnuTLS for secure connections will be lifted.\n\n\t\tThe missing GnuTLS support shrinks the memory requirements\n\t\tby about 30% and for systems that are more stationary and do\n\t\tnot log into hotspots this might be a better trade off.\n\n\t\tDisabling WISPr support is not disabling the portal detection\n\t\tsupport. A portal will still be detected, but instead of being\n\t\tasked for login credentials, the request for a browser session\n\t\twill be made through the agent.\n\n\t--enable-polkit\n\n\t\tEnable support for PolicyKit authorization\n\n\t\tThis allows to check every D-Bus access against a security\n\t\tpolicy and so restrict access to certain functionality.\n\n\t--enable-nmcompat\n\n\t\tEnable support for NetworkManager compatibility interfaces\n\n\t\tThis allows to expose a minimal set of NetworkManager\n\t\tinterfaces. It is useful for systems with applications\n\t\twritten to use NetworkManager to detect online/offline\n\t\tstatus and have not yet been converted to use ConnMan.\n\n\t--disable-client\n\n\t\tDisable support for the command line client\n\n\t\tBy default the command line client is enabled and uses the\n\t\treadline library. For specific systems where ConnMan is\n\t\tconfigured by other means, the command line client can be\n\t\tdisabled and the dependency on readline is removed.\n\n\t--enable-selinux\n\n\t\tEnable support for compiling SElinux type enforcement rules\n\n\t\tThe TE rules are needed if host environment is in enforcing\n\t\tmode. Without this option, the VPN client process cannot\n\t\tsend notification to connman-vpnd via net.connman.Task\n\t\tinterface. The compiled connman-task.pp module needs to\n\t\talso installed using this command\n\t\t\t# semodule -i connman-task.pp\n\t\tin order to enable the dbus access.\n\n    --with-dns-backend=TYPE\n\n\t\tEnable support for a DNS resolving backend\n\n\t\tSelect a DNS backend to use. Supported values are \"internal\"\n\t\tand \"systemd-resolved\". If \"internal\" is selected, ConnMan\n\t\twill be build with a caching DNS proxy. If \"systemd-resolved\"\n\t\tis selected, ConnMan configures systemd-resolved to do DNS\n\t\tresolving. The default value is \"internal\".\n\n\nActivating debugging\n====================\n\nOne can activate debugging prints in ConnMan using -d command line option.\nIf the -d option has no parameters, then debugging is activated for all\nsource code files. If the -d option has parameters, they tell which source\ncode files have debugging activated. One can use wild cards in file names.\nExample:\n    -d                   Activate all normal debug prints\n    -d src/service.c     This prints debugging info from src/service.c\n                         file only\n    -d src/network.c:src/ipconfig.c\n                         This activates debug prints in src/network.c\n                         and src/ipconfig.c files.\n    -d 'src/n*.c'        This would activate debug print from all the C source\n                         files starting with letter 'n' in src directory.\n                         Note the quotation marks around option, that is to\n                         prevent shell expansion.\n    -d '*/n*.c:*/i*.c'   Activate debug prints for all C source files starting\n                         with letters 'n' or 'i' in any sub-directory.\n\nSome components of ConnMan have environment variable activated debug prints.\nIf the environment variable is set, then corresponding component will print\nsome extra debugging information.\nFollowing environment variables can be used:\n    CONNMAN_DHCP_DEBUG        DHCPv4 related debug information\n    CONNMAN_DHCPV6_DEBUG      DHCPv6 related debug information\n    CONNMAN_IPTABLES_DEBUG    Extra information when iptables is used\n    CONNMAN_RESOLV_DEBUG      Name resolver debug prints. These debug prints\n                              are used when ConnMan resolves host names for\n                              its own use.\n                              Note that the DNS proxy debug prints do not\n                              use this environment variable. For that, one\n                              can use \"-d src/dnsproxy.c\" command line option.\n    CONNMAN_SUPPLICANT_DEBUG  Debugging prints for communication between\n                              connmand and wpa_supplicant processes.\n    CONNMAN_WEB_DEBUG         Debug information when ConnMan does Internet\n                              connectivity check in Wispr and 6to4 components.\n\nExample:\n    CONNMAN_WEB_DEBUG=1 src/connmand -n\n\nIf timing conditions are relevant then it is recommended command to\nget log traces as follows:\n    connmand -d 2\u003e\u00261 | ts '[%H:%M:%.S]' | tee connman.log\n\nThe 'ts' program is normally available in the moreutils package.\n\n\nKernel configuration\n====================\n\nIn order to support tethering, the following kernel configuration options\nneed to be enabled either as modules (m) or builtin (y):\n\nCONFIG_BRIDGE\nCONFIG_IP_NF_TARGET_MASQUERADE\n\nIn order to enable CONFIG_IP_NF_TARGET_MASQUERADE, the following options need\nto be enabled also as modules (m) or builtin (y):\n\nCONFIG_NETFILTER\nCONFIG_NF_CONNTRACK_IPV4\nCONFIG_NF_NAT_IPV4\n\nFor routing and statistic support in Sessions, the following options\nneed to be enabled as modules (m) or builtin (y):\n\nCONFIG_IP_NF_IPTABLES\nCONFIG_IP_MULTIPLE_TABLES\nCONFIG_NETFILTER_NETLINK_ACCT\nCONFIG_NETFILTER_XT_MATCH_NFACCT\nCONFIG_NETFILTER_XT_CONNMARK\nCONFIG_NETFILTER_XT_TARGET_CONNMARK\nCONFIG_NETFILTER_XT_MATCH_CONNMARK\n\nIn order to support USB gadget tethering, the following kernel configuration\noptions need to be enabled:\n\nCONFIG_USB_GADGET\nCONFIG_USB_ETH\n\n\nwpa_supplicant configuration\n============================\n\nIn order to get wpa_supplicant and Connection Manager working properly\ntogether you should edit wpa_supplicant .config file and set:\n\nCONFIG_WPS=y\nCONFIG_AP=y\nCONFIG_CTRL_IFACE_DBUS_NEW=y\n\nadd:\n\nCONFIG_BGSCAN_SIMPLE=y\n\nThis last option will enable the support of background scanning while being\nconnected, which is necessary when roaming on wifi.\n\nIt is recommended to use wpa_supplicant 2.x or later.\n\nIf wpa_supplicant is configured to D-Bus autostart, then ConnMan will\ntrigger the autostart of wpa_supplicant. However please keep in mind\nthat this trigger only happens once. If wpa_supplicant stops or crashes,\nConnMan does not periodically try to autostart it. It is up to systemd or\nsimilar service management tool to autostart it. In case wpa_supplicant\nis not started by ConnMan then make sure option \"-u\" is used in order\nto enable its D-Bus control interface and ensure ConnMan can communicate\nwith it.\n\n\nVPN\n===\n\nIn order to compile pptp and l2tp VPN plugins, you need ppp development\npackage.\n\nTo run l2tp you will need\n\t- xl2tpd, http://www.xelerance.com/services/software/xl2tpd\n\nTo run pptp you will need\n\t- pptp client, http://pptpclient.sourceforge.net\n\nBoth l2tp and pptp also need pppd.\n\n\nOpenVPN\n=======\n\nUp to version 2.2 of OpenVPN, pushing additional routes from the\nserver will not always work. Some of the symptons are that additional\nroutes will not be set by ConnMan if the uplink is a cellular\nnetwork. While the same setup works well for a WiFi or ethernet\nuplink.\n\nUp to (at least) version 2.4.5 of OpenVPN getting information about\nprivate key decryption failures via management channel is missing. This\nwill result in attempting with the invalid key over and over as the\ninformation about failed decryprion is not delivered to OpenVPN plugin.\nThe following patch to OpenVPN is required for the private key\ndecryption failures to be sent:\nhttps://git.sailfishos.org/mer-core/openvpn/blob/\n4f4b4af116292a207416c8a990392e35a6fc41af/rpm/privatekey-passphrase-\nhandling.diff\n\nGnuTLS\n======\n\nWhen using GnuTLS be aware that depending on the configuration of\nGnuTLS does either an lazy or eager initialization of an internal\nentropy pool using /dev/urandom. On eager initialization the loading\nof ConnMan will be delayed by the link loader until the entropy pool\nis filled. On smaller system this can easily delay the startup of\nConnMan by several seconds (we had reports of 25 seconds and more\ndelay).\n\nGnuTLS allows to switch back to lazy evaluation when the environment\nvariable GNUTLS_NO_EXPLICIT_INIT. For more details please read\nthe man page to gnutls_global_init(3).\n\n\nOnline check\n============\n\nConnMan tries to detect if it has Internet connection or not when\na service is connected. If the online check succeeds the service\nenters Online state, if not it stays in Ready state. The online\ncheck is also used to detect whether ConnMan is behind a captive\nportal like when you are in hotel and need to pay for connectivity.\n\nThe online check is done by trying to fetch status.html document\nfrom ipv4.connman.net (for IPv4 connectivity) and ipv6.connman.net\n(for IPv6 connectivity). The used URL looks like this\nhttp://ipv{4|6}.connman.net/online/status.html\n\nSee connman.conf(5) for the EnableOnlineCheck option, if you need to\ndisable the feature.\n\nDuring the online check procedure, ConnMan will temporarily install\na host route to both the ipv4.connman.net and ipv6.connman.net so that\nthe online check query can be directed via the correct network\ninterface which the connected service is using. This host route is\nautomatically removed when the online check is done. Note that the server\nexpressly does not log any connection information, including IPv4/6\naddresses of connecting clients. The server runtime logs cycle in RAM\nmemory depending on amount of connections processed.\n\nConnMan sends this very minimal information in http header when doing\nthe online check request (example):\n\tHost: ipv4.connman.net\n\tUser-Agent: ConnMan/1.23 wispr\n\tConnection: close\n\nCurrently following information is returned from connman.net if\nthe connection is successful (200 OK http response code is returned):\n\tServer: nginx\n\tDate: Mon, 09 Jun 2014 09:25:42 GMT\n\tContent-Type: text/html\n\tConnection: close\n\tX-ConnMan-Status: online\n\nThe X-ConnMan-Status field is used in portal detection, if it is missing\nConnMan will call RequestBrowser method in net.connman.Agent dbus\ninterface to handle the portal login if the portal does not support WISPr.\nSee doc/agent-api.txt for more details.\n\n\nInformation\n===========\n\nMailing list:\n\tconnman@connman.net\n\nFor additional information about the project visit ConnMan web site:\n\thttps://01.org/connman\n\thttp://www.connman.net\n\nYou can report bugs at https://01.org/jira/browse/CM\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturetea%2Fconnman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuturetea%2Fconnman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturetea%2Fconnman/lists"}