Commit Graph

2706 Commits

Author SHA1 Message Date
Richard Röjfors 88ee0123ab gprs: Do not detach when running LTE and GPRS is unavailable.
There are cases where the gprs status might updated to for instance
"unknown" while LTE is the bearer.
In that case we should not set the attach state to FALSE,
since then running LTE the conext activation reflects the attached
state.
2019-08-12 15:45:40 -05:00
Richard Röjfors 5752702cbe gprs: Do not leak CID on failure to assign context 2019-08-07 17:10:17 -05:00
Richard Röjfors d4ced627e0 gprs: Use -1 as netreg status during init.
Previously the valid "unknown" netreg status was set
during startup, but its a bit problematic for gprs.
There might be cases where a LTE context is activated
before netreg is finished updating its status.
Resulting in gprs taking faulty actions.
Instead we set the status to -1 until we are updated
with a known value.
During the time the status is -1, gprs postpones actions until
the status is valid (>= 0).
2019-08-07 16:54:25 -05:00
Antara Borwankar 90c312484f netmon: adding get functionality for neighbouring cell information
Handled the get neighbouring cell information function which returns
an array of signal strength of all neighbouring cells.
2019-06-07 11:40:59 -05:00
Denis Kenzior 765c6655f2 treewide: Use L_TFR macro 2019-05-24 11:55:38 -05:00
Denis Kenzior 48e31f9fc3 main: Quiet ld errors with external ell
When oFono is built with --enable-external-ell, the compiler for some
reason does not generate a debug section on some systems.  This is due
to the fact that l_debug is never called.  However, ell also does not
call l_debug, yet when built-in ell is used, the section is created by
the compiler.

For now work around this by adding a no-op l_debug() call in main.c.
The real fix is to migrate all of the oFono logging functionality to use
ell instead.
2019-05-16 15:10:53 -05:00
Denis Kenzior 5d3640397a core: Quiet warning about strncpy use 2019-05-16 15:10:40 -05:00
Antara Borwankar 0c2f2815ca radio-settings: handling of dual mode technology preference
Handled two new dual mode technology preferences
"umts,gsm" and "lte,umts".
2019-05-16 10:40:45 -05:00
Denis Kenzior dc7fb359cb voicecall: Fix possible crash 2019-04-30 11:40:17 -05:00
Denis Kenzior 408d063f85 netmon: Fix logic error 2019-04-30 11:38:36 -05:00
Denis Kenzior 614ffb0761 sim-auth: Use memcpy instead of strncpy
The code is not really copying strings but 2 or 3 character sof the MNC.
Make this clearer.
2019-04-30 11:09:52 -05:00
Denis Kenzior d3625f8e6f message-waiting: Fix logic error 2019-04-29 19:38:12 -05:00
Denis Kenzior ca9d5b73ab gprs: Remove unneeded if conditions
ctx->message_center and ctx->message_proxy are arrays and thus
always evaluate as true
2019-04-29 19:30:22 -05:00
Denis Kenzior c56bd74cb1 gprs: Fix invalid string comparison
The default context created when provisioning fails is simply a context
with an empty APN
2019-04-29 19:27:29 -05:00
Denis Kenzior 91253a1ade gprs: Remove unneeded if statement
if (ctx->message_proxy) always resolves to TRUE
2019-04-29 19:25:57 -05:00
Denis Kenzior 87932a536f stk: Fix potential buffer overrun 2019-04-29 19:24:19 -05:00
Denis Kenzior bdda846134 phonebook: fix invalid sprintf sequence 2019-04-29 19:16:07 -05:00
Denis Kenzior a63988a33f stkutil: Call va_end on failure 2019-04-29 14:34:00 -05:00
Denis Kenzior 999494624b siri: Dereference after validating !NULL 2019-04-29 14:27:54 -05:00
Denis Kenzior 1c940839bb handsfree: Dereference after validating !NULL 2019-04-29 14:26:43 -05:00
Denis Kenzior 4fddd1a6ea sim: Dereference only after validating !NULL 2019-04-29 14:24:48 -05:00
Denis Kenzior 4a93c329b9 log: Fix potential buffer overflow
We pass in the maximum size of the buffer to the read system call.  On
the astronomically unlikely chance that we indeed read the full buffer
full of data, the subsequent assignment will overflow it.  Fix this by
passing sizeof(buf) - 1 to the read system call instead.
2019-04-29 14:16:17 -05:00
Alexander Couzens d604052cef gprs: netreg_status_changed: output the status as human readable string 2019-04-28 10:13:51 -05:00
Alexander Couzens 13181d1a01 network: debug log the network time on update 2019-04-28 10:13:07 -05:00
Alexander Couzens c508574f68 network/ofono_netreg_status_notify: debug log the lac and ci 2019-04-28 10:13:07 -05:00
Richard Röjfors 05aaab72ae gprs: Always store RoamingAllowed as a boolean.
In one instance it was stored as boolean and another as int.
Since its always parsed as a boolean and it is a boolean,
always store it as boolean.
2019-04-16 11:46:00 -05:00
Richard Röjfors b9fdba531f gprs: Fix allocation of context id read from settings
This fix is similar to the one in the following commit,
but fixes allocation for context ids after ap's are
read from settings.

