Commit Graph

7297 Commits

Author SHA1 Message Date
Dan Williams
f3d9c35e9b build: fix multiply defined EXTRA_DIST
plugins/Makefile.am:375: warning: EXTRA_DIST multiply defined in condition TRUE ...
gtester.make:6: ... 'EXTRA_DIST' previously defined here
plugins/Makefile.am:1:   'gtester.make' included from here
2013-07-11 09:07:12 -05:00
Aleksander Morgado
0b2e04ed14 huawei: use ^NDISSTATQRY to check for connection status
Patch based on changes from Franko Fang <fangxiaozhi@huawei.com>.
2013-07-11 09:39:21 +02:00
Aleksander Morgado
8d0ec0fc24 huawei: new helper to parse ^NDISSTATQRY responses 2013-07-11 09:39:21 +02:00
Ben Chan
5e82707b3f broadband-modem-qmi: fix incorrect conversions from double to gint32
This patch fixes the following incorrect conversions from double to gint32:

mm-broadband-modem-qmi.c:4785:27: error: implicit conversion from 'double' to 'gint32' (aka 'int')
changes value from 2.225073858507201E-308 to 0 [-Werror,-Wliteral-conversion]
    gint32 bs_longitude = MM_LOCATION_LONGITUDE_UNKNOWN;
           ~~~~~~~~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

mm-broadband-modem-qmi.c:4786:26: error: implicit conversion from 'double' to 'gint32' (aka 'int')
changes value from 2.225073858507201E-308 to 0 [-Werror,-Wliteral-conversion]
    gint32 bs_latitude = MM_LOCATION_LATITUDE_UNKNOWN;
           ~~~~~~~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
2013-07-11 08:33:37 +02:00
Ben Chan
d366b28650 modem-helpers-qmi: fix enumeration type mismatches
This patch fixes the following enumeration type mismatches:

mm-modem-helpers-qmi.c:980:12: error: implicit conversion from
enumeration type 'QmiNasRatModePreference' to different
enumeration type 'QmiNasRadioTechnologyPreference' [-Werror,-Wenum-conversion]
    return qmi;
    ~~~~~~ ^~~

mm-modem-helpers-qmi.c:1082:12: error: implicit conversion from
enumeration type 'MMModemMode' to different
enumeration type 'QmiNasGsmWcdmaAcquisitionOrderPreference' [-Werror,-Wenum-conversion]
    return MM_MODEM_MODE_NONE;
    ~~~~~~ ^~~~~~~~~~~~~~~~~~

mm-modem-helpers-qmi.c:1096:16: error: implicit conversion from
enumeration type 'QmiNasRegistrationState' to different
enumeration type 'MMModem3gppRegistrationState' [-Werror,-Wenum-conversion]
    return QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED;
    ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2013-07-11 07:53:33 +02:00
Dan Williams
8660be8f39 x22x: add support for Olivetti Olicard 200 2013-07-10 10:56:45 -05:00
Aleksander Morgado
1bd60c7dac docs,libmm-glib: update type information 2013-07-08 13:10:51 +02:00
Ben Chan
dd2b467262 serial-port: warn if ioctl(TIOCSSERIAL) fails to set closing_wait
Prints out a warning if ioctl(TIOCSSERIAL) fails to set closing_wait to
none. This helps debug issues when a serial driver does not support or
properly handle closing_wait, which may cause closing of the serial port
to block.
2013-07-08 08:46:21 +02:00
Ben Chan
f0490b4fff altair-lte: support load_power_state in MMIfaceModem
Being able to determine the current power state of the modem is
necessary to ensure reliable modem operations.
2013-07-04 07:27:27 +02:00
Ben Chan
989210bfd8 altair-lte: propagate error when load_{supported,current}_bands fails
This patch fixes a potential crash when
MMIfaceModem::load_current_bands_ready() dereferences a NULL GError
pointer, which happens when the altair-lte plugin fails to load the
current bands but does not propagate the error. It also fixes a similar
issue with the plugin fails to load the supported bands, even though
MMIfaceModem::load_supported_bands_ready() checks for a NULL GError
pointer.
2013-06-28 07:35:59 +02:00
Ben Chan
5be1ce6ee1 novatel-lte: propagate error when load_current_bands fails
This patch fixes the following crash when
MMIfaceModem::load_current_bands_ready() dereferences a NULL GError
pointer, which happens when the novatel-lte plugin fails to load the
current bands but does not propagate the error.

