return (0);
} /* }}} int reply_add_keyval */
+static void reply_dump (const mt_reply_t *r) /* {{{ */
+{
+ if (r == NULL)
+ return;
+
+ printf ("=== BEGIN REPLY ===\n"
+ "Address: %p\n"
+ "Status: %s\n",
+ (void *) r, r->status);
+ if (r->params_num > 0)
+ {
+ unsigned int i;
+
+ printf ("Arguments:\n");
+ for (i = 0; i < r->params_num; i++)
+ printf (" %3u: %s = %s\n", i, r->keys[i], r->values[i]);
+ }
+ if (r->next != NULL)
+ printf ("Next: %p\n", (void *) r->next);
+ printf ("=== END REPLY ===\n");
+
+ reply_dump (r->next);
+} /* }}} void reply_dump */
+
static void reply_free (mt_reply_t *r) /* {{{ */
{
mt_reply_t *next;
return (EINVAL);
printf ("login2_handler has been called.\n");
+ reply_dump (r);
return (0);
} /* }}} int login2_handler */
return (EINVAL);
printf ("login_handler has been called.\n");
+ reply_dump (r);
login_data = user_data;
if (login_data == NULL)