+/**
+ * The client connected to the server and is now allowed
+ * to send a first message. We transmit a simple message,
+ * ask for a second transmission and get ready to receive
+ * a response.
+ *
+ * @param cls NULL
+ * @param size number of bytes that can be transmitted
+ * @param buf where to copy the message
+ * @return number of bytes copied to @a buf
+ */
+static size_t
+transmit_initial_message (void *cls,
+ size_t size,
+ void *buf)
+{
+ struct GNUNET_MessageHeader msg;
+
+ GNUNET_assert (1 == ok);
+ ok = 2;
+ GNUNET_assert (size >= sizeof (struct GNUNET_MessageHeader));
+ msg.type = htons (MY_TYPE);
+ msg.size = htons (sizeof (struct GNUNET_MessageHeader));
+ memcpy (buf, &msg, sizeof (struct GNUNET_MessageHeader));
+ GNUNET_CLIENT_receive (cc, &first_reply_handler, NULL, TIMEOUT);
+ return sizeof (struct GNUNET_MessageHeader);
+}
+
+
+/**
+ * Message handlers for the server.
+ */