$ git clone https://socialnetwork.ion.nu/socialnetwork.git
commit 0eb942889f61c2bccb9d8f617907042509348f8c
Author: Alicia <...>
Date: Wed Jan 4 23:48:45 2017 +0100
Removed the redundant udpstream_listen(), added udpstream_getsocket()
diff --git a/udpstream.c b/udpstream.c
index 8b3c6c8..2ec291e 100644
--- a/udpstream.c
+++ b/udpstream.c
@@ -250,13 +250,10 @@ ssize_t udpstream_write(struct udpstream* stream, void* buf, size_t size)
return size;
}
-void udpstream_listen(int sock, struct sockaddr* addr, socklen_t addrlen)
-{
- bind(sock, addr, addrlen);
-}
-
void udpstream_getaddr(struct udpstream* stream, struct sockaddr* addr, socklen_t* addrlen)
{
if(*addrlen>stream->addrlen){*addrlen=stream->addrlen;}
memcpy(addr, &stream->addr, *addrlen);
}
+
+int udpstream_getsocket(struct udpstream* stream){return stream->sock;}
diff --git a/udpstream.h b/udpstream.h
index f5a2744..bf18385 100644
--- a/udpstream.h
+++ b/udpstream.h
@@ -14,6 +14,10 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#ifndef UDPSTREAM_H
+#define UDPSTREAM_H
+#include <sys/socket.h>
+
struct udpstream;
// Create a new stream on the given socket that sends and receives to/from the given address
@@ -28,7 +32,8 @@ extern ssize_t udpstream_read(struct udpstream* stream, void* buf, size_t size);
extern ssize_t udpstream_write(struct udpstream* stream, void* buf, size_t size);
-extern void udpstream_listen(int sock, struct sockaddr* addr, socklen_t addrlen);
-
// Get the network address of a stream's peer (useful for UDP-punchthrough)
extern void udpstream_getaddr(struct udpstream* stream, struct sockaddr* addr, socklen_t* addrlen);
+
+extern int udpstream_getsocket(struct udpstream* stream);
+#endif
diff --git a/udptest.c b/udptest.c
index 56a3c9f..1378b8a 100644
--- a/udptest.c
+++ b/udptest.c
@@ -38,7 +38,7 @@ int main(int argc, char** argv)
{
struct addrinfo* ai;
getaddrinfo("0.0.0.0", argv[1], 0, &ai);
- udpstream_listen(sock, ai->ai_addr, ai->ai_addrlen);
+ bind(sock, ai->ai_addr, ai->ai_addrlen);
freeaddrinfo(ai);
}
struct pollfd pfd[]={{.fd=0, .events=POLLIN, .revents=0}, {.fd=sock, .events=POLLIN, .revents=0}};