summaryrefslogtreecommitdiff
path: root/grid/message.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'grid/message.cpp')
-rw-r--r--grid/message.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/grid/message.cpp b/grid/message.cpp
index c9f512064bf..40b6af6f7cc 100644
--- a/grid/message.cpp
+++ b/grid/message.cpp
@@ -58,9 +58,19 @@ struct MsgStart {
}
} msgstart;
-MessagingPort::MessagingPort(int _sock, SockAddr& _far) : sock(_sock), farEnd(_far) { }
+set<MessagingPort*> ports;
+
+void closeAllSockets() {
+ for( set<MessagingPort*>::iterator i = ports.begin(); i != ports.end(); i++ )
+ (*i)->shutdown();
+}
+
+MessagingPort::MessagingPort(int _sock, SockAddr& _far) : sock(_sock), farEnd(_far) {
+ ports.insert(this);
+}
MessagingPort::MessagingPort() {
+ ports.insert(this);
sock = -1;
}
@@ -73,6 +83,7 @@ void MessagingPort::shutdown() {
MessagingPort::~MessagingPort() {
shutdown();
+ ports.erase(this);
}
bool MessagingPort::connect(SockAddr& _far)