]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Socket.hh
resizable packets
[chaz/yoink] / src / Moof / Socket.hh
index f1604663b038c37ff408061ca50db4d914ccd38a..a0f2a7cae65bf2da03ee8b57af64f6b754e06c19 100644 (file)
@@ -90,7 +90,16 @@ public:
 
        static SocketAddress broadcast(const std::string& service)
        {
-               return SocketAddress(service, "255.255.255.255", SOCK_DGRAM);
+               std::istringstream stream(service);
+               unsigned short port;
+               stream >> port;
+
+               struct sockaddr_in addr;
+               addr.sin_family = AF_INET;
+               addr.sin_port = htons(port);
+               addr.sin_addr.s_addr = INADDR_BROADCAST;
+               memset(&addr.sin_zero, 0, sizeof(addr.sin_zero));
+               return SocketAddress((sockaddr*)&addr, sizeof(addr), SOCK_DGRAM);
        }
 
 
@@ -193,11 +202,10 @@ public:
                                service.length() > 0 ? service.c_str() : 0, &hints, &list);
                if (status == 0)
                {
-                       struct addrinfo* addr = list;
-                       while (addr != 0)
+                       for (struct addrinfo* addr = list;
+                                       addr != 0; addr = addr->ai_next)
                        {
                                resolved.push_back(SocketAddress(addr, name));
-                               addr = addr->ai_next;
                        }
 
                        freeaddrinfo(list);
This page took 0.017907 seconds and 4 git commands to generate.