Thread 0 *CRASHED* ( SIGSEGV @ 0x00000000 )

0x7f04d6c89c36   [ModemManager]            - mm-iface-modem.c:3886      load_current_bands_ready
0x7f04d6942236   [libgio-2.0.so.0.3200.4]  - gsimpleasyncresult.c:767   g_simple_async_result_complete
0x7f04d6942338   [libgio-2.0.so.0.3200.4]  - gsimpleasyncresult.c:779   complete_in_idle_cb
0x7f04d67fad74   [libglib-2.0.so.0.3200.4] - gmain.c:2539               g_main_context_dispatch
0x7f04d67fb0f7   [libglib-2.0.so.0.3200.4] - gmain.c:3146               g_main_context_iterate
0x7f04d67fb551   [libglib-2.0.so.0.3200.4] - gmain.c:3340               g_main_loop_run
0x7f04d6c68795   [ModemManager]            - main.c:142]                main
0x7f04d6213464   [libc-2.15.so]            - libc-start.c:234]          __libc_start_main
0x7f04d6c68318   [ModemManager]            + 0x0001d318]
2013-06-28 07:35:53 +02:00
Aleksander Morgado
49f017abff man,mmcli: changing modes and bands no longer allowed in '--simple-connect' 2013-06-27 10:17:20 +02:00
Ben Chan
6f3d9e5dac altair-lte: avoid sending ATZ when enabling the modem
This patch prevents an ATZ command, which causes the modem to reboot,
from being sent to the modem when the modem is being enabled.
2013-06-27 09:12:56 +02:00
Aleksander Morgado
a9ebec949e plugin-manager: handle modems where only some ports report being Icera
Icera-based Nokia modems may reply correctly to the Icera probing only in some
AT ports, not in all. In order to handle this situation we override the final
plugin selected to be the Icera-based one if we find that the mismatched plugins
have the 'icera-allowed' and 'icera-forbidden' filters.

https://bugzilla.gnome.org/show_bug.cgi?id=703022
2013-06-26 11:07:40 +02:00
Aleksander Morgado
a420ef3a0a icera: load supported modes with AT%IPSYS=?
http://bugzilla.gnome.org/show_bug.cgi?id=703023
2013-06-26 11:07:19 +02:00
Aleksander Morgado
a05bd76564 systemd: schedule to restart the service on-abort
See https://bugzilla.gnome.org/show_bug.cgi?id=701229.
2013-06-25 12:02:42 +02:00
Aleksander Morgado
ddb9691922 iface-modem: plug memleak 2013-06-25 11:48:50 +02:00
Aleksander Morgado
b4f6a4ac0b serial-parsers: plug memleak 2013-06-25 11:48:43 +02:00
Dan Williams
597401f80a broadband-bearer-hso: IPv4 prefix is always /32
The modem doesn't give us a prefix in the OWANDATA response, but it's
always /32.  This didn't get set previously because NetworkManager
always just used /32 for the 'static' configuration, but NM isn't the
only user of MM, and only MM knows for sure that the prefix should
be /32.
2013-06-24 22:04:32 -05:00
Aleksander Morgado
3206e95663 api,introspection: new 'Ports' property in the Modem interface
We will expose a new 'Ports' property listing all ports currently known by a
given modem. Ports which are not used but are detected as being part of the
modem will be listed with an 'unknown' port type.

This change uses the new 'MMModemPortType' enum and the new 'MMModemPortInfo'
helper struct to handle these values in libmm-glib. The already available
'MMPortType' enum hasn't been re-used for the interface because it contains
values that we don't need (e.g. IGNORED).

The port list is now also included in the modem information command of mmcli:

$ sudo mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id '97b7b99e3e2bea103880545b619fb05a3cc81b26')
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4'
           |        drivers: 'qcserial, qmi_wwan'
           |         plugin: 'Gobi'
           |   primary port: 'cdc-wdm0'
           |          ports: 'ttyUSB0 (qcdm), ttyUSB1 (at), cdc-wdm0 (qmi), wwp0s29u1u4 (net)'