commit c3fdf6a7c5
Author: Denis Kenzior <denkenz@gmail.com>
Date:   Thu Jan 3 17:17:21 2019 -0600

    gprs: Fix allocation of context id
2019-04-02 10:41:16 -05:00
Antara Borwankar d10a2490b1 sim: added error handling in set slot callback
Adding the handling of error when the driver returns
CME ERROR:4.

This error will be returned for non xmm vendor modems
using ifxmodem driver for sim.
2019-04-02 10:27:07 -05:00
Denis Kenzior c5cb6f7a3c sim: Initialize card_slot_count and active_card_slot
Initialize both to 1 so that SimManager does not erroneously show
ActiveCardSlot as 0 for drivers that do not (yet) setup these values.
2019-03-28 21:08:02 -05:00
Denis Kenzior ab4e5d0852 sim: Emit PropertyChanged for ActiveCardSlot changes 2019-03-28 21:08:02 -05:00
Antara Borwankar 693396da22 sim: handling of dual sim single active feature
Added implementation for handling CardSlotCount and ActiveCardSlot
properties for DSSA use case.
2019-03-28 21:08:02 -05:00
Anirudh Gargi e54ac6bcd4 sim: fix segfault in sim atom
While adding the sim pin cache feature, pin_name could cause issue in
cases when sim pin is not there.

log:
ofonod[27810]: drivers/atmodem/sim.c:at_cpin_cb() crsm_pin_cb: READY
ofonod[27810]: src/sim.c:sim_pin_query_cb() sim->pin_type: 0, pin_type: 0
ofonod[27810]: Aborting (signal 11) [./src/ofonod]
ofonod[27810]: ++++++++ backtrace ++++++++
ofonod[27810]: #0  0x7fb7a7586cb0 in /lib/x86_64-linux-gnu/libc.so.6
ofonod[27810]: #1  0x7fb7a7693cd8 in /lib/x86_64-linux-gnu/libc.so.6
ofonod[27810]: #2  0x4d899b in sim_pin_query_cb() at src/sim.c:3174
ofonod[27810]: #3  0x4649e7 in at_cpin_cb() at drivers/atmodem/sim.c:1304
ofonod[27810]: #4  0x4a5d70 in at_chat_finish_command() at gatchat/gatchat.c:462
2019-03-07 10:24:54 -06:00
Antara Borwankar 608c683250 gprs-context: Adding get function for inteface
Added definition of get function to get interface value in
gprs-context
2019-02-21 11:00:04 -06:00
Philippe De Swert 45efc2354e common: Add new NB-IoT technologies
Add lte-cat-m1 and lte-cat-nb1 technology identifiers.
2019-02-17 21:18:54 -06:00
Denis Kenzior 13c0e25eb2 gprs: Let gprs_context interface be settable once
This patch allows a driver to set the interface only once, instead of at
every context activation.  The previous way was originally designed for
PPP and RAW_IP based contexts which would have a (potentially)
differently named interface after each context activation due to use of
TUN/TAP.  This also worked for static high-speed interface setups as
well, since these usually had a single interface only.

For devices that support multiple high-speed interfaces it would be
advantageous to have each gprs_context get an interface assignment right
in the modem driver and skip having to setup the interface on every
activation.
2019-02-11 17:51:16 -06:00
Nandini Rebello 55e5a766f2 modem: add support to clear cached pins.
If the modem is powered off via D-Bus, clear any cached PINs to make
sure that automatic PIN entry behavior is not activated.
2019-01-23 17:49:53 -06:00
Denis Kenzior 3152c59455 sim: Fix memory leaks introduced by sim pin caching 2019-01-23 17:49:49 -06:00
Nandini Rebello f36d6d05cc sim: Sim PIN1 cache upon modem reset/crash
Adding SIM PIN caching feature to oFono. oFono now caches the SIM PIN1
type against the ICCID throughout its lifetime in a link list and
enters implicitly upon modem reset/crash.

Note, that this behavior can violate 3GPP spec 21.111, section 5.3 -
User Data stored in ME if that section is interpreted very strictly.
However, our interpretation is that firmware resets are allowed, based
on historic precedent.  Helps in user experience by not barring out
cellular services unless pin is entered manually.

Handles cases of incorrect pin and sim pin changed externally.
Clear cached PIN incase modem disabled manually and selectively when
sim is removed.

Seperate 'pin_cache_enter_cb' added without dbus calls to handle
implict entering of cached pin.

For now this behavior is applicable to all modems by default.  In the
future it may be needed to make this behavior opt in or otherwise
configurable.
2019-01-23 17:44:31 -06:00
Denis Kenzior dbc314ebc4 stkutil: Fix ofono_bool_t usage
The actual datatype is bool
2019-01-18 08:55:52 -06:00
Denis Kenzior c3fdf6a7c5 gprs: Fix allocation of context id
After the convertion to l_uintset, the creation of new contexts fails
due to a range error being returned from l_uintset_find_unused().

The error happens because the uinset is created with a min-value of 1,
but the start-value passed to l_uintset_find_unused() is initialized as
0.

Reported-by: Martin Hundebøll <martin@geanix.com>
2019-01-03 17:17:21 -06:00
Denis Kenzior 9601ff5331 stkutil: Use standard types 2018-12-29 15:26:37 -06:00
Denis Kenzior 27c9952f86 stkutil: Convert away from glib datatypes 2018-12-29 14:14:51 -06:00
Denis Kenzior c3d5ccbe53 stkutil: Use l_queue instead of GSList 2018-12-28 18:12:21 -06:00
Denis Kenzior 22002d142c stkutil: Use l_queue instead of GSList 2018-12-28 13:48:34 -06:00
Denis Kenzior 4927905db4 stkagent: Use bool instead of gboolean / ofono_bool_t 2018-12-28 13:47:41 -06:00
Denis Kenzior caeb1650a1 util: Remove last glib uses 2018-12-27 18:18:51 -06:00
Denis Kenzior 9d18385e5f util: Remove encode_hex 2018-12-27 18:18:51 -06:00
Denis Kenzior d793b291b3 util: Remove decode_hex 2018-12-27 18:18:51 -06:00
Denis Kenzior f7d8edeaac stkutil: Convert stk_image_to_xpm to ell 2018-12-27 18:18:51 -06:00
Denis Kenzior 1d08969613 stkutil: Convert stk_text_to_html to use ell 2018-12-27 18:18:51 -06:00