3 # SPDX-License-Identifier: CC0-1.0
4 # 2022 Aleksander Morgado <aleksander@aleksander.es>
6 # Automatically report to netifd that the underlying modem
7 # is really disconnected
9 # require program name and at least 4 arguments
10 [ $# -lt 4 ] && exit 1
17 [ "${STATE}" = "disconnected" ] ||
exit 0
19 .
/lib
/netifd
/netifd-proto.sh
20 .
/usr
/share
/ModemManager
/modemmanager.common
22 MODEM_STATUS
=$
(mmcli
--modem="${MODEM_PATH}" --output-keyvalue)
23 [ -n "${MODEM_STATUS}" ] ||
exit 1
25 MODEM_DEVICE
=$
(modemmanager_get_field
"${MODEM_STATUS}" "modem.generic.device")
26 [ -n "${MODEM_DEVICE}" ] ||
exit 2
28 CFG
=$
(mm_get_modem_config
"${MODEM_DEVICE}")
29 [ -n "${CFG}" ] ||
exit 3
31 IFUP
=$
(ifstatus
"${CFG}" | jsonfilter
-e "@.up")
33 [ "${IFUP}" = "true" ] && {
34 logger
-t "modemmanager" "interface ${CFG} (network device ${INTERFACE}) ${STATE}"
35 proto_init_update
$INTERFACE 0
36 proto_send_update
$CFG