--- /dev/null
+
+/*] Copyright (c) 2009-2010, Charles McGarvey [**************************
+**] All rights reserved.
+*
+* vi:ts=4 sw=4 tw=75
+*
+* Distributable under the terms and conditions of the 2-clause BSD license;
+* see the file COPYING for a complete text of the license.
+*
+**************************************************************************/
+
+#include "service.hh"
+#include "socket.hh"
+
+
+#define SOLICIT 0x1234ABCD
+#define RESPONSE 0xABCD1234
+
+
+namespace moof {
+
+
+int service::handle_packet(socket_multiplexer& mux,
+ packet& packet,
+ const socket::address& address)
+{
+ try
+ {
+ uint32_t magic;
+ packet >> magic;
+ if (magic == SOLICIT)
+ {
+ std::string type;
+ packet >> type;
+ if (type == type_)
+ {
+ packet.clear();
+ packet << RESPONSE << type_ << name_ << text_;
+ mux.socket().write(packet);
+ return 0;
+ }
+ }
+ }
+ catch (...) {}
+ return -1;
+}
+
+int service_finder::handle_packet(socket_multiplexer& mux,
+ packet& packet,
+ const socket::address& address)
+{
+ try
+ {
+ uint32_t magic;
+ packet >> magic;
+ if (magic == RESPONSE)
+ {
+ std::string type;
+ packet >> type;
+ if (type == type_)
+ {
+ std::string name;
+ std::string text;
+ packet >> name >> text;
+ service service(address, type, name, text);
+ services_.insert(std::make_pair(name, service));
+ return 0;
+ }
+ }
+ }
+ catch (...) {}
+ return -1;
+}
+
+service_finder::service_finder(const std::string& type, int sockType)
+{
+}
+
+
+} // namespace moof
+