|
|
|
@ -297,23 +297,21 @@ static void *http_root(void *data)
|
|
|
|
|
ast_log(LOG_WARNING, "Accept failed: %s\n", strerror(errno));
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
ser = calloc(1, sizeof(*ser));
|
|
|
|
|
if (ser) {
|
|
|
|
|
ser->fd = fd;
|
|
|
|
|
if ((ser->f = fdopen(ser->fd, "w+"))) {
|
|
|
|
|
if (ast_pthread_create(&launched, NULL, ast_httpd_helper_thread, ser)) {
|
|
|
|
|
ast_log(LOG_WARNING, "Unable to launch helper thread: %s\n", strerror(errno));
|
|
|
|
|
fclose(ser->f);
|
|
|
|
|
free(ser);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
ast_log(LOG_WARNING, "fdopen failed!\n");
|
|
|
|
|
close(ser->fd);
|
|
|
|
|
if (!(ser = ast_calloc(1, sizeof(*ser)))) {
|
|
|
|
|
close(fd);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
ser->fd = fd;
|
|
|
|
|
if ((ser->f = fdopen(ser->fd, "w+"))) {
|
|
|
|
|
if (ast_pthread_create(&launched, NULL, ast_httpd_helper_thread, ser)) {
|
|
|
|
|
ast_log(LOG_WARNING, "Unable to launch helper thread: %s\n", strerror(errno));
|
|
|
|
|
fclose(ser->f);
|
|
|
|
|
free(ser);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
ast_log(LOG_WARNING, "Out of memory!\n");
|
|
|
|
|
close(fd);
|
|
|
|
|
ast_log(LOG_WARNING, "fdopen failed!\n");
|
|
|
|
|
close(ser->fd);
|
|
|
|
|
free(ser);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return NULL;
|
|
|
|
|