aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2018-09-10 23:36:45 +0200
committerDan Williams <dcbw@redhat.com>2018-09-12 17:15:46 +0000
commit4c669d3bf46da3b4f924968e43fc2edfbfa0b5d7 (patch)
tree26d99b73db7841cd78877cf036ee769b03aef354 /src/mm-base-modem.c
parentfc1beefe927adb8d9bed3f554ddfb73a09593630 (diff)
modem-helpers: reuse nicknames for the flow control tags
And check that the string given in the tag is actually a valid one.
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r--src/mm-base-modem.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index bb9abb55..c0ebb7f1 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -255,11 +255,21 @@ mm_base_modem_grab_port (MMBaseModem *self,
NULL);
flow_control_tag = mm_kernel_device_get_property (kernel_device, "ID_MM_TTY_FLOW_CONTROL");
- if (flow_control_tag)
- g_object_set (port,
- MM_PORT_SERIAL_FLOW_CONTROL,
- mm_parse_flow_control_tag (flow_control_tag),
- NULL);
+ if (flow_control_tag) {
+ MMFlowControl flow_control;
+ GError *inner_error = NULL;
+
+ flow_control = mm_flow_control_from_string (flow_control_tag, &inner_error);
+ if (flow_control == MM_FLOW_CONTROL_UNKNOWN) {
+ mm_warn ("(%s/%s) unsupported flow control settings in port: %s",
+ subsys, name, inner_error->message);
+ g_error_free (inner_error);
+ } else {
+ g_object_set (port,
+ MM_PORT_SERIAL_FLOW_CONTROL, flow_control,
+ NULL);
+ }
+ }
}
/* Net ports... */
else if (g_str_equal (subsys, "net")) {