summaryrefslogtreecommitdiff
path: root/src/SFML/Network/UdpSocket.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/SFML/Network/UdpSocket.cpp')
-rw-r--r--src/SFML/Network/UdpSocket.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/SFML/Network/UdpSocket.cpp b/src/SFML/Network/UdpSocket.cpp
index ffa1494..f3e544d 100644
--- a/src/SFML/Network/UdpSocket.cpp
+++ b/src/SFML/Network/UdpSocket.cpp
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
-// Copyright (C) 2007-2015 Laurent Gomila (laurent@sfml-dev.org)
+// Copyright (C) 2007-2016 Laurent Gomila (laurent@sfml-dev.org)
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
@@ -64,14 +64,18 @@ unsigned short UdpSocket::getLocalPort() const
////////////////////////////////////////////////////////////
-Socket::Status UdpSocket::bind(unsigned short port)
+Socket::Status UdpSocket::bind(unsigned short port, const IpAddress& address)
{
// Create the internal socket if it doesn't exist
create();
+ // Check if the address is valid
+ if ((address == IpAddress::None) || (address == IpAddress::Broadcast))
+ return Error;
+
// Bind the socket
- sockaddr_in address = priv::SocketImpl::createAddress(INADDR_ANY, port);
- if (::bind(getHandle(), reinterpret_cast<sockaddr*>(&address), sizeof(address)) == -1)
+ sockaddr_in addr = priv::SocketImpl::createAddress(address.toInteger(), port);
+ if (::bind(getHandle(), reinterpret_cast<sockaddr*>(&addr), sizeof(addr)) == -1)
{
err() << "Failed to bind socket to port " << port << std::endl;
return Error;