Treat empty string as no value for most config values
Log a warning if no apn was configured
Let devices report long provider names

Some devices seem to have the provider name format set to numeric by
default. This changes the format to long alphanumeric before starting to
query the network status.
Explicitely select PDP context 1 when dialling
Add "COMMAND NOT SUPPORT" result code

This one was seen at least on the Huawei E173 and seems to be
Huawei-specific.
Add --probe option

This option tries to probe a bit more info from the device, for
debugging.
Use a macro for the Huawei mode commands

Looking at the ModemManager source code, it seems these commands are the
same for all Huawei modems, so putting them in a macro maces sense.
Use slightly different mode commands for HUAWEI

These commands are based on what ModemManager does, as well as what is
documented in the "HUAWEI UMTS Datacard/Modem AT Command Interface
Specification" document (v2.3).

No behaviour change is observed with the HUAWEI modems tested. In
particular, the E173 still sometimes gets confused after a few mode
changes.
Add Huawei modem data from Huawei Linux driver

This adds the udev rules file from the Huawei Linux driver and a python
script to convert to a proper header file that udiald can include.

This makes sure that for all the listed Huawei devices, at least the
data and control port are already correctly set, making it likely that a
lot of these devices will work out of the box now.
Check SIM status before probing

This makes sure that probing always checks the SIM status, even if one
of the probing commands isn't supported or otherwise messes things up.
Increase the timeout for the networks query

It seems that the 15 seconds that was there isn't always long enough and
that waiting a bit longer actually helps, so do that.
Improve and add log messages
Fix option parsing for --verbose

The long option descriptor had the wrong short option listed, causing
the --network-name code to be run when passing --verbose. However,
because that code accessed an argument that was not set, udiald would
segfault when passing --verbose.
Log an error and quit on invalid characters in apn

This also actually updates the apn variable when it is NULL, so the
"selected APN" message is now really correct.
Remove the -e option

This option prevented updating the error state, but it was not used and
its exact working was a bit unclear, so better to remove it.
Fix resetting of error codes on startup

A long time ago, there was only one error attribute. This has since
been split into two, but the old one was still being cleared.
Make sure that any dialing errors end up in the state

This allows the webinterface to actually show the exact error instead of
just "Dialing error".
Don't exit on SIM failure in probe mode

Note that most of the current probing commands will fail as well when no
SIM card is present on tested 3G sticks, but let's try nonetheless.
Sort Huawei device name list
Remove duplicate Huawei profiles

These profiles are present in deviceconfig.h, but exactly match the ones
autogenerated by extract-huawei.py, so might as well remove the manual
ones.

This also adds a name for one of these profiles to extract-huawei.py
(a name for the other one was already listed). Note that this particular
profile (usb id) is used for multiple different devices.