24 Commits

Author SHA1 Message Date
charujain
aca3a249c3 Moving stun_prober target from webrtc/p2p to webrtc/examples
BUG=webrtc:6440
NOTRY=True

Review-Url: https://codereview.webrtc.org/2460343002
Cr-Commit-Position: refs/heads/master@{#14869}
2016-11-01 10:09:19 +00:00
wjywbs
5a601d909f Fix multiple definitions of BasicPacketSocketFactory error and add stunprober in GN.
R=pthatcher@webrtc.org

Review-Url: https://codereview.webrtc.org/2289563002
Cr-Commit-Position: refs/heads/master@{#14006}
2016-08-31 21:04:00 +00:00
Taylor Brandstetter
5d97a9a05b Adding more detail to MessageQueue::Dispatch logging.
Every message will now be traced with the location from which it was
posted, including function name, file and line number.

This CL also writes a normal LOG message when the dispatch took more
than a certain amount of time (currently 50ms).

This logging should help us identify messages that are taking
longer than expected to be dispatched.

R=pthatcher@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/2019423006 .

Cr-Commit-Position: refs/heads/master@{#13104}
2016-06-10 21:17:33 +00:00
kwiberg
fd8be3468a Remove webrtc/base/scoped_ptr.h
This is a re-land of https://codereview.webrtc.org/1942823002

TBR=tommi@webrtc.org
BUG=webrtc:5520

Review-Url: https://codereview.webrtc.org/1966423002
Cr-Commit-Position: refs/heads/master@{#12750}
2016-05-15 02:44:18 +00:00
kwiberg
6ab3db249b Revert of Remove webrtc/base/scoped_ptr.h (patchset #3 id:100001 of https://codereview.webrtc.org/1942823002/ )
Reason for revert:
Breaks user code. Said code needs to stop using scoped_ptr!

Original issue's description:
> Remove webrtc/base/scoped_ptr.h
>
> BUG=webrtc:5520
>
> NOTRY=True
>
> Committed: https://crrev.com/65fc62e9dd8a8716db625aaef76ab92f542ecc5a
> Cr-Commit-Position: refs/heads/master@{#12684}

TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5520

Review-Url: https://codereview.webrtc.org/1965063003
Cr-Commit-Position: refs/heads/master@{#12686}
2016-05-11 12:07:33 +00:00
kwiberg
65fc62e9dd Remove webrtc/base/scoped_ptr.h
BUG=webrtc:5520

NOTRY=True

Review-Url: https://codereview.webrtc.org/1942823002
Cr-Commit-Position: refs/heads/master@{#12684}
2016-05-11 11:29:38 +00:00
nisse
1bffc1d1a4 Rename rtc::Time64 --> rtc::TimeMillis.
In the discussion on https://codereview.webrtc.org/1888593004/, a more
decriptive name was suggested for Time64.

BUG=webrtc:5740

Review-Url: https://codereview.webrtc.org/1923213002
Cr-Commit-Position: refs/heads/master@{#12594}
2016-05-02 15:19:00 +00:00
kwiberg
3ec4679dd2 Replace scoped_ptr with unique_ptr in webrtc/p2p/
But keep #including scoped_ptr.h in .h files, so as not to break
WebRTC users who expect those .h files to give them rtc::scoped_ptr.

BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1923163003

Cr-Commit-Position: refs/heads/master@{#12532}
2016-04-27 14:22:58 +00:00
kwiberg
4485ffb58d #include "webrtc/base/constructormagic.h" where appropriate
Any file that uses the RTC_DISALLOW_* macros should #include
"webrtc/base/constructormagic.h", but a shocking number of them don't.
This causes trouble when we try to wean files off of #including
scoped_ptr.h, since a bunch of files get their constructormagic macros
only from there.

Rather than fixing these errors one by one as they turn up, this CL
simply ensures that every file in the WebRTC tree that uses the
RTC_DISALLOW_* macros #includes "webrtc/base/constructormagic.h".

BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1917043005

Cr-Commit-Position: refs/heads/master@{#12509}
2016-04-26 15:14:48 +00:00
jbauch
f1f87203d7 Split ByteBuffer into writer/reader objects.
This allows the reader to reference data, thus avoiding unnecessary
allocations and memory copies.

BUG=webrtc:5155,webrtc:5670

Review URL: https://codereview.webrtc.org/1821083002

Cr-Commit-Position: refs/heads/master@{#12160}
2016-03-30 13:43:44 +00:00
honghaiz
34b11eb66e Using 64-bit timestamp to replace the 32-bit one in webrtc/p2p.
Also changed from unsigned to signed integer per the style guide.
By the way, I kept all delta-times to be 32-bit int.

The only things left in the p2p dir are
1. proberprober/main.cc where Time() is used as the input for a random number.
2. pseudotcp.cc: where 32-bit time info is sent over the wire.

BUG=webrtc:5636

Review URL: https://codereview.webrtc.org/1793553002

Cr-Commit-Position: refs/heads/master@{#12019}
2016-03-16 15:55:48 +00:00
guoweis
066ded99cb Relax the stun ping check on valid result.
1. allow situation where all ping is lost
2. use the raw count to calculate the interval.

Since we now send 1 request per IP, the chance of losing all of them is higher and we shouldn't just quit if we don't have any response.

BUG=

Review URL: https://codereview.webrtc.org/1406223011

Cr-Commit-Position: refs/heads/master@{#10613}
2015-11-11 23:04:10 +00:00
guoweis
00507f8eb6 Separate StunProber::Start into Prepare and Run so we could create multiple of them and send out STUN pings at regular interval.
Also update the wake up logic to handle the case if <5 ms interval is requested.

BUG=

Review URL: https://codereview.webrtc.org/1422593002

Cr-Commit-Position: refs/heads/master@{#10381}
2015-10-23 02:16:02 +00:00
Peter Boström
0c4e06b4c6 Use suffixed {uint,int}{8,16,32,64}_t types.
Removes the use of uint8, etc. in favor of uint8_t.

BUG=webrtc:5024
R=henrik.lundin@webrtc.org, henrikg@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

Review URL: https://codereview.webrtc.org/1362503003 .

Cr-Commit-Position: refs/heads/master@{#10196}
2015-10-07 10:23:32 +00:00
henrikg
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

Review URL: https://codereview.webrtc.org/1335923002

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
henrikg
3c089d751e Add RTC_ prefix to contructormagic macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

* DISALLOW_ASSIGN -> RTC_DISALLOW_ASSIGN
* DISALLOW_COPY_AND_ASSIGN -> RTC_DISALLOW_COPY_AND_ASSIGN
* DISALLOW_IMPLICIT_CONSTRUCTORS -> RTC_DISALLOW_IMPLICIT_CONSTRUCTORS

Related CL: https://codereview.webrtc.org/1335923002/

BUG=chromium:468375
NOTRY=true

Review URL: https://codereview.webrtc.org/1345433002

Cr-Commit-Position: refs/heads/master@{#9953}
2015-09-16 12:37:52 +00:00
Guo-wei Shieh
97c9f8d198 Remove iostream which causes a new static initializer
TBR=pthatcher@webrtc.org
BUG=webrtc:4576

Review URL: https://codereview.webrtc.org/1205553002.

Cr-Commit-Position: refs/heads/master@{#9488}
2015-06-23 04:54:22 +00:00
Guo-wei Shieh
dc13abc331 Initially when the design was to do this experiment in browser, which doesn't have webrtc code, it requires some glue code to bridge the difference between what's available in webrtc::base and browser process. Now since we're moving to renderer process, we could reuse a lot of existing interfaces instead of rolling our own.
BUG=webrtc:4576
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1173353002.

Cr-Commit-Position: refs/heads/master@{#9466}
2015-06-18 21:44:46 +00:00
Guo-wei Shieh
72e9f04447 Better determination of Symmetric NAT.
If we're using shared socket mode, Symmetric NAT can be correctly determined by having more than 1 srflx per Requester (i.e. socket).

Design Doc updated at https://docs.google.com/document/d/11zruojoNqZgZYDrSVk0O3JHqFz2cFldWYQbroZdZRBg/edit#heading=h.t7npdccia97t

BUG=4576
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1166013002

Cr-Commit-Position: refs/heads/master@{#9396}
2015-06-09 04:03:59 +00:00
Guo-wei Shieh
fc622ccf95 Move Requester to cc file.
BUG=4576
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1161463011

Cr-Commit-Position: refs/heads/master@{#9373}
2015-06-04 23:06:04 +00:00
Guo-wei Shieh
2a6b8b7461 Fix windows build break
TBR=pthacther@webrtc.org
BUG=4576

Review URL: https://codereview.webrtc.org/1171483004

Cr-Commit-Position: refs/heads/master@{#9372}
2015-06-04 22:40:00 +00:00
Guo-wei Shieh
d04d3d73eb Add SocketFactoryInterface::Prepare and fix how symmetric NAT is determined.
Also remove Bind from ServerSocket interface as it's not needed anymore.

BUG=4576
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1162263012

Cr-Commit-Position: refs/heads/master@{#9371}
2015-06-04 22:20:08 +00:00
Guo-wei Shieh
1ab67aef80 Address the corner cases
1. when an IP is reported by DNS but it doesn't serve any traffic, we shouldn't count failure from that.
2. shared socket mode should should only be true for the case where multiple IPs are resolved and successfully pinged.
3. allow multiple STUN servers now.

Fix a bug in symnat detection. SymNAT will provide the same IP but different port.

If we have more than 1 srflx IP, we'll fail the experiment.

BUG=4576
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51849004

Cr-Commit-Position: refs/heads/master@{#9215}
2015-05-19 04:36:06 +00:00
Guo-wei Shieh
37931c4b85 Stunprober interface, its implementation and a command line driver.
Chrome will only see stunprober.h and stunprobercontext.h and link with libstunprober.a.

It has support for shared and non-shared mode. In shared mode, a socket will be used to ping all resolved IPs once. In non-shared mode, each ping will get a new socket.

The thread scheduling will try to run MaybeScheduleStunRequest every 1 ms. When the time is up for next ping, it'll send it out.

BUG=4576
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51729004

Cr-Commit-Position: refs/heads/master@{#9194}
2015-05-15 17:26:40 +00:00