Index: webrtc/examples/stunserver/stunserver_main.cc |
diff --git a/webrtc/examples/stunserver/stunserver_main.cc b/webrtc/examples/stunserver/stunserver_main.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9cbd6156da999b9f0e9abc41118547e7fc8756d8 |
--- /dev/null |
+++ b/webrtc/examples/stunserver/stunserver_main.cc |
@@ -0,0 +1,51 @@ |
+/* |
+ * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
+ * |
+ * Use of this source code is governed by a BSD-style license |
+ * that can be found in the LICENSE file in the root of the source |
+ * tree. An additional intellectual property rights grant can be found |
+ * in the file PATENTS. All contributing project authors may |
+ * be found in the AUTHORS file in the root of the source tree. |
+ */ |
+ |
+#if defined(WEBRTC_POSIX) |
+#include <errno.h> |
+#endif // WEBRTC_POSIX |
+ |
+#include <iostream> |
+ |
+#include "webrtc/p2p/base/stunserver.h" |
+#include "webrtc/base/thread.h" |
+ |
+using namespace cricket; |
+ |
+int main(int argc, char* argv[]) { |
+ if (argc != 2) { |
+ std::cerr << "usage: stunserver address" << std::endl; |
+ return 1; |
+ } |
+ |
+ rtc::SocketAddress server_addr; |
+ if (!server_addr.FromString(argv[1])) { |
+ std::cerr << "Unable to parse IP address: " << argv[1]; |
+ return 1; |
+ } |
+ |
+ rtc::Thread *pthMain = rtc::Thread::Current(); |
+ |
+ rtc::AsyncUDPSocket* server_socket = |
+ rtc::AsyncUDPSocket::Create(pthMain->socketserver(), server_addr); |
+ if (!server_socket) { |
+ std::cerr << "Failed to create a UDP socket" << std::endl; |
+ return 1; |
+ } |
+ |
+ StunServer* server = new StunServer(server_socket); |
+ |
+ std::cout << "Listening at " << server_addr.ToString() << std::endl; |
+ |
+ pthMain->Run(); |
+ |
+ delete server; |
+ return 0; |
+} |