/*
This file is part of GNUnet
- (C) 2012, 2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2012, 2013 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file regex/regex_api.c
#include "gnunet_regex_service.h"
#include "regex_ipc.h"
+#define LOG(kind,...) GNUNET_log_from (kind, "regex-api",__VA_ARGS__)
+
/**
* Handle to store cached data about a regex announce.
*/
/**
- * Announce the given peer under the given regular expression. Does
- * not free resources, must call #GNUNET_REGEX_announce_cancel for
- * that.
+ * Announce the given peer under the given regular expression.
*
* @param cfg configuration to use
* @param regex Regular expression to announce.
* @param refresh_delay after what delay should the announcement be repeated?
* @param compression How many characters per edge can we squeeze?
* @return Handle to reuse o free cached resources.
- * Must be freed by calling #GNUNET_REGEX_announce_cancel.
+ * Must be freed by calling #GNUNET_REGEX_announce_cancel().
*/
struct GNUNET_REGEX_Announcement *
GNUNET_REGEX_announce (const struct GNUNET_CONFIGURATION_Handle *cfg,
GNUNET_break (0);
return NULL;
}
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Starting REGEX announcement %s\n",
+ regex);
a = GNUNET_malloc (sizeof (struct GNUNET_REGEX_Announcement) + slen);
a->cfg = cfg;
a->client = GNUNET_CLIENT_connect ("regex", cfg);
/**
* Search message to transmit to the service.
*/
- struct SearchMessage *msg;
+ struct RegexSearchMessage *msg;
};
* We got a response or disconnect after asking regex
* to do the search. Handle it.
*
- * @param cls the 'struct GNUNET_REGEX_Search' to retry
+ * @param cls the `struct GNUNET_REGEX_Search` to handle reply for
* @param msg NULL on disconnect, otherwise presumably a response
*/
static void
&handle_search_response, s,
GNUNET_TIME_UNIT_FOREVER_REL);
pid = &result->id;
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Got regex result %s\n",
+ GNUNET_i2s (pid));
s->callback (s->callback_cls,
pid,
&pid[1], gpl,
/**
* Search for a peer offering a regex matching certain string in the DHT.
- * The search runs until GNUNET_REGEX_search_cancel is called, even if results
+ * The search runs until #GNUNET_REGEX_search_cancel() is called, even if results
* are returned.
*
* @param cfg configuration to use
* @param callback Callback for found peers.
* @param callback_cls Closure for @c callback.
* @return Handle to stop search and free resources.
- * Must be freed by calling GNUNET_REGEX_search_cancel.
+ * Must be freed by calling #GNUNET_REGEX_search_cancel().
*/
struct GNUNET_REGEX_Search *
GNUNET_REGEX_search (const struct GNUNET_CONFIGURATION_Handle *cfg,
struct GNUNET_REGEX_Search *s;
size_t slen;
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Starting regex search for %s\n",
+ string);
slen = strlen (string) + 1;
s = GNUNET_new (struct GNUNET_REGEX_Search);
s->cfg = cfg;
}
s->callback = callback;
s->callback_cls = callback_cls;
- s->msg = GNUNET_malloc (sizeof (struct SearchMessage) + slen);
+ s->msg = GNUNET_malloc (sizeof (struct RegexSearchMessage) + slen);
s->msg->header.type = htons (GNUNET_MESSAGE_TYPE_REGEX_SEARCH);
- s->msg->header.size = htons (sizeof (struct SearchMessage) + slen);
+ s->msg->header.size = htons (sizeof (struct RegexSearchMessage) + slen);
memcpy (&s->msg[1], string, slen);
retry_search (s);
return s;
/**
- * Stop search and free all data used by a GNUNET_REGEX_search call.
+ * Stop search and free all data used by a #GNUNET_REGEX_search() call.
*
- * @param s Handle returned by a previous GNUNET_REGEX_search call.
+ * @param s Handle returned by a previous #GNUNET_REGEX_search() call.
*/
void
GNUNET_REGEX_search_cancel (struct GNUNET_REGEX_Search *s)