Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(701)

Side by Side Diff: net/base/listen_socket.cc

Issue 6800009: Attn: Mike Belshe Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 // winsock2.h must be included first in order to ensure it is included before 8 // winsock2.h must be included first in order to ensure it is included before
9 // windows.h. 9 // windows.h.
10 #include <winsock2.h> 10 #include <winsock2.h>
(...skipping 28 matching lines...) Expand all
39 #if defined(OS_WIN) 39 #if defined(OS_WIN)
40 const SOCKET ListenSocket::kInvalidSocket = INVALID_SOCKET; 40 const SOCKET ListenSocket::kInvalidSocket = INVALID_SOCKET;
41 const int ListenSocket::kSocketError = SOCKET_ERROR; 41 const int ListenSocket::kSocketError = SOCKET_ERROR;
42 #elif defined(OS_POSIX) 42 #elif defined(OS_POSIX)
43 const SOCKET ListenSocket::kInvalidSocket = -1; 43 const SOCKET ListenSocket::kInvalidSocket = -1;
44 const int ListenSocket::kSocketError = -1; 44 const int ListenSocket::kSocketError = -1;
45 #endif 45 #endif
46 46
47 ListenSocket* ListenSocket::Listen(std::string ip, int port, 47 ListenSocket* ListenSocket::Listen(std::string ip, int port,
48 ListenSocketDelegate* del) { 48 ListenSocketDelegate* del) {
49 SOCKET s = Listen(ip, port); 49 SOCKET s = Listen(ip, port, del->protocol());
50 if (s == kInvalidSocket) { 50 if (s == kInvalidSocket) {
51 // TODO(erikkay): error handling 51 // TODO(erikkay): error handling
52 } else { 52 } else {
53 ListenSocket* sock = new ListenSocket(s, del); 53 ListenSocket* sock = new ListenSocket(s, del);
54 sock->Listen(); 54 sock->Listen();
55 return sock; 55 return sock;
56 } 56 }
57 return NULL; 57 return NULL;
58 } 58 }
59 59
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 ListenSocket::~ListenSocket() { 97 ListenSocket::~ListenSocket() {
98 #if defined(OS_WIN) 98 #if defined(OS_WIN)
99 if (socket_event_) { 99 if (socket_event_) {
100 WSACloseEvent(socket_event_); 100 WSACloseEvent(socket_event_);
101 socket_event_ = WSA_INVALID_EVENT; 101 socket_event_ = WSA_INVALID_EVENT;
102 } 102 }
103 #endif 103 #endif
104 CloseSocket(socket_); 104 CloseSocket(socket_);
105 } 105 }
106 106
107 SOCKET ListenSocket::Listen(std::string ip, int port) { 107 SOCKET ListenSocket::Listen(std::string ip, int port, int protocol) {
108 SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 108 SOCKET s = socket(AF_INET, SOCK_STREAM, protocol);
109 if (s != kInvalidSocket) { 109 if (s != kInvalidSocket) {
110 #if defined(OS_POSIX) 110 #if defined(OS_POSIX)
111 // Allow rapid reuse. 111 // Allow rapid reuse.
112 static const int kOn = 1; 112 static const int kOn = 1;
113 setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &kOn, sizeof(kOn)); 113 setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &kOn, sizeof(kOn));
114 #endif 114 #endif
115 sockaddr_in addr; 115 sockaddr_in addr;
116 memset(&addr, 0, sizeof(addr)); 116 memset(&addr, 0, sizeof(addr));
117 addr.sin_family = AF_INET; 117 addr.sin_family = AF_INET;
118 addr.sin_addr.s_addr = inet_addr(ip.c_str()); 118 addr.sin_addr.s_addr = inet_addr(ip.c_str());
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 } 316 }
317 } 317 }
318 318
319 void ListenSocket::OnFileCanWriteWithoutBlocking(int fd) { 319 void ListenSocket::OnFileCanWriteWithoutBlocking(int fd) {
320 // MessagePumpLibevent callback, we don't listen for write events 320 // MessagePumpLibevent callback, we don't listen for write events
321 // so we shouldn't ever reach here. 321 // so we shouldn't ever reach here.
322 NOTREACHED(); 322 NOTREACHED();
323 } 323 }
324 324
325 #endif 325 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698