Граф коммитов

281 Коммитов

Автор SHA1 Сообщение Дата
Andrea Marchesini 374f2c997f Bug 1415081 - part 4 - Fix the use of NS_ReadInputStreamToString in DataChannel, r=smaug 2017-11-09 11:18:08 +01:00
Randell Jesup 6eb5662c81 Bug 1400563: fix leaked nsTArray r=froyd on a CLOSED TREE 2017-10-26 11:55:22 -04:00
Randell Jesup b01ce04bf4 Bug 1400563: more DataChannelConnection shutdown cleanup r=drno 2017-10-26 10:29:37 -04:00
Chris Manchester c86173526a Bug 1403346 - Replace all uses of ALLOW_COMPILER_WARNINGS with a template, remove ALLOW_COMPILER_WARNINGS. r=glandium
MozReview-Commit-ID: 1G2o4fy74cf
2017-10-25 15:12:09 -07:00
Randell Jesup dd84234b15 Bug 1400563: clean up SCTP shutdown r=drno 2017-10-11 00:40:21 -04:00
Tom Ritter c756f0c92e Bug 1393795 Lowercase includes so WebRTC compiles with MinGW r=jesup
This edits the third party SCTP library, but upstream has already applied this change to master

MozReview-Commit-ID: ERpMc8EvYZ7

--HG--
extra : rebase_source : cea0d3758275b73a395ad2738edd8eb57c833e1a
2017-08-25 14:04:36 -05:00
Lennart Grahl c2ebc3e45e Bug 979417 - Implement EOR when receiving and explicit EOR when sending on data channels (including DCEP). r=drno,jesup
This allows sending and receiving arbitrarily (we limit to 1 GiB atm) sized
messages while not relying on the deprecated PPID fragmentation/reassembly
mode. The code already supports the ndata extension but it's not activated,
yet. Without the SCTP ndata extension, a large data channel message will
monopolise the SCTP association. While this is a problem, it is a temporary
solution until the extension is being activated. Keep in mind that every
application that uses data channels currently does fragmentation/reassembly on
application-level and it's unlikely that this will change until the popular
implementations (libwebrtc) implement EOR as well. Moreover, until the WebRTC
API specifies an API that hands over partial messages, doing application-level
fragmentation/reassembly is still useful for very large messages (sadly).

We fall back to PPID-based fragmentation/reassembly mode IFF a=max-message-size
is not set in the SDP and the negotiated amount of SCTP inbound streams is
exactly 256. Other implementations should avoid using this combination (to be
precise, other implementations should send a=max-message-size).

It also changes behaviour of RTCDataChannel.send which now raises TypeError in
case the message is too large for the other peer to receive. This is a
necessity to ensure that implementations that do not look at the EOR flag when
receiving are always able to receive our messages. Even if these
implementations do not set a=max-message-size, we use a safe default value (64
KiB, dictated by the spec) that every implementation should be able to receive,
with or without EOR support.

* Due to the use of explicit EOR, this required some major refactoring of all
  send-related and deferred sending functions (which is now a lot less
  complex). There's now only one place where `usrsctp_sendv` is being used.
* All data channel messages and DCEP messages will be sent without copying them
  first. Only in case this fails (e.g. usrsctp's buffer is full), the message
  will be copied and added to a buffer queue.
* Queued data channel messages will now be re-sent fairly (round-robin).
* Maximum message size and the PPID-based fragmentation are configurable using
  about:config (media.peerconnection.sctp.force_ppid_fragmentation and
  media.peerconnection.sctp.force_maximum_message_size).
* Enable interleaving of incoming messages for different streams (preparation
  for SCTP ndata, has no effect until it is enabled).
* Enable interleaving of outgoing messages (disabled if SCTP ndata has not been
  negotiated).
* Add pending messages flag to reduce performance impact from frequent calls to
  SendDeferredMessages.
* Handle partial delivery events (for cases where a partially delivered message
  is being aborted).
* Close a data channel/the connection in case the message is too large to be
  handled (this is only applied in cases where the remote peer ignores our
  announced local maximum message size).
* Various size_t to uint32_t conversions (message length) and back should be
  safe now.
* Remove aUsingDtls/mUsingDtls from DataChannelConnection.
* Set maximum message size in SDP and in the data channel stack.
* Replace implicit NS_ENSURE_*'s with explicit NS_WARN_IF's.
* Add SetMaxMessageSize method for late-applying those signalling parameters
  when a data channel has been created before the remote SDP was available.
* Limit remote maximum message size and add a GetMaxMessageSize method for a
  future implementation of RTCSctpTransport.maxMessageSize.

MozReview-Commit-ID: FlmZrpC5zVI

--HG--
extra : rebase_source : 54e1b838c788a3abbded4fb32fe7c2788f8a9bc0
2017-07-26 13:18:54 +02:00
Kartikaya Gupta ba4b3b9101 Bug 1384233 - Remove SizePrintfMacros.h. r=froydnj
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.

MozReview-Commit-ID: 6s78RvPFMzv

--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
2017-07-26 16:03:57 -04:00
Sylvestre Ledru 7c0ae251cd Bug 1381253 - Remove redundant control flow declarations rs=ehsan
MozReview-Commit-ID: FFxP4aMCbOL

--HG--
extra : amend_source : 3aec108430b11048f47ffe19d5da7ac5034770a9
2017-07-15 19:03:04 +02:00
Andrea Marchesini 50f9ea47a3 Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
Sylvestre Ledru 4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Kershaw Chang c168ba5421 Bug 1343755 - Label runnables in DataChannelConnection. r=jesup 2017-06-27 10:39:00 -04:00
Bill McCloskey f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Carsten "Tomcat" Book 8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Bill McCloskey 6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey 4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Bevis Tseng d1637b9c5a Bug 1372453 - Part 2: Name the caller of ProxyReleaseEvent. r=billm
MozReview-Commit-ID: LYhSWnZkq0i
2017-06-14 09:27:17 +08:00
Bill McCloskey 7cb6a23814 Bug 1365101 - Convert NS_GetCurrentThread uses in netwerk/ (r=meyhemer)
MozReview-Commit-ID: IHBt6XAG8em
2017-06-12 20:21:43 -07:00
Wes Kocher 269f7e9f5c Merge m-c to inbound, a=merge
MozReview-Commit-ID: 9wTctDOsPpO
2017-06-02 17:31:31 -07:00
Randell Jesup 16390d923a Bug 1367578: Don't use PR_LogPrint() for logging now that we use LazyLog r=drno
MozReview-Commit-ID: K1KVCtpEPTZ
2017-06-02 15:50:05 -04:00
Nils Ohlmeier [:drno] f8f118d912 Bug 1335262: read and emit datachannel max-message-size. r=jesup
MozReview-Commit-ID: HwaoshovZIS

--HG--
extra : rebase_source : c1c171c53e5433607083dcd88fc9de0820e3382f
2017-05-31 20:58:53 -07:00
Nils Ohlmeier [:drno] 5b3ddc580c Bug 1365081: really use prPolicy as the pocily input value. r=jesup
MozReview-Commit-ID: Ec6BrdYtT6G

--HG--
extra : rebase_source : 7f7a00dd94e3b06a978b0ddd106c37c9adf09550
2017-05-15 17:58:41 -07:00
Nils Ohlmeier [:drno] 948bfcc4f7 Bug 969715: remove INET and INET6 from sctp build env. r=jesup
MozReview-Commit-ID: 4e67tOzltoc

--HG--
extra : rebase_source : c0c134bde1b0400b3fc37aaada0187948442e9cb
2016-12-08 23:49:43 -10:00
Tom Tromey 5f8f360823 Bug 1060419 - make log_print use Printf.h, r=froydnj
MozReview-Commit-ID: BIZ1GQEZ1vs

--HG--
extra : rebase_source : 2f1f0aa12493c44f352d9a7e8683e7bb72d2d75b
2016-12-15 20:16:31 -07:00
Sylvestre Ledru 0b79b69876 Bug 1338086 - Remove useless else blocks in order to reduce complexity in netwerk/ r=dragana
MozReview-Commit-ID: 2TSxhHWmL2H

--HG--
extra : rebase_source : a8a70bfc3aec34b85d20021036bd2c13cdcfe5f3
2017-02-09 11:21:38 +01:00
Randell Jesup 6e0c53ec9f Bug 1311380: make shutdown ordering for sctp deregister_address consistent r=tuexen 2017-02-09 02:55:20 -05:00
Markus Stange 692210bd80 Bug 1323100 - Assign names to all remaining threads that are created through NS_NewThread and create them using NS_NewNamedThread instead. r=froydnj
MozReview-Commit-ID: 7W1dt2BBKJZ

--HG--
extra : rebase_source : c7e335dac2e0f02782f0eb229a7181c8d01317a2
2016-12-21 11:43:50 +01:00
Sylvestre Ledru a8539821a2 Bug 1317430 - Avoid a unnecessary copy by passing a const & in netwerk/ r=valentin
MozReview-Commit-ID: LKgXjObeXOZ

--HG--
extra : rebase_source : b10835297d8fb345ce9ba81c94d9a7c0397a4e1d
2016-11-14 23:16:40 +01:00
Nils Ohlmeier [:drno] ec6fab657f Bug 1315470: booleans never turn negative. r=jesup
MozReview-Commit-ID: 7XbJd35uMSX
2016-11-07 15:28:50 -08:00
Andi-Bogdan Postelnicu c62f16bdda Bug 1311669 - Use C++11's override and remove virtual where applicable. r=valentin
MozReview-Commit-ID: Ab5BC8NhbIO
2016-11-08 16:36:58 +02:00
Andi-Bogdan Postelnicu 9d9d070b27 Bug 1311669 - Replace integer literals which are cast to bool. r=valentin
MozReview-Commit-ID: LdvpF0mFA5V

--HG--
extra : rebase_source : 831e71b9f40015636cbea9a6d72c96e7dfd070af
2016-11-01 14:44:10 +02:00
Andi-Bogdan Postelnicu 702a3fbf63 Bug 1311669 - replace default bodies of special member functions with = default; r=valentin
MozReview-Commit-ID: YxHWVHUyDq

--HG--
extra : rebase_source : 24dbb81862770d82a3dc139ba8041bb576cf7cc4
2016-11-01 14:44:09 +02:00
Andi-Bogdan Postelnicu 5ca687e238 Bug 1311669 - use auto type specifier for variable declarations to improve code readability and maintainability. r=valentin
MozReview-Commit-ID: F5YO9pVK5O8

--HG--
extra : rebase_source : 7c8d22df9ec2ade3421d5f34229827f9c419b4d2
2016-11-01 14:44:09 +02:00
Andi-Bogdan Postelnicu 2789be758c Bug 1311669 - convert loops to range-based loops in C++11. r=valentin
MozReview-Commit-ID: 5rc6d1JrU2F

--HG--
extra : rebase_source : bff7df85d38948e5a7d90c0d6d4d66f0811977ad
2016-11-01 14:43:37 +02:00
Randell Jesup 607b7c3fdf Bug 1280041: more complete fix for issues surrounding mConnection clearing r=drno 2016-10-20 01:03:44 -04:00
Tom Schuster 774a8bf34d Bug 1302163 - Change code to use SprintfLiteral instead of snprintf. r=ehsan 2016-10-04 17:57:51 +02:00
Michael Layzell 36e08437d0 Bug 1018486 - Part 8: Various other changes, r=smaug
MozReview-Commit-ID: B0dsomkWgEk
2016-09-07 10:50:45 -04:00
Nicholas Nethercote b71747b2ac Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm.
The new name makes the sense of the condition much clearer. E.g. compare:

  NS_WARN_IF_FALSE(!rv.Failed());

with:

  NS_WARNING_ASSERTION(!rv.Failed());

The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.

--HG--
extra : rebase_source : 886e57a9e433e0cb6ed635cc075b34b7ebf81853
2016-09-01 15:01:16 +10:00
Kan-Ru Chen b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Randell Jesup 1d40bd7097 Bug 1294095: Swap order of notifications on association failure r=bwc
Import of d1208ae from upstream git
2016-08-23 14:09:13 -04:00
Jinank Jain 5d82d2f48d Bug 1296176 - Replace PR_MIN with std::min in netwerk. r=jesup,mcmanus 2016-08-22 14:37:42 -07:00
Byron Campen [:bwc] 44288fe630 Bug 1293347: Move the set/unset of |cur_it| to a better place. r=tuexen,jduell
MozReview-Commit-ID: BGRFposcrBG
2016-08-09 10:18:08 -05:00
Nicholas Nethercote bab6d17ebf Bug 1293117 (part 4) - Change many NS_IMETHODIMP occurrences to NS_IMETHOD. r=froydnj.
This patch makes the following changes on many in-class methods.

- NS_IMETHODIMP F() override;      --> NS_IMETHOD F() override;
- NS_IMETHODIMP F() override {...} --> NS_IMETHOD F() override {...}
- NS_IMETHODIMP F() final;         --> NS_IMETHOD F() final;
- NS_IMETHODIMP F() final {...}    --> NS_IMETHOD F() final {...}

Using NS_IMETHOD is the preferred way of marking in-class virtual methods.
Although these transformations add an explicit |virtual|, they are safe --
there's an implicit |virtual| anyway because |override| and |final| only work
with virtual methods.

--HG--
extra : rebase_source : 386ee4e4ea2ecd8d5001efabc3ac87b4d6c0659f
2016-08-08 10:54:47 +10:00
Nicholas Nethercote e7f10a07fd Bug 1293603 (part 2) - Make Run() declarations consistent. r=erahm.
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.

As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.

--HG--
extra : rebase_source : 815d0018b0b13329bb5698c410f500dddcc3ee12
2016-08-08 12:18:10 +10:00
Jan Beich 7d7e852180 Bug 1288987 - Unbreak mtransport tests on more BSDs. r=jesup
MozReview-Commit-ID: 41A3bKpN5pU

--HG--
extra : transplant_source : B%06%00%08%DA%D8O%19%0DP%C8W%24%95%AA%99%E4%C1%F7%03
2016-07-25 02:21:56 +00:00
Tom Tromey 5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Mike Hommey d5a26f74b7 Bug 1280578 - Free pAdapterAddrs with GlobalFree in sctp_init_ifns_for_vrf(). r=jesup
Until da6f8ba in upstream git repository, sctp_init_ifns_for_vrf() was
using the MALLOC and FREE macros, using respectively HeapAlloc and
HeapFree. da6f8ba changed the allocations to use GlobalAlloc, but didn't
change the deallocations to use the symmetric GlobalFree.

This doesn't seem to cause direct problems, but when wrapping one family
of allocation functions, the dissymmetry causes allocator mismatch
problems.

Moreover, the MALLOC macro being unused, it might as well be removed,
along the FREE macro, so that both allocations and deallocations use one
API explicitly.

See https://github.com/sctplab/usrsctp/pull/92
2016-07-20 14:04:40 +09:00
Andrea Marchesini 841e0f39ef Bug 1278320 - DataChannel should return 0 if the stream is not active, r=drno 2016-06-29 08:03:37 +02:00
Randell Jesup 420b8a9b0e Bug 1240209: use buffer-half-empty callbacks to send buffered data instead of a timer r=tuexen,drno 2016-05-31 23:45:17 -04:00