1 /* 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #if defined(WEBRTC_POSIX) 12 #include <errno.h> 13 #endif // WEBRTC_POSIX 14 15 #include <iostream> 16 17 #include "webrtc/p2p/base/stunserver.h" 18 #include "webrtc/base/thread.h" 19 20 using cricket::StunServer; 21 main(int argc,char * argv[])22int main(int argc, char* argv[]) { 23 if (argc != 2) { 24 std::cerr << "usage: stunserver address" << std::endl; 25 return 1; 26 } 27 28 rtc::SocketAddress server_addr; 29 if (!server_addr.FromString(argv[1])) { 30 std::cerr << "Unable to parse IP address: " << argv[1]; 31 return 1; 32 } 33 34 rtc::Thread *pthMain = rtc::Thread::Current(); 35 36 rtc::AsyncUDPSocket* server_socket = 37 rtc::AsyncUDPSocket::Create(pthMain->socketserver(), server_addr); 38 if (!server_socket) { 39 std::cerr << "Failed to create a UDP socket" << std::endl; 40 return 1; 41 } 42 43 StunServer* server = new StunServer(server_socket); 44 45 std::cout << "Listening at " << server_addr.ToString() << std::endl; 46 47 pthMain->Run(); 48 49 delete server; 50 return 0; 51 } 52