author | Stefan Teleman <stefan.teleman@oracle.com> |
Wed, 11 Feb 2015 08:32:10 -0800 | |
changeset 3768 | 34ddbee8e07b |
parent 248 | 3011f7a1ed77 |
permissions | -rw-r--r-- |
3768
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
1 |
# replaced -fvisibility=hidden with -template=no%extdef in CXXFLAGS. |
248
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
2 |
diff -x configure -x aclocal.m4 -ru libtorrent-0.11.9/configure.ac libtorrent-0.11.9-new/configure.ac |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
3 |
--- libtorrent-0.11.9/configure.ac 2007-10-25 09:48:32.000000000 +0000 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
4 |
+++ libtorrent-0.11.9-new/configure.ac 2008-01-13 17:13:30.892756466 +0000 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
5 |
@@ -43,6 +43,7 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
6 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
7 |
dnl TORRENT_WITH_XFS |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
8 |
TORRENT_WITH_KQUEUE |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
9 |
+TORRENT_WITH_PORTS |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
10 |
TORRENT_WITHOUT_EPOLL |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
11 |
TORRENT_WITH_POSIX_FALLOCATE |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
12 |
TORRENT_WITH_ADDRESS_SPACE |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
13 |
diff -x configure -x aclocal.m4 -ru libtorrent-0.11.9/scripts/checks.m4 libtorrent-0.11.9-new/scripts/checks.m4 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
14 |
--- libtorrent-0.11.9/scripts/checks.m4 2007-10-09 01:41:07.000000000 +0000 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
15 |
+++ libtorrent-0.11.9-new/scripts/checks.m4 2008-01-13 17:04:39.692325909 +0000 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
16 |
@@ -85,6 +85,15 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
17 |
]) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
18 |
]) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
19 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
20 |
+AC_DEFUN([TORRENT_WITH_PORTS], [ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
21 |
+ AC_ARG_WITH(ports, |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
22 |
+ [ --with-ports enable Solaris event ports. [[default=no]]], |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
23 |
+ [ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
24 |
+ if test "$withval" = "yes"; then |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
25 |
+ AC_DEFINE(USE_PORTS, 1, Enable event ports.) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
26 |
+ fi |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
27 |
+ ]) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
28 |
+]) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
29 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
30 |
AC_DEFUN([TORRENT_WITHOUT_VARIABLE_FDSET], [ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
31 |
AC_ARG_WITH(variable-fdset, |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
32 |
diff -x configure -x aclocal.m4 -ru libtorrent-0.11.9/src/torrent/Makefile.am libtorrent-0.11.9-new/src/torrent/Makefile.am |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
33 |
--- libtorrent-0.11.9/src/torrent/Makefile.am 2007-02-02 11:09:56.000000000 +0000 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
34 |
+++ libtorrent-0.11.9-new/src/torrent/Makefile.am 2008-01-13 17:51:02.471766611 +0000 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
35 |
@@ -33,6 +33,8 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
36 |
poll_epoll.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
37 |
poll_kqueue.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
38 |
poll_kqueue.cc \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
39 |
+ poll_ports.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
40 |
+ poll_ports.cc \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
41 |
poll_select.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
42 |
poll_select.cc \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
43 |
rate.cc \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
44 |
@@ -65,6 +67,7 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
45 |
path.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
46 |
poll.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
47 |
poll_epoll.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
48 |
+ poll_ports.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
49 |
poll_kqueue.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
50 |
poll_select.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
51 |
rate.h \ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
52 |
diff -urN libtorrent.orig/src/torrent/poll_ports.h libtorrent/src/torrent/poll_ports.h |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
53 |
--- libtorrent.orig/src/torrent/poll_ports.h 1969-12-31 19:00:00.000000000 -0500 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
54 |
+++ libtorrent/src/torrent/poll_ports.h 2008-05-12 00:42:15.000000000 -0400 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
55 |
@@ -0,0 +1,104 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
56 |
+// libTorrent - BitTorrent library |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
57 |
+// Copyright (C) 2005-2007, Jari Sundell |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
58 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
59 |
+// This program is free software; you can redistribute it and/or modify |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
60 |
+// it under the terms of the GNU General Public License as published by |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
61 |
+// the Free Software Foundation; either version 2 of the License, or |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
62 |
+// (at your option) any later version. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
63 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
64 |
+// This program is distributed in the hope that it will be useful, |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
65 |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
66 |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
67 |
+// GNU General Public License for more details. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
68 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
69 |
+// You should have received a copy of the GNU General Public License |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
70 |
+// along with this program; if not, write to the Free Software |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
71 |
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
72 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
73 |
+// In addition, as a special exception, the copyright holders give |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
74 |
+// permission to link the code of portions of this program with the |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
75 |
+// OpenSSL library under certain conditions as described in each |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
76 |
+// individual source file, and distribute linked combinations |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
77 |
+// including the two. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
78 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
79 |
+// You must obey the GNU General Public License in all respects for |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
80 |
+// all of the code used other than OpenSSL. If you modify file(s) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
81 |
+// with this exception, you may extend this exception to your version |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
82 |
+// of the file(s), but you are not obligated to do so. If you do not |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
83 |
+// wish to do so, delete this exception statement from your version. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
84 |
+// If you delete this exception statement from all source files in the |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
85 |
+// program, then also delete it here. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
86 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
87 |
+// Contact: Jari Sundell <[email protected]> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
88 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
89 |
+// Skomakerveien 33 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
90 |
+// 3185 Skoppum, NORWAY |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
91 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
92 |
+#ifndef LIBTORRENT_TORRENT_POLL_PORTS_H |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
93 |
+#define LIBTORRENT_TORRENT_POLL_PORTS_H |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
94 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
95 |
+#include <vector> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
96 |
+#include <map> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
97 |
+#include <torrent/poll.h> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
98 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
99 |
+struct port_event; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
100 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
101 |
+namespace torrent { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
102 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
103 |
+class LIBTORRENT_EXPORT PollPorts : public torrent::Poll { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
104 |
+public: |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
105 |
+ typedef std::pair<Event*,int> ObjectMask; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
106 |
+ typedef std::vector<ObjectMask> Table; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
107 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
108 |
+ static PollPorts* create(int maxOpenSockets); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
109 |
+ virtual ~PollPorts(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
110 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
111 |
+ int poll(int msec); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
112 |
+ void perform(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
113 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
114 |
+ int file_descriptor() { return m_fd; } |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
115 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
116 |
+ virtual uint32_t open_max() const { return m_table.size(); } |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
117 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
118 |
+ // torrent::Event::get_fd() is guaranteed to be valid and remain constant |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
119 |
+ // from open(...) is called to close(...) returns. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
120 |
+ virtual void open(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
121 |
+ virtual void close(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
122 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
123 |
+ // Functions for checking whetever the torrent::Event is listening to r/w/e? |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
124 |
+ virtual bool in_read(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
125 |
+ virtual bool in_write(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
126 |
+ virtual bool in_error(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
127 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
128 |
+ // These functions may be called on 'event's that might, or might |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
129 |
+ // not, already be in the set. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
130 |
+ virtual void insert_read(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
131 |
+ virtual void insert_write(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
132 |
+ virtual void insert_error(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
133 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
134 |
+ virtual void remove_read(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
135 |
+ virtual void remove_write(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
136 |
+ virtual void remove_error(torrent::Event* event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
137 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
138 |
+private: |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
139 |
+ PollPorts(int fd, int maxEvents, int maxOpenSockets); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
140 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
141 |
+ inline Event* event_object(Event* e); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
142 |
+ inline int event_mask(Event* e); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
143 |
+ inline void set_event_object(Event* e); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
144 |
+ inline void set_event_mask(Event* e, int m); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
145 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
146 |
+ inline void modify(torrent::Event* event, int mask); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
147 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
148 |
+ int m_fd; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
149 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
150 |
+ int m_maxEvents; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
151 |
+ int m_waitingEvents; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
152 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
153 |
+ Table m_table; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
154 |
+ port_event* m_events; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
155 |
+}; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
156 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
157 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
158 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
159 |
+#endif |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
160 |
diff -urN libtorrent.orig/src/torrent/poll_ports.cc libtorrent/src/torrent/poll_ports.cc |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
161 |
--- libtorrent.orig/src/torrent/poll_ports.cc 1969-12-31 19:00:00.000000000 -0500 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
162 |
+++ libtorrent/src/torrent/poll_ports.cc 2008-06-10 14:48:05.000000000 -0400 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
163 |
@@ -0,0 +1,338 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
164 |
+// libTorrent - BitTorrent library |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
165 |
+// Copyright (C) 2005-2007, Jari Sundell |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
166 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
167 |
+// This program is free software; you can redistribute it and/or modify |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
168 |
+// it under the terms of the GNU General Public License as published by |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
169 |
+// the Free Software Foundation; either version 2 of the License, or |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
170 |
+// (at your option) any later version. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
171 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
172 |
+// This program is distributed in the hope that it will be useful, |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
173 |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
174 |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
175 |
+// GNU General Public License for more details. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
176 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
177 |
+// You should have received a copy of the GNU General Public License |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
178 |
+// along with this program; if not, write to the Free Software |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
179 |
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
180 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
181 |
+// In addition, as a special exception, the copyright holders give |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
182 |
+// permission to link the code of portions of this program with the |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
183 |
+// OpenSSL library under certain conditions as described in each |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
184 |
+// individual source file, and distribute linked combinations |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
185 |
+// including the two. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
186 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
187 |
+// You must obey the GNU General Public License in all respects for |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
188 |
+// all of the code used other than OpenSSL. If you modify file(s) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
189 |
+// with this exception, you may extend this exception to your version |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
190 |
+// of the file(s), but you are not obligated to do so. If you do not |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
191 |
+// wish to do so, delete this exception statement from your version. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
192 |
+// If you delete this exception statement from all source files in the |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
193 |
+// program, then also delete it here. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
194 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
195 |
+// Contact: Jari Sundell <[email protected]> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
196 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
197 |
+// Skomakerveien 33 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
198 |
+// 3185 Skoppum, NORWAY |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
199 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
200 |
+#include "config.h" |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
201 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
202 |
+#include <cerrno> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
203 |
+#include <cstring> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
204 |
+#include <iostream> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
205 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
206 |
+#include <unistd.h> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
207 |
+#include <torrent/exceptions.h> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
208 |
+#include <torrent/event.h> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
209 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
210 |
+#include "poll_ports.h" |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
211 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
212 |
+#ifdef USE_PORTS |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
213 |
+/* |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
214 |
+ * We should use <poll.h> here, but it seems to conflict with the |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
215 |
+ * <torrent/poll.h> header, so use <sys/poll.h> instead. Since all |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
216 |
+ * poll.h does is include sys/poll.h, this shouldn't cause any |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
217 |
+ * problems. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
218 |
+ */ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
219 |
+# include <sys/poll.h> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
220 |
+# include <port.h> |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
221 |
+#endif |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
222 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
223 |
+namespace torrent { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
224 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
225 |
+#ifdef USE_PORTS |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
226 |
+inline Event* |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
227 |
+PollPorts::event_object(Event* e) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
228 |
+ return m_table[e->file_descriptor()].first; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
229 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
230 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
231 |
+inline int |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
232 |
+PollPorts::event_mask(Event* e) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
233 |
+ if (event_object(e) != e) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
234 |
+ return 0; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
235 |
+ return m_table[e->file_descriptor()].second; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
236 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
237 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
238 |
+inline void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
239 |
+PollPorts::set_event_object(Event* e) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
240 |
+ m_table[e->file_descriptor()] = std::pair<Event*,int>(e, 0); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
241 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
242 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
243 |
+inline void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
244 |
+PollPorts::set_event_mask(Event* e, int m) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
245 |
+ m_table[e->file_descriptor()].second = m; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
246 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
247 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
248 |
+inline void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
249 |
+PollPorts::modify(Event* event, int mask) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
250 |
+ if (event_object(event) != event) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
251 |
+ return; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
252 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
253 |
+ if (event_mask(event) == mask) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
254 |
+ return; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
255 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
256 |
+ set_event_mask(event, mask); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
257 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
258 |
+ if (mask == 0) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
259 |
+ port_dissociate(m_fd, PORT_SOURCE_FD, event->file_descriptor()); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
260 |
+ return; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
261 |
+ } |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
262 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
263 |
+ if (port_associate(m_fd, PORT_SOURCE_FD, event->file_descriptor(), |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
264 |
+ mask, event) == -1) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
265 |
+ throw internal_error("PollPorts::modify(...) port_associate failed"); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
266 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
267 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
268 |
+PollPorts* |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
269 |
+PollPorts::create(int maxOpenSockets) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
270 |
+ int fd = port_create(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
271 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
272 |
+ if (fd == -1) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
273 |
+ return NULL; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
274 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
275 |
+ return new PollPorts(fd, 1024, maxOpenSockets); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
276 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
277 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
278 |
+PollPorts::PollPorts(int fd, int maxEvents, int maxOpenSockets) : |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
279 |
+ m_fd(fd), |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
280 |
+ m_maxEvents(maxEvents), |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
281 |
+ m_waitingEvents(0), |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
282 |
+ m_events(new port_event_t[maxEvents]) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
283 |
+ m_table.resize(maxOpenSockets); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
284 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
285 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
286 |
+PollPorts::~PollPorts() { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
287 |
+ m_table.clear(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
288 |
+ delete [] m_events; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
289 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
290 |
+ ::close(m_fd); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
291 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
292 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
293 |
+int |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
294 |
+PollPorts::poll(int msec) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
295 |
+ timespec_t timeout; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
296 |
+ timeout.tv_sec = msec / 1000; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
297 |
+ timeout.tv_nsec = (msec * 1000000L) % 1000000000L; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
298 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
299 |
+ uint_t nfds = 1; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
300 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
301 |
+ int ret = port_getn(m_fd, m_events, m_maxEvents, &nfds, &timeout); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
302 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
303 |
+ if (ret == -1 && errno != ETIME) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
304 |
+ std::cerr << "error from ports, maxevents="<<m_maxEvents<<", nfds="<<nfds<<" msec="<<msec<<"\n"; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
305 |
+ return -1; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
306 |
+ } |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
307 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
308 |
+ return m_waitingEvents = nfds; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
309 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
310 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
311 |
+// We check m_table to make sure the Event is still listening to the |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
312 |
+// event, so it is safe to remove Event's while in working. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
313 |
+// |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
314 |
+// TODO: Do we want to guarantee if the Event has been removed from |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
315 |
+// some event but not closed, it won't call that event? Think so... |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
316 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
317 |
+PollPorts::perform() { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
318 |
+ for (port_event_t *itr = m_events, *last = m_events + m_waitingEvents; itr != last; ++itr) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
319 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
320 |
+ // Each branch must check for data.ptr != NULL to allow the socket |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
321 |
+ // to remove itself between the calls. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
322 |
+ // |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
323 |
+ // TODO: Make it so that it checks that read/write is wanted, that |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
324 |
+ // it wasn't removed from one of them but not closed. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
325 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
326 |
+ Event *e = static_cast<Event*>(itr->portev_user); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
327 |
+ if (e == NULL) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
328 |
+ continue; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
329 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
330 |
+ if (itr->portev_events & POLLERR |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
331 |
+ && event_mask(e) & POLLERR) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
332 |
+ e->event_error(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
333 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
334 |
+ if (itr->portev_user != e) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
335 |
+ continue; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
336 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
337 |
+ if (itr->portev_events & POLLIN |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
338 |
+ && event_mask(e) & POLLIN) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
339 |
+ e->event_read(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
340 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
341 |
+ if (itr->portev_user != e) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
342 |
+ continue; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
343 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
344 |
+ if (itr->portev_events & POLLOUT |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
345 |
+ && event_mask(e) & POLLOUT) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
346 |
+ e->event_write(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
347 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
348 |
+ if (itr->portev_user != e) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
349 |
+ continue; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
350 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
351 |
+ // Since port events are one-shot, re-add the fd after we process |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
352 |
+ // its events. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
353 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
354 |
+ port_associate(m_fd, PORT_SOURCE_FD, itr->portev_object, |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
355 |
+ event_mask(e), e); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
356 |
+ } |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
357 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
358 |
+ m_waitingEvents = 0; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
359 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
360 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
361 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
362 |
+PollPorts::open(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
363 |
+ if (event_object(event) == event && event_mask(event) != 0) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
364 |
+ throw internal_error("PollPorts::open(...) called but the file descriptor is active"); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
365 |
+ set_event_object(event); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
366 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
367 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
368 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
369 |
+PollPorts::close(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
370 |
+ if (event_mask(event) != 0) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
371 |
+ throw internal_error("PollPorts::close(...) called but the file descriptor is active"); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
372 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
373 |
+ for (port_event_t *itr = m_events, *last = m_events + m_waitingEvents; itr != last; ++itr) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
374 |
+ if (itr->portev_user == event) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
375 |
+ itr->portev_user = NULL; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
376 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
377 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
378 |
+bool |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
379 |
+PollPorts::in_read(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
380 |
+ return event_mask(event) & POLLIN; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
381 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
382 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
383 |
+bool |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
384 |
+PollPorts::in_write(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
385 |
+ return event_mask(event) & POLLOUT; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
386 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
387 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
388 |
+bool |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
389 |
+PollPorts::in_error(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
390 |
+ return event_mask(event) & POLLERR; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
391 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
392 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
393 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
394 |
+PollPorts::insert_read(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
395 |
+ modify(event, event_mask(event) | POLLIN); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
396 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
397 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
398 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
399 |
+PollPorts::insert_write(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
400 |
+ modify(event, event_mask(event) | POLLOUT); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
401 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
402 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
403 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
404 |
+PollPorts::insert_error(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
405 |
+ modify(event, event_mask(event) | POLLERR); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
406 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
407 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
408 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
409 |
+PollPorts::remove_read(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
410 |
+ modify(event, event_mask(event) & ~POLLIN); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
411 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
412 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
413 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
414 |
+PollPorts::remove_write(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
415 |
+ modify(event, event_mask(event) & ~POLLOUT); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
416 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
417 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
418 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
419 |
+PollPorts::remove_error(Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
420 |
+ modify(event, event_mask(event) & ~POLLERR); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
421 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
422 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
423 |
+#else // USE_PORTS |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
424 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
425 |
+PollPorts* |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
426 |
+PollPorts::create(int maxOpenSockets) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
427 |
+ return NULL; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
428 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
429 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
430 |
+PollPorts::~PollPorts() { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
431 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
432 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
433 |
+int |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
434 |
+PollPorts::poll(int msec) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
435 |
+ throw internal_error("An PollPorts function was called, but it is disabled."); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
436 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
437 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
438 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
439 |
+PollPorts::perform() { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
440 |
+ throw internal_error("An PollPorts function was called, but it is disabled."); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
441 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
442 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
443 |
+uint32_t |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
444 |
+PollPorts::open_max() const { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
445 |
+ throw internal_error("An PollPorts function was called, but it is disabled."); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
446 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
447 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
448 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
449 |
+PollPorts::open(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
450 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
451 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
452 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
453 |
+PollPorts::close(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
454 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
455 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
456 |
+bool |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
457 |
+PollPorts::in_read(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
458 |
+ throw internal_error("An PollPorts function was called, but it is disabled."); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
459 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
460 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
461 |
+bool |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
462 |
+PollPorts::in_write(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
463 |
+ throw internal_error("An PollPorts function was called, but it is disabled."); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
464 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
465 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
466 |
+bool |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
467 |
+PollPorts::in_error(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
468 |
+ throw internal_error("An PollPorts function was called, but it is disabled."); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
469 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
470 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
471 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
472 |
+PollPorts::insert_read(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
473 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
474 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
475 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
476 |
+PollPorts::insert_write(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
477 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
478 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
479 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
480 |
+PollPorts::insert_error(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
481 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
482 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
483 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
484 |
+PollPorts::remove_read(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
485 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
486 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
487 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
488 |
+PollPorts::remove_write(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
489 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
490 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
491 |
+void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
492 |
+PollPorts::remove_error(torrent::Event* event) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
493 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
494 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
495 |
+PollPorts::PollPorts(int fd, int maxEvents, int maxOpenSockets) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
496 |
+ throw internal_error("An PollPorts function was called, but it is disabled."); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
497 |
+} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
498 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
499 |
+#endif // USE_PORTS |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
500 |
+ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
501 |
+} |
3768
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
502 |
--- libtorrent-0.12.2/scripts/attributes.m4 2008-05-07 05:19:12.000000000 -0700 |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
503 |
+++ libtorrent-0.12.2/scripts/attributes.m4 2015-01-29 08:45:29.333056494 -0800 |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
504 |
@@ -62,7 +62,7 @@ |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
505 |
AC_LANG_PUSH(C++) |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
506 |
|
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
507 |
tmp_CXXFLAGS=$CXXFLAGS |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
508 |
- CXXFLAGS="$CXXFLAGS -fvisibility=hidden" |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
509 |
+ CXXFLAGS="$CXXFLAGS -template=no%extdef" |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
510 |
|
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
511 |
AC_CACHE_CHECK([if compiler supports __attribute__((visibility("default")))], |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
512 |
[cc_cv_attribute_visibility], |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
513 |
@@ -78,7 +78,7 @@ |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
514 |
|
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
515 |
if test "x$cc_cv_attribute_visibility" = "xyes"; then |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
516 |
AC_DEFINE([SUPPORT_ATTRIBUTE_VISIBILITY], 1, [Define this if the compiler supports the visibility attributes.]) |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
517 |
- CXXFLAGS="$CXXFLAGS -fvisibility=hidden" |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
518 |
+ CXXFLAGS="$CXXFLAGS -template=no%extdef" |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
519 |
$1 |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
520 |
else |
34ddbee8e07b
18170752 New Pythia C++ compiler requires couple of changes in libtorrent-0.12.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
248
diff
changeset
|
521 |
true |