- im = (const struct InfoMessage *) msg;
- GNUNET_break (0 == ntohl (im->reserved));
- hello = NULL;
- if (ms > sizeof (struct InfoMessage) + sizeof (struct GNUNET_MessageHeader))
- {
- hello = (const struct GNUNET_HELLO_Message *) &im[1];
- if (ms != sizeof (struct InfoMessage) + GNUNET_HELLO_size (hello))
- {
- char * err_msg;
- GNUNET_asprintf(&err_msg,_("Received invalid message from `%s' service.\n"),"PEERINFO");
- GNUNET_break (0);
- reconnect (ic->h);
- trigger_transmit (ic->h);
- if (ic->timeout_task != GNUNET_SCHEDULER_NO_TASK)
- GNUNET_SCHEDULER_cancel (ic->timeout_task);
- if (ic->callback != NULL)
- ic->callback (ic->callback_cls, NULL, NULL, err_msg);
- GNUNET_free (ic);
- GNUNET_free (err_msg);
- return;
- }
- }