Attached is the NetworkManager dispatch script which is supposed to add the MMS Proxy route. This script is part of the lxc-android-config package. I've verified that it exists in our vivid images. For some reason it appears to be broken.
The script is passed the modem_path ( env:DEVICE_IPATH ) and connection ( env:CONNECTION_ID). If either is 'None', the script silently fails. Next it validates both to ensure that they start with "/", if they don't it again silently fails.
Next it does a synchronous DBus call to ConnectionContext.GetProperties() in order to grab 'Settings', and in turn 'Gateway' ( for logging ).
If 'MessageProxy' is found, it's used for new route, else if 'MessageCenter' is found, it's used instead.
The script then attempts to resolve the hostname using socket.gethostbyname(). I *think* this is a no-op if the MessageProxy is specified as dotted network address instead of a hostname.
The script then uses subprocess.call() to add the route. No error checking is done for the "ip route" command.
The bulk of the logic is surrounding by a try/catch block, which does log a "failed to add route" message, however I'm not seeing this in my syslog, so I believe the failure is earlier in the script itself, or maybe the dispatch mechanism isn't properly triggering the script?
I think with some additional logging we should be able to pinpoint the failure...
Attached is the NetworkManager dispatch script which is supposed to add the MMS Proxy route. This script is part of the lxc-android-config package. I've verified that it exists in our vivid images. For some reason it appears to be broken.
The script is passed the modem_path ( env:DEVICE_IPATH ) and connection ( env:CONNECTION_ID). If either is 'None', the script silently fails. Next it validates both to ensure that they start with "/", if they don't it again silently fails.
Next it does a synchronous DBus call to ConnectionConte xt.GetPropertie s() in order to grab 'Settings', and in turn 'Gateway' ( for logging ).
If 'MessageProxy' is found, it's used for new route, else if 'MessageCenter' is found, it's used instead.
The script then attempts to resolve the hostname using socket. gethostbyname( ). I *think* this is a no-op if the MessageProxy is specified as dotted network address instead of a hostname.
The script then uses subprocess.call() to add the route. No error checking is done for the "ip route" command.
The bulk of the logic is surrounding by a try/catch block, which does log a "failed to add route" message, however I'm not seeing this in my syslog, so I believe the failure is earlier in the script itself, or maybe the dispatch mechanism isn't properly triggering the script?
I think with some additional logging we should be able to pinpoint the failure...