https://bugzilla.gnome.org/show_bug.cgi?id=702678
2013-06-24 19:44:57 +02:00
Aleksander Morgado
30fe6eab48 hso: if IPv6 bearer type requested, create a generic bearer
Option/HSO modems don't seem to support IPv6 when using the net interface. So if
IPv6 is requested, create a generic bearer.

    $ sudo mmcli -m 0 --simple-connect="apn=internet,ip-type=ipv6"
    successfully connected the modem

    $ sudo mmcli -b 0
    Bearer '/org/freedesktop/ModemManager1/Bearer/0'
      -------------------------
      Status             |   connected: 'yes'
                         |   suspended: 'no'
                         |   interface: 'ttyHS3'
                         |  IP timeout: '20'
      -------------------------
      Properties         |         apn: 'internet'
                         |     roaming: 'allowed'
                         |     IP type: 'ipv6'
                         |        user: 'none'
                         |    password: 'none'
                         |      number: 'none'
                         | Rm protocol: 'unknown'
      -------------------------
      IPv4 configuration |   method: 'ppp'
      -------------------------
      IPv6 configuration |   method: 'unknown'

    $ sudo mmcli -m 0 --simple-disconnect
    successfully disconnected all bearers in the modem

https://bugzilla.gnome.org/show_bug.cgi?id=702472
2013-06-24 19:41:24 +02:00
Aleksander Morgado
e227d4af39 iface-modem: don't rely on the cached current power state value
The real power state value of the modem may be changed by other means, e.g.
rfkill. So when changing power state of the modem in MM, we better recheck
which the current power status is.

A better full approach would be to follow rfkill changes, but this fix should
help until that is done.

https://bugzilla.gnome.org/show_bug.cgi?id=702838
2013-06-24 19:40:58 +02:00
Aleksander Morgado
bcb00df142 mmcli: SMS class value is a signed integer, not unsiged 2013-06-24 19:37:39 +02:00
Aleksander Morgado
08ef3c81da broadband-modem-mbim: fix notification signal handling 2013-06-24 19:37:39 +02:00
Aleksander Morgado
19bd63ecfd broadband-modem-mbim: log about all received notifications 2013-06-24 19:37:38 +02:00
Aleksander Morgado
697b6fdadb broadband-modem-mbim: add support for flash/alert SMS messages
My Huawei MBIM modem notifies of standard new messages using MBIM_CID_MESSAGE_STORE_STATUS
notifications, which is kind of wrong, as they should really be notified using
MBIM_SMS_READ notifications; but anyway, try to handle those.
2013-06-24 19:37:38 +02:00
Aleksander Morgado
ee62806a1a broadband-modem-mbim: setup enabling and disabling of unsolicited messages 2013-06-24 19:37:38 +02:00
Aleksander Morgado
817fc43bb0 broadband-modem-mbim: rename 'notification_flags' to 'setup_flags'
We'll add 'enable_flags' later on.
2013-06-24 19:37:38 +02:00
Aleksander Morgado
ac7c87c0d2 broadband-modem-mbim: rename 3GPP specific methods 2013-06-24 19:37:38 +02:00
Aleksander Morgado
67207f279b sms: don't warn about unsupported validities 2013-06-24 19:37:38 +02:00
Aleksander Morgado
347ea7cd4e broadband-modem-mbim: implement setup/cleanup messaging events 2013-06-24 19:37:38 +02:00
Aleksander Morgado
6afbcc2c27 sms-mbim: new 'MMSmsMbim' object type 2013-06-24 19:37:38 +02:00
Aleksander Morgado
73bab06049 broadband-modem-mbim: implement initial sms parts loading 2013-06-24 19:37:38 +02:00
Aleksander Morgado
a09cabd48e broadband-modem-mbim: implement supported storages loading
We'll only expose 'MT' (ME+SM) as supported, as in MBIM the device doesn't
specify different storages.
2013-06-24 19:37:38 +02:00
Aleksander Morgado
cb046934c3 broadband-modem-mbim: check for messaging support 2013-06-24 19:37:38 +02:00
Aleksander Morgado
76ff021a3c build: require libmbim-glib >= 1.4.0
We need it to get SMS support.
2013-06-24 19:37:38 +02:00
Aleksander Morgado
223db868a8 dbus: no need for systemd and nosystemd setups of the service file
We can just merge them.
2013-06-23 12:08:03 +02:00
Aleksander Morgado
ce6777c53b Revert "systemd: simplify unit file"
This reverts commit 91898aa8b0.

