path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2014-07-17Imported Upstream version 1.24upstream/1.24Zhang zhengguang59-5911/+10209
2013-06-12dhcpv6: Send domain list option to serverJukka Rissanen1-12/+18
OPTION_DOMAIN_LIST(24) was not sent to server.
2013-06-12ippool: Clear allocated block pointer at cleanupJukka Rissanen1-0/+1
Without this the unit tests might core dump as the allocated_block pointer would point to already freed memory.
2013-06-12ippool: Private address check was incorrectJukka Rissanen1-13/+5
Fixes BMC#25993
2013-06-10service: Send proxy properties when connected or disconnectedJukka Rissanen1-0/+2
Fixes BMC#26019
2013-06-10technology: Offlinemode could not be disabled if no technology was poweredJukka Rissanen1-5/+9
If all the technologies were powered off, then offline mode could not be disabled. Fixes BMC#26018
2013-06-10service: Use GList instead of GSequence for service listDaniel Wagner1-186/+116
The hash table is now the owner of the service entry instead of the service list.
2013-06-10session: Use GList instead of GSequence for service listDaniel Wagner1-53/+41
The hash table is now the owner of the service entry instead of the service list.
2013-06-10session: Use service iterator instead of match/creation callbacksDaniel Wagner3-36/+28
When a new session is created we need to get the initial list of services which match the session AllowedBearers criteria. As soon the session is running add or removed services are tracked via the notifier interface. We concluded that exposing all the services is not really necessary and therefore we are using currently two callbacks to get the initial list. That exposes implementation details from session to service, that is GSequence. We also need to expose the type 'struct service_entry'. Instead doing so we are using an iterator and keep all the implementation details in session.c.
2013-06-10service: Initialize tech_dataDaniel Wagner1-1/+1
tech_data is allocated on the stack and is therefore not initilized with NULL.
2013-06-04dhcpv6: Make sure release message is sentJukka Rissanen1-2/+11
Register an empty Release callback so that the message will be sent.
2013-05-31session: Add session identification method to configDaniel Wagner1-0/+4
The session core needs to the know which kind of session identification method has been selected in the plugin in order to use the right iptables rules etc.
2013-05-31session: Do not access stale entry pointersDaniel Wagner1-3/+16
When removing the entry clear all references towards it.
2013-05-31session: Add session argument to create_service_entry_cbDaniel Wagner3-4/+9
Remember which session this struct service_entry belongs to when removing the entries again.
2013-05-31timeserver: Periodically wake up to recheck timeserversPatrik Flykt1-10/+72
The current situation is that a failed timeserver name resolution removes the timeserver immediately from the list of used timeservers and failing to connect to the nameserver IP address removes the timeserver after a 2 second delay. Currently no mechanism exists to re-create the list of nameservers once the list has been exhausted or the more preferred timeservers have been removed from it. This implementation combats both problems where less used timeservers further away end up being used despite a more optimal closer one becoming available as well as the problem of exhausting the nameserver list. This is done by periodially waking up and checking the timeserver in use. If the timeserver in use is not the most preferred one or the list of timeservers is empty, the timeserver list is recreated and the timeserver polling procedure is restarted.
2013-05-31iptables: Fix memory leak when invoking xtables_find_matchDaniel Wagner1-12/+34
xtables_find_match() returns two different kind of pointers. The first type is pointing to the function pointer table loaded via dlopen(). The second type is a copy (via plain malloc) of the first type. xtables_find_match() marks the copies/clones with m == m->next. So we need to free the struct xtables_match which point back to themself. Also fix the issue that we didn't handle multple match instances at the same time. The memory leak is only visible when having more than one match of a kind.
2013-05-30config: Remove code implementing Protected config file settingPatrik Flykt1-54/+0
The code was relevant only for Manager.ProvisionService method call which was removed a long time ago.
2013-05-29service: Update Domains property when Domains.Configuration changesPatrik Flykt1-0/+1
Domains property was not updated when Domains.Configuration was changed. If Domains.Configuration is for example set to empty when using DHCP, the Domains property is to be updated with the value configured via DHCP. Fixes BMC#26010
2013-05-29service: Check service type before fetching interface indexPatrik Flykt1-1/+4
For VPNs, the index is available from provider, for other services from network. Fixes BMC#26009
2013-05-24ipconfig: Use system set addresses for IPv4 property in 'manual' modePatrik Flykt1-1/+1
Addresses and gateway for the service IPv4 property being used in the system are available from ipconfig->system when the property is set to 'manual'.
2013-05-22session: Fix service2bearer to return a correct match all ruleDaniel Wagner1-0/+1
2013-05-21service: Restart timeserver polling only for the default servicePatrik Flykt1-1/+3
When timeservers are set, recreate timeserver polling list only if the service is the the default one.
2013-05-20clock: Implement load and save for Clock API propertiesPatrik Flykt1-0/+62
Load and save TimeUpdates and TimezoneUpdates Clock API properties. Clock API Timeservers property is already handled by the timeserver code. Fixes BMC#25988
2013-05-20timeserver: Check the time update methodPatrik Flykt1-0/+3
If the time update method is manual, no NTP time servers are returned.
2013-05-20clock: Export information about time update methodPatrik Flykt2-6/+12
2013-05-12shared: Add helper for looking up debugfs mount pointMarcel Holtmann2-0/+90
2013-05-06dhcpv6: Implement CONFIRM message supportJukka Rissanen1-6/+175
See RFC 3315 Chapter 18.1.2. Creation and Transmission of Confirm Messages for details
2013-05-06dhcpv6: Remember the last used IPv6 addressJukka Rissanen1-0/+3
This is required so that we can decide whether to send CONFIRM or SOLICITATION message to server.
2013-05-06ipconfig: Save last used DHCPv6 addressJukka Rissanen1-0/+9
This is needed when implementing CONFIRM message decision logic.
2013-05-06dhcpv6: Added initial MRD supportJukka Rissanen1-0/+6
MRD (Maximum Retransmission Duration) is the total duration of of retransmission of the message. This will be used when sending Confirm message.
2013-05-06main: Rename AllowedTetheringTechnologies to TetheringTechnologiesPatrik Flykt3-15/+17
2013-04-30technology: Disable tethering when device disappearsJukka Rissanen1-0/+4
If tethering is active when device is removed, then shutdown tethering cleanly so that tether interface and bridge are properly removed.
2013-04-30dnsproxy: Do not unref g_io_channel if we know it is nullJukka Rissanen1-4/+8
Currently tethering does not support IPv6 so its listener is not created and is null. This will cause following output connmand[18363]: src/dnsproxy.c:destroy_tcp_listener() index 31 (connmand:18363): GLib-CRITICAL **: g_io_channel_unref: assertion `channel != NULL' failed connmand[18363]: src/dnsproxy.c:destroy_udp_listener() index 31 (connmand:18363): GLib-CRITICAL **: g_io_channel_unref: assertion `channel != NULL' failed
2013-04-28core: Print timezone information if available from serverMarcel Holtmann1-0/+4
2013-04-26dnsproxy: Conditional jump depends on uninitialized valueJukka Rissanen1-1/+1
This came from Daniel when running ConnMan using valgrind ==20635== Conditional jump or move depends on uninitialised value(s) ==20635== at 0x49ECF4: get_name (dnsproxy.c:867) ==20635== by 0x49F3F7: parse_response (dnsproxy.c:1096) ==20635== by 0x49FD40: cache_update (dnsproxy.c:1410) ==20635== by 0x4A0FF3: forward_dns_reply (dnsproxy.c:1803) ==20635== by 0x4A15D9: udp_server_event (dnsproxy.c:1912) ==20635== by 0x3331E47A54: g_main_context_dispatch (gmain.c:2715) ==20635== by 0x3331E47D87: g_main_context_iterate.isra.24 (gmain.c:3290) ==20635== by 0x3331E48181: g_main_loop_run (gmain.c:3484) ==20635== by 0x44B600: main (main.c:670)
2013-04-26dhcpv6: Fix memory leakJukka Rissanen1-0/+2
The received IP address was not freed.
2013-04-26dhcpv6: Retransmit a message with same transaction idJukka Rissanen1-0/+20
Make sure we do not create a new transaction id for a message when it needs to be retransmitted.
2013-04-26network: Replace connman_uint16_t with uint16_tPatrik Flykt1-5/+5
2013-04-26network: Replace connman_uint8_t with uint8_tPatrik Flykt1-3/+3
2013-04-26service: Replace connman_uint8_t with uint8_tPatrik Flykt1-3/+4
2013-04-26tethering: Use fallback nameservers if dnsproxy is not in useJukka Rissanen1-10/+37
If user has disabled dnsproxy with -r option, then fallback to user specified nameservers instead of using the Google one.
2013-04-26dnsproxy: Return proper return code if listener_table is missingJukka Rissanen1-1/+1
The listener_table can be NULL if we have started connman with -r option. Because we return < 0 value to caller in this case, the caller, e.g. the tethering code, has a possibility to change its functionality, e.g. the tethering code can fall back to some other DNS servers.
2013-04-26technology: Auto start tethering if enabled and configuredJukka Rissanen1-65/+125
If the user has enabled persistent tethering mode in main.conf, then try to activate tethering when technology is re-enabled, or we are returning from offline mode, or after the device has rebooted.
2013-04-26main: Add support for PersistentTetheringMode configuration variableJukka Rissanen1-0/+15
2013-04-26conf: Add description of PersistentTetheringModeJukka Rissanen1-0/+5
2013-04-26ethernet: Add tethering supportJukka Rissanen1-0/+31
2013-04-26rtnl: Interface was added to technology too earlyJukka Rissanen1-4/+12
The __connman_technology_add_interface() needs to be called after we have created the technology which is done by rtnl->newlink() callback. If this is done the old way, the ethernet devices will not get their interfaces set properly.
2013-04-26device: Add support functions needed by ethernet tetheringJukka Rissanen1-0/+43
2013-04-26main: Add support for AllowedTetheringTechnologies configuration variableJukka Rissanen1-0/+17
2013-04-26conf: Add description of AllowedTetheringTechnologiesJukka Rissanen1-0/+12