summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data.c13
-rw-r--r--main.c3
-rw-r--r--snac.h2
3 files changed, 11 insertions, 7 deletions
diff --git a/data.c b/data.c
index bc9f979..82f36a4 100644
--- a/data.c
+++ b/data.c
@@ -2491,25 +2491,28 @@ void notify_clear(snac *snac)
/** searches **/
xs_list *search_by_content(snac *user, const xs_list *timeline,
- const char *regex, int timeout)
+ const char *regex, int max_secs, int *timeout)
/* returns a list of posts which content matches the regex */
{
xs_list *r = xs_list_new();
- if (timeout == 0)
- timeout = 3;
+ if (max_secs == 0)
+ max_secs = 3;
int c = 0;
char *v;
- time_t t = time(NULL) + timeout;
+ time_t t = time(NULL) + max_secs;
+ *timeout = 0;
while (xs_list_next(timeline, &v, &c)) {
xs *post = NULL;
/* timeout? */
- if (time(NULL) > t)
+ if (time(NULL) > t) {
+ *timeout = 1;
break;
+ }
int status;
diff --git a/main.c b/main.c
index 2e1a77c..9244b5a 100644
--- a/main.c
+++ b/main.c
@@ -377,9 +377,10 @@ int main(int argc, char *argv[])
if (strcmp(cmd, "search") == 0) { /** **/
xs *tl = timeline_simple_list(&snac, "private", 0, XS_ALL);
+ int to;
/* 'url' contains the regex */
- xs *r = search_by_content(&snac, tl, url, 10);
+ xs *r = search_by_content(&snac, tl, url, 10, &to);
int c = 0;
char *v;
diff --git a/snac.h b/snac.h
index ae8fc59..7f069ab 100644
--- a/snac.h
+++ b/snac.h
@@ -180,7 +180,7 @@ xs_val *list_content(snac *user, const char *list_id, const char *actor_md5, int
void list_distribute(snac *user, const char *who, const xs_dict *post);
xs_list *search_by_content(snac *user, const xs_list *timeline,
- const char *regex, int timeout);
+ const char *regex, int max_secs, int *timeout);
int actor_add(const char *actor, xs_dict *msg);
int actor_get(const char *actor, xs_dict **data);