]> git.tdb.fi Git - xinema.git/blobdiff - source/networkinterface.cpp
Remove a debug print
[xinema.git] / source / networkinterface.cpp
index 74c80dc6263aa9a17963f26ffa3e4da2a4bb09dc..e5283b6ff96791c068b334e0a42ea1a0d102ad91 100644 (file)
@@ -12,11 +12,15 @@ NetworkInterface::NetworkInterface(Xinema &x):
        Net::SockAddr *addr = Net::resolve("::", "34588", Net::INET6);
        server_sock = new Net::StreamServerSocket(addr->get_family());
        server_sock->listen(*addr);
+       discover_sock = new Net::DatagramSocket(addr->get_family());
+       discover_sock->bind(*addr);
        delete addr;
 
        server_sock->signal_data_available.connect(sigc::mem_fun(this, &NetworkInterface::connection_available));
+       discover_sock->signal_data_available.connect(sigc::mem_fun(this, &NetworkInterface::discover_request));
 
        event_disp.add(*server_sock);
+       event_disp.add(*discover_sock);
 
        thread = new NetworkThread(*this);
 }
@@ -35,6 +39,15 @@ void NetworkInterface::connection_available()
        clients.push_back(new Client(xinema, sock));
 }
 
+void NetworkInterface::discover_request()
+{
+       Net::SockAddr *peer_addr;
+       char rbuf[1024];
+       discover_sock->recvfrom(rbuf, sizeof(rbuf), peer_addr);
+       discover_sock->sendto("xinema", 6, *peer_addr);
+       delete peer_addr;
+}
+
 
 NetworkInterface::NetworkThread::NetworkThread(NetworkInterface &n):
        network(n),