See additional comments in the following bug:

  https://bugzilla.gnome.org/show_bug.cgi?id=701229

Basically, 'mask' and 'unmask' operations are not the ones we should be using
or suggesting; and the Alias= for the DBus file is the correct way to go.
2013-06-23 11:47:41 +02:00
Aleksander Morgado
b8825f79d5 build: remove '--with-tests' from the distcheck configure flags 2013-06-21 10:23:10 +02:00
Aleksander Morgado
3862ed6dfd build: add gtester.make to the dist tarball 2013-06-21 10:22:56 +02:00
Aleksander Morgado
6a01e51a5c tests: avoid printing in stdout by default
Tests had either their own g_print()s or they would enable a _mm_log() method to
get all g_debug()s from the libraries printed. In order to cleanup the result of
the tests run, avoid this stdout dumps by default, and only enable them if
explicitly enabled in CFLAGS, e.g.:

  $> ./configure CFLAGS="-DENABLE_TEST_MESSAGE_TRACES"
2013-06-18 17:15:03 +02:00
Aleksander Morgado
2a922f836d build: remove unneeded GLIB_CHECK_VERSION checks, 2.32 already required 2013-06-18 16:55:29 +02:00
Aleksander Morgado
a33e9671ea build: remove --with-tests option 2013-06-18 16:51:52 +02:00
Aleksander Morgado
2ad39277d2 build: setup gtester based tests 2013-06-18 16:50:47 +02:00
Aleksander Morgado
f3f499fcec test: remove testers of the old interface
Old python tests using the old ModemManager interface are removed, as mmcli
provides already a much nicer way to test the DBus interface.

Also, mm-test.py and the PPPD plugin get removed, which were also using the old
interface, and which were not very useful for testing newer non-PPP based
modems.

https://bugzilla.gnome.org/show_bug.cgi?id=702061
2013-06-18 16:30:26 +02:00
Aleksander Morgado
b582ba58e8 api,introspection: avoid exposing the Contacts interface
There is no implementation of the Contacts interface yet, just avoid exposing it
for now.

https://bugzilla.gnome.org/show_bug.cgi?id=701989
2013-06-18 16:19:19 +02:00
Aleksander Morgado
ce84ea510f bearer-mbim: make packet service attach operation optional
Some modems do require it, but some others won't (e.g. CDMA based ones), so
just make the operation optional, but only if the modem replies NoDeviceSupport.

https://bugzilla.gnome.org/show_bug.cgi?id=702419
2013-06-17 15:48:07 +02:00
Aleksander Morgado
e65f6ca2af bearer: MMBearerIpFamily is flags, not enum
Fixes the following warning...
    [mm-broadband-modem-mbim.c:1133] modem_create_bearer(): Creating MBIM bearer in MBIM modem
    GLib-GObject-CRITICAL **: g_param_spec_enum: assertion `G_TYPE_IS_ENUM (enum_type)' failed
    GLib-GObject-CRITICAL **: g_object_class_install_property: assertion `G_IS_PARAM_SPEC (pspec)' failed
2013-06-17 08:21:22 +02:00
Aleksander Morgado
fcede1a80a broadband-modem-qmi: fallback to AT if WMS service not available for messaging
It is quite common to have modems handled with QMI but with very limited
services implemented, e.g. without WMS:

    [/dev/cdc-wdm0] QMI Device supports 5 services:
    [/dev/cdc-wdm0]    ctl (1.3)
    [/dev/cdc-wdm0]    wds (1.5)
    [/dev/cdc-wdm0]    dms (1.2)
    [/dev/cdc-wdm0]    nas (1.0)
    [/dev/cdc-wdm0]    cat (0.0)

We'll now fallback to use plain AT commands when no QMI WMS service is found.
2013-06-15 17:19:54 +02:00
Aleksander Morgado
f4c488ea58 docs: reorder version symbols 2013-06-13 12:44:06 +02:00