aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2010-12-17core: separate PropertiesChanged signal XMLDan Williams
Which requires that we turn it into a GInterface that MMModemBase can implement, because dbus-glib does not allow attaching more than one introspection glue structure to an object at a time. Also implement the standard D-Bus properties changed signal.
2010-12-08core: work around udev parallel startup raceDan Williams
Ignore devices that aren't completely configured by udev yet. If ModemManager is started in parallel with udev, explicitly requesting devices may return devices for which not all udev rules have yet been applied (a bug in udev/gudev). Since we often need those rules to match the device to a specific ModemManager driver, we need to ensure that all rules have been processed before handling a device. Do this by adding an item to the environment of each device that MM might possibly be interested in, and ignoring devices that don't have that. When the device is fully processed by udev, MM will get an 'add' event and the device will have all rules applied.
2010-11-30gsm: prefer AT+CIND signal quality for modems that support it (lp:682282) ↵Dan Williams
(bgo #636040) Some devices always reply with 99 for AT+CSQ when in UMTS mode (Linktop LW273) so if the modem supports it, use CIND/CIEV instead.
2010-11-29gsm: don't poll signal quality if it was recently updatedDan Williams
2010-11-29core: allow setting IP method after constructionDan Williams
Some modems might not know their IP method until after the modem object has been created.
2010-11-28serial: print debug data unsignedDan Williams
2010-11-28gsm: query signal strength with +CIND if modem does not support +CSQ (lp:682282)Dan Williams
2010-11-28core: +CIND indexes start at 1Dan Williams
2010-11-28core: add index to CIND helperDan Williams
2010-11-28core: add +CIND parsing helpersDan Williams
2010-11-10gsm: fix up CID signed/unsigned confusionDan Williams
-1 = no APN set, so use modem default. We'll have to fix a few more things up for modems like hso/mbm that don't use ATDT and require CIDs, but this gets us halfway there for other devices.
2010-11-08gsm: fix up USSD property exportsDan Williams
If the base class advertises that it implements an interface, it really does need to implement all that interface's properties too. Otherwise dbus-glib gets mad and can't look up the property information for D-Bus Introspection.
2010-11-05gsm: add preliminary USSD support (bgo #590798)Guido Günther
We currently convert to and from the modem's set charset and always pass '15' as the data coding scheme. Passing the correct data coding scheme as third argument to CUSD only upsets the network. This contradicts 3GPP TS 23.038. Other tools like gsm-ussd handle it the same way. Network responses that require further actions are not yet implemented. (some fixes and cleanups by Dan Williams)
2010-11-05core: add bin -> hex string converterDan Williams
2010-11-05core: unconditionally enable the Location Services APIDan Williams
This required dbus-glib 0.86 or later, which was released 2010-03-24.
2010-11-03trivial: avoid build warning by using g_message() correctlyDan Williams
2010-10-25gsm: retry SIM ID if we didn't get it before card was enabledDan Williams
2010-10-25gsm: request ICCID after checking the PIN statusDan Williams
Checking PIN status makes sure the SIM is initialized, and that has to happen before we try to read the SIM for the ICCID. So move PIN checking before getting the ICCID, and retry the ICCID at least once for odd cards like Gobi 1K that seems to need one more try right after it's done booting up.
2010-10-25gsm: add SimIdentifier propertyDan Williams
An obfuscated SimIdentifier that may be available before the PIN has been entered, for use in auto-unlocking a device. If this value is present, it should be used in preference to DeviceIdentifier as it is SIM-specific like the PIN code.
2010-10-22core: print out modem hardware VID/PID and subsystemDan Williams
2010-10-22trivial: fix formattingDan Williams
2010-10-22core: detect PCMCIA manfid and cardidDan Williams
These aren't added to the udev device database by anything yet (though they should be) so grab them manually.
2010-10-22core: strip "0x" off udev ID_VENDOR_ID and ID_MODEL_ID stringsDan Williams
2010-10-22core: use hardware IDs as part of DeviceIdentifierDan Williams
Pass the device's hardware IDs through modem creation and use them when calculating the device's identifier. Add a bunch of testcases for real hardware to ensure we don't break the device ID in the future unless we really want to.
2010-10-21core: add DeviceIdentifier propertyDan Williams
This is computed before any PIN is entered, and thus before we can usually get IMEI or MEID/ESN out of the device in many cases. It's therefore not the same as EquipmentIdentifier. This is intended to be used by UI programs for matching devices with PIN numbers for automatic unlocking. While the PIN number is actually *SIM* specific, no modems allow access to the IMSI before the PIN is entered, and thus we cannot actually match the PIN with the SIM. The device ID is the next best thing we can use and should allow auto unlocking in most cases.
2010-10-14cdma: clear error when getting state if no AT port is availableDan Williams
We don't care about the error if we have a QCDM port.
2010-10-14serial: make QCDM frame parsing more robustDan Williams
Ensure that valid HDLC frames that are not valid QCDM frames are correctly rejected, and that their data is correctly discarded. The core bug was that Sierra CnS frames have leading and trailing HDLC frame terminator bytes (0x7E), and the code was incorrectly treating the leading terminator as the end of a frame, not the beginning. Thus it would consider the outstanding serial request finished without actually parsing the response packet. Now, we make sure we don't tell the serial receive code that we have a full QCDM frame until we actually do have one, which is at least 3 bytes + 0x7E.
2010-10-14core: add more QCDM frame marker testcasesDan Williams
2010-10-14core: add basic QCDM serial port unit testsDan Williams
Test that a Version Info request/response works as expected, and add a testcase for a bug where specific Sierra CnS responses to the Version Info request do not properly return an error when attempting to parse the response as a QCDM packet. Fix for the second thing forthcoming.
2010-10-14build: create convenience serial libraryDan Williams
For better unit testing.
2010-10-14core: add helper to create QCDM serial ports from a file descriptorDan Williams
Aids in unit testing
2010-10-14serial: allow creating serial ports with a given file descriptorDan Williams
To enable better unit testing of MMSerialPort and subclasses behavior.
2010-09-28serial: kill serial port closing waitDan Williams
This is the real fix for 81d0fd148f8c72a2e50b4e6fe82496daa28a91cc. Some devices don't interact well with the option driver or the usb-serial layer; they don't respond to the USB data requests and thus data never gets written to that port. When close(2) is called, that data is still pending and so the tty layer waits 30 seconds before returning from the close. This is the 'closing_wait' value, which unfortunately is not able to be modified by ModemManager because most serial drivers for 3G devices don't implement the .ioctl handler or its TCIOSSERIAL option to change closing_wait. This goes along with a kernel patch to various drivers to enable the TIOCSSERIAL ioctl to modify closing_wait which will be posted soon.
2010-09-27core: better debugging of serial port open/closeDan Williams
Some devices don't interact well with the option drivr or the usb-serial layer; they don't respond to the USB data requests and thus data never gets written to that port. When close(2) is called, that data is still pending and so the tty layer waits 30 seconds before returning from the close. This is the 'closing_wait' value, which unfortunately is not able to be modified by ModemManager because most serial drivers for 3G devices don't implement the .ioctl handler or its TCIOSSERIAL option to change closing_wait. Print out open/close timestamps to help debug this issue and get a list of modems that have this problem.
2010-09-27test: add CGREG repsonse test for X220DDan Williams
To test spaces between some members of the response.
2010-09-20gsm: allow use of GSM 03.38 character set (bgo #627935)Dan Williams
It's only really used for phonebook and SMS PDU mode in the specs, which we don't do yet, so if this is the only charset the device supports we'll try to use it.
2010-09-04trivial: remove unused codeDan Williams
2010-09-04trivial: whitespace fixupDan Williams
2010-09-04gsm: add GSM 03.38 pack/unpack functions and testcasesDan Williams
2010-09-02gsm: add GSM 03.38 encoding/decoding functions and testcasesDan Williams
2010-09-01cdma: consolidate some code by ignoring +CMEE resultDan Williams
Most modems don't support it and we're ignoring the error message anyway, so don't bother with a callback for its result.
2010-09-01polkit: fix for polkit >= 0.97 (bgo #628105)Dan Williams
2010-08-26gsm: ensure unlock retries is updated on incorrect PIN entryDan Williams
If the modem returns an error (like "+CME ERROR: incorrect password" or even just ERROR) make sure we recheck PIN status and thus also recheck the number of unlock retries instead of just returning the error to the caller.
2010-08-26core: clean up unlock retries info messageDan Williams
2010-08-18gsm: recognize Motorola EZX errorsDan Williams
Nobody seems to know what the number means, but at least recognize them as errors.
2010-08-18gsm: Motorola EZX models quote CPIN responseDan Williams
2010-08-11core: work around dbus-glib property access bug (CVE-2010-1172) (rh #585394)Dan Williams
More info: https://bugzilla.redhat.com/show_bug.cgi?id=585394 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1172 dbus-glib was not properly enforcing the 'access' permissions on object properties exported using its API. There were 2 specific bugs: 1) dbus-glib did not enforce the introspection read/write property permissions, so if the GObject property definition allowed write access (which is sometimes desirable), D-Bus clients could modify that value even if the introspection said it was read-only 2) dbus-glib was not filtering out GObject properties that were not listed in the introspection XML. Thus, if the GObject defined more properties than were listed in the introspection XML (which is also often useful, and MM uses this quite a bit) those properties would also be exposed to D-Bus clients. To fix this completely, you need to: 1) get dbus-glib master when the patch is commited, OR grab the patch from https://bugzilla.redhat.com/show_bug.cgi?id=585394 and build a new dbus-glib 2) rebuild ModemManager against the new dbus-glib
2010-08-09build: fix build with glib >= 2.25.12 (bgo #626421)Vincent Untz
Work around an API break in glib.
2010-08-06cdma: determine EVDO registration even when in 1X modeDan Williams
Sometimes the primary mode will be 1X (and thus the Call Manager will report 1X system mode) but the HDR subsystem will be registered and idle. Figure that out and report that EVDO is registered too in that case, since the modem will just flip over to EVDO when the data call starts.
2010-08-05build: use automake silent rulesDan Williams