]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Service.cc
constructors should be explicit
[chaz/yoink] / src / Moof / Service.cc
index 3432ae6ac12c763857fe25d558442a18f192f66f..da135c1fea51513a2f7a4f3af2ebf8c02ab46293 100644 (file)
 namespace Mf {
 
 
-int Service::handlePacket(SocketMultiplexer& sock,
+int Service::handlePacket(SocketMultiplexer& mux,
                                                  Packet& packet,
                                                  const SocketAddress& address)
 {
-       uint32_t magic = 0;
-
        try
        {
+               uint32_t magic;
                packet >> magic;
+               if (magic == SOLICIT)
+               {
+                       std::string type;
+                       packet >> type;
+                       if (type == mType)
+                       {
+                               packet.clear();
+                               packet << RESPONSE << mType << mName << mText;
+                               mux.socket().write(packet);
+                               return 0;
+                       }
+               }
        }
-       catch (...)
-       {
-               return -1;
-       }
-
-       if (magic == SOLICIT)
-       {
-               Packet out;
-               out << RESPONSE << mType << mName << mText;
-               sock.socket().write(out);
-               return 0;
-       }
+       catch (...) {}
        return -1;
 }
 
-int ServiceFinder::handlePacket(SocketMultiplexer& sock,
+int ServiceFinder::handlePacket(SocketMultiplexer& mux,
                                                                Packet& packet,
                                                                const SocketAddress& address)
 {
@@ -62,16 +62,13 @@ int ServiceFinder::handlePacket(SocketMultiplexer& sock,
                                std::string name;
                                std::string     text;
                                packet >> name >> text;
-                               mServices.insert(std::make_pair(name,
-                                                                                               Service(address, name, text)));
+                               Service service(address, type, name, text);
+                               mServices.insert(std::make_pair(name, service));
                                return 0;
                        }
                }
        }
-       catch (...)
-       {
-       }
-
+       catch (...) {}
        return -1;
 }
 
This page took 0.018491 seconds and 4 git commands to generate.