summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
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
2013-04-18dbus: Add connman_dbus_get_connnection_unix_user()Daniel Wagner1-0/+93
The UID is fetched via org.freedesktop.DBus.GetConnectionUnixUser D-Bus method call.
2013-04-18dbus: Refactor callback helper structDaniel Wagner1-7/+8
The helper struct will be used by a new dbus function which uses a different callback signature. Therefore, we need to use a void pointer for storing the callback.
2013-04-18session: Do not fail when creating default policy configurationDaniel Wagner1-13/+3
Do not handle the small alloc failures because glib will abort when memory is tight anyway.
2013-04-18session: Change to "func_t" postfix to callback typedefDaniel Wagner1-3/+3
Streamline the callback typedefs with the rest of the code.
2013-04-18session: Empty policy list indicated no match allDaniel Wagner1-1/+1
Match all is expressed via CONNMAN_SERVICE_TYPE_UNKNOWN. An empty list means no match.
2013-04-18session: Do not try to access already removed hashDaniel Wagner1-0/+3
Make sure we never try to cleanup when the hash table has been destroyed. In this case all resources have been freed already.
2013-04-18session: Reorder shutdown sequenceDaniel Wagner1-1/+1
By calling __connman_session_cleanup() before __connman_plugin_cleanup() we make sure all resources allocated can released in the correct order. The code assumes after an successful allocation, free will always work and therefore we double free allocated memory.
2013-04-13service: Set state properly after disconnecting the associating serviceJukka Rissanen1-1/+3
This is related to fix d7d8f8bdb7c1ddae098893e10608fcb42034a9ff We did not set the state to idle after disconnecting the associating service. Fixes BMC#25981