Commit af6fc64a authored by Marko Mikulicic's avatar Marko Mikulicic Committed by Cesanta Bot

Add restart flag to ourci workers

PUBLISHED_FROM=f85aaf2215f8323866eab9fb5143407b44fa1959
parent ff159bf3
...@@ -22,11 +22,13 @@ static void event_handler(struct mg_connection *nc, int event, void *data) { ...@@ -22,11 +22,13 @@ static void event_handler(struct mg_connection *nc, int event, void *data) {
case MG_EV_CONNECT: case MG_EV_CONNECT:
connect_status = *(int *) data; connect_status = *(int *) data;
if (connect_status != 0) { if (connect_status != 0) {
printf("Error while loading page: %s, error: %s\n", ((struct userdata*) nc->user_data)->url, strerror(connect_status)); printf("Error while loading page: %s, error: %s\n",
((struct userdata *) nc->user_data)->url,
strerror(connect_status));
} }
break; break;
case MG_EV_CLOSE: case MG_EV_CLOSE:
free(((struct userdata*) nc->user_data)->url); free(((struct userdata *) nc->user_data)->url);
free(nc->user_data); free(nc->user_data);
break; break;
case MG_EV_HTTP_REPLY: case MG_EV_HTTP_REPLY:
...@@ -53,7 +55,8 @@ int main() { ...@@ -53,7 +55,8 @@ int main() {
return 0; return 0;
} }
void crawl_page(struct mg_mgr *mgr, const char *url, size_t url_len, int depth) { void crawl_page(struct mg_mgr *mgr, const char *url, size_t url_len,
int depth) {
struct mg_connection *nc; struct mg_connection *nc;
struct userdata *data = malloc(sizeof(struct userdata)); struct userdata *data = malloc(sizeof(struct userdata));
...@@ -73,10 +76,7 @@ void handle_reply(struct mg_connection *nc, struct http_message *hm) { ...@@ -73,10 +76,7 @@ void handle_reply(struct mg_connection *nc, struct http_message *hm) {
struct userdata *ud = (struct userdata *) nc->user_data; struct userdata *ud = (struct userdata *) nc->user_data;
const char *body = hm->body.p; const char *body = hm->body.p;
int offset, int offset, max_matches = 2, cursor = 0, str_len = strlen(body);
max_matches = 2,
cursor = 0,
str_len = strlen(body);
struct slre_cap caps[max_matches]; struct slre_cap caps[max_matches];
printf("Loaded url: %s at depth %d\n", ud->url, ud->depth); printf("Loaded url: %s at depth %d\n", ud->url, ud->depth);
...@@ -84,7 +84,9 @@ void handle_reply(struct mg_connection *nc, struct http_message *hm) { ...@@ -84,7 +84,9 @@ void handle_reply(struct mg_connection *nc, struct http_message *hm) {
return; return;
} }
while (cursor < str_len && (offset = slre_match(regex, body + cursor, str_len - cursor, caps, max_matches, SLRE_IGNORE_CASE)) > 0) { while (cursor < str_len &&
(offset = slre_match(regex, body + cursor, str_len - cursor, caps,
max_matches, SLRE_IGNORE_CASE)) > 0) {
crawl_page(nc->mgr, caps[0].ptr, caps[0].len, ud->depth + 1); crawl_page(nc->mgr, caps[0].ptr, caps[0].len, ud->depth + 1);
cursor += offset; cursor += offset;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment