Closed Bug 937894 Opened 6 years ago Closed 6 years ago

[B2G][MMS] Unable to send MMS without having manually input MMS port value (AT&T SIM)

Categories

(Core :: DOM: Device Interfaces, defect)

ARM
Gonk (Firefox OS)
defect
Not set

Tracking

()

RESOLVED FIXED
1.3 Sprint 5 - 11/22
blocking-b2g 1.3+
Tracking Status
firefox28 --- fixed

People

(Reporter: nkot, Assigned: bevis)

References

Details

(Keywords: regression)

Attachments

(2 files)

Description:
 Using AT&T SIM, the user is unable to send MMS until they manually input MMS port value (80). This issue been 

Repro Steps:
1) Updated Buri to BuildID: 20131112040207
2) Enable Data in Settings
3) Open Messages app 
4) Create a new MMS (any attachment - I use image from gallery)
5) Tap Send
 ==> It keeps spinning but message will never be sent
6) Once confirmed that MMS cannot be sent manually input MMS port value:
  Setting --> Cell&Data --> Message settings --> input 80 into MMS port field --> OK
7) Open Messages app and send out new MMS

Actual:
 The MMS cannot be sent until the user manually input MMS port value (once set the MMS can be sent successfully)
 
Expected:
 The MMS can be sent without having to modify messages settings

Environmental Variables:
Device: Buri 1.3
BuildID: 20131112040207
Gaia: a013d01d3a0ddee76f60e61f8306d280c10aafbf
Gecko: 581d180a37f3
Version: 28.0a1
Firmware Version: 20131104

Notes:
does not happening on V1.2 - the user is able to send MMS with no issue

Repro frequency: 100%
Logcat will be provided
blocking-b2g: --- → koi?
Attached file logcat
attaching logcat (with debug_enable_mms.sh) 

Similar issue had been reported and fixed earlier in July,2013 see bug 898202
blocking-b2g: koi? → 1.3?
From the log, the port is set to -1.
However, it shall be protected by the following snippet:
    let port = this.mmsPort;
    if (port == -1) {   <-- -1 shall be modified to 80 before log is printed.
      port = 80;
      if (DEBUG) debug("getProxyInfo: port is not valid. Set to defult (80).");
    }

    let proxyInfo =
      gpps.newProxyInfo("http", this.mmsProxy, port,
                        Ci.nsIProxyInfo.TRANSPARENT_PROXY_RESOLVES_HOST,
                        -1, null);
    if (DEBUG) debug("getProxyInfo: " + JSON.stringify(proxyInfo));

11-12 16:46:49.870: I/Gecko(140): -@- MmsService: getProxyInfo: {"host":"wireless.cingular.com","port":-1,"type":"http","flags":1,"resolveFlags":0,"failoverTimeout":1800,"failoverProxy":null,"TRANSPARENT_PROXY_RESOLVES_HOST":1}
Assignee: nobody → btseng
Root cause found,
The protection is invalid because:
1. default value of "ril.mms.mmsport" is 0 if not set:
   - This can be checked from /data/b2g/mozilla/xxxx.default/prefs.js:
   - And the value is user_pref("ril.mms.mmsport", 0);
2. From the implementation in nsProtocolProxyService::NewProxyInfo():
   http://dxr.mozilla.org/mozilla-central/source/netwerk/base/src/nsProtocolProxyService.cpp#1181
   - if (aPort <= 0) aPort = -1;
   - The turn 0 to -1.

Hi Gene,
I would like to change it to |if (port <= 0)| to protect this instead.
Do you have better suggestion?
Flags: needinfo?(gene.lian)
1. Treat port <= 0 as invalid port because 
   - normally port is non-negative and port 0 is reserved according to http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml:
   - "ril.mms.mmsport" is set to 0 if not available the original protection is useless.
   - nsProtocolProxyService::NewProxyInfo will set port to -1 if port <= 0;
2. Clean up unused constants.
Attachment #831357 - Flags: review?(gene.lian)
Flags: needinfo?(gene.lian)
Target Milestone: --- → 1.3 Sprint 5 - 11/22
Attachment #831357 - Flags: review?(gene.lian) → review+
Nice catch! Bevis! Really appreciate your help! :)
Component: Gaia::SMS → DOM: Device Interfaces
Product: Firefox OS → Core
https://hg.mozilla.org/mozilla-central/rev/d052965caf4b
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Blocking regression, so setting to 1.3+
blocking-b2g: 1.3? → 1.3+
Duplicate of this bug: 877417
You need to log in before you can comment on or make changes to this bug.