Index: talk/examples/turnserver/turnserver_main.cc |
diff --git a/talk/examples/turnserver/turnserver_main.cc b/talk/examples/turnserver/turnserver_main.cc |
deleted file mode 100644 |
index e5e23364054020e50c6337eaf1d7849147252abe..0000000000000000000000000000000000000000 |
--- a/talk/examples/turnserver/turnserver_main.cc |
+++ /dev/null |
@@ -1,102 +0,0 @@ |
-/* |
- * libjingle |
- * Copyright 2012 Google Inc. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions are met: |
- * |
- * 1. Redistributions of source code must retain the above copyright notice, |
- * this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright notice, |
- * this list of conditions and the following disclaimer in the documentation |
- * and/or other materials provided with the distribution. |
- * 3. The name of the author may not be used to endorse or promote products |
- * derived from this software without specific prior written permission. |
- * |
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED |
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#include <iostream> // NOLINT |
- |
-#include "webrtc/p2p/base/basicpacketsocketfactory.h" |
-#include "webrtc/p2p/base/turnserver.h" |
-#include "webrtc/base/asyncudpsocket.h" |
-#include "webrtc/base/optionsfile.h" |
-#include "webrtc/base/stringencode.h" |
-#include "webrtc/base/thread.h" |
- |
-static const char kSoftware[] = "libjingle TurnServer"; |
- |
-class TurnFileAuth : public cricket::TurnAuthInterface { |
- public: |
- explicit TurnFileAuth(const std::string& path) : file_(path) { |
- file_.Load(); |
- } |
- virtual bool GetKey(const std::string& username, const std::string& realm, |
- std::string* key) { |
- // File is stored as lines of <username>=<HA1>. |
- // Generate HA1 via "echo -n "<username>:<realm>:<password>" | md5sum" |
- std::string hex; |
- bool ret = file_.GetStringValue(username, &hex); |
- if (ret) { |
- char buf[32]; |
- size_t len = rtc::hex_decode(buf, sizeof(buf), hex); |
- *key = std::string(buf, len); |
- } |
- return ret; |
- } |
- private: |
- rtc::OptionsFile file_; |
-}; |
- |
-int main(int argc, char **argv) { |
- if (argc != 5) { |
- std::cerr << "usage: turnserver int-addr ext-ip realm auth-file" |
- << std::endl; |
- return 1; |
- } |
- |
- rtc::SocketAddress int_addr; |
- if (!int_addr.FromString(argv[1])) { |
- std::cerr << "Unable to parse IP address: " << argv[1] << std::endl; |
- return 1; |
- } |
- |
- rtc::IPAddress ext_addr; |
- if (!IPFromString(argv[2], &ext_addr)) { |
- std::cerr << "Unable to parse IP address: " << argv[2] << std::endl; |
- return 1; |
- } |
- |
- rtc::Thread* main = rtc::Thread::Current(); |
- rtc::AsyncUDPSocket* int_socket = |
- rtc::AsyncUDPSocket::Create(main->socketserver(), int_addr); |
- if (!int_socket) { |
- std::cerr << "Failed to create a UDP socket bound at" |
- << int_addr.ToString() << std::endl; |
- return 1; |
- } |
- |
- cricket::TurnServer server(main); |
- TurnFileAuth auth(argv[4]); |
- server.set_realm(argv[3]); |
- server.set_software(kSoftware); |
- server.set_auth_hook(&auth); |
- server.AddInternalSocket(int_socket, cricket::PROTO_UDP); |
- server.SetExternalSocketFactory(new rtc::BasicPacketSocketFactory(), |
- rtc::SocketAddress(ext_addr, 0)); |
- |
- std::cout << "Listening internally at " << int_addr.ToString() << std::endl; |
- |
- main->Run(); |
- return 0; |
-} |