|
|
|
@@ -62,9 +62,6 @@ const int program_birth_year = 2000; |
|
|
|
|
|
|
|
static const OptionDef options[]; |
|
|
|
|
|
|
|
/* maximum number of simultaneous HTTP connections */ |
|
|
|
#define HTTP_MAX_CONNECTIONS 2000 |
|
|
|
|
|
|
|
enum HTTPState { |
|
|
|
HTTPSTATE_WAIT_REQUEST, |
|
|
|
HTTPSTATE_SEND_HEADER, |
|
|
|
@@ -295,6 +292,8 @@ static int ffserver_daemon; |
|
|
|
static int no_launch; |
|
|
|
static int need_to_start_children; |
|
|
|
|
|
|
|
/* maximum number of simultaneous HTTP connections */ |
|
|
|
static unsigned int nb_max_http_connections = 2000; |
|
|
|
static int nb_max_connections = 5; |
|
|
|
static int nb_connections; |
|
|
|
|
|
|
|
@@ -543,9 +542,14 @@ static int http_server(void) |
|
|
|
{ |
|
|
|
int server_fd = 0, rtsp_server_fd = 0; |
|
|
|
int ret, delay, delay1; |
|
|
|
struct pollfd poll_table[HTTP_MAX_CONNECTIONS + 2], *poll_entry; |
|
|
|
struct pollfd *poll_table, *poll_entry; |
|
|
|
HTTPContext *c, *c_next; |
|
|
|
|
|
|
|
if(!(poll_table = av_mallocz(nb_max_http_connections + 2))) { |
|
|
|
http_log("Impossible to allocate a poll table handling %d connections.\n", nb_max_http_connections); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
|
|
|
|
if (my_http_addr.sin_port) { |
|
|
|
server_fd = socket_open_listen(&my_http_addr); |
|
|
|
if (server_fd < 0) |
|
|
|
@@ -3816,10 +3820,19 @@ static int parse_ffconfig(const char *filename) |
|
|
|
filename, line_num, arg); |
|
|
|
errors++; |
|
|
|
} |
|
|
|
} else if (!strcasecmp(cmd, "MaxHTTPConnections")) { |
|
|
|
get_arg(arg, sizeof(arg), &p); |
|
|
|
val = atoi(arg); |
|
|
|
if (val < 1 || val > 65536) { |
|
|
|
fprintf(stderr, "%s:%d: Invalid MaxHTTPConnections: %s\n", |
|
|
|
filename, line_num, arg); |
|
|
|
errors++; |
|
|
|
} |
|
|
|
nb_max_http_connections = val; |
|
|
|
} else if (!strcasecmp(cmd, "MaxClients")) { |
|
|
|
get_arg(arg, sizeof(arg), &p); |
|
|
|
val = atoi(arg); |
|
|
|
if (val < 1 || val > HTTP_MAX_CONNECTIONS) { |
|
|
|
if (val < 1 || val > nb_max_http_connections) { |
|
|
|
fprintf(stderr, "%s:%d: Invalid MaxClients: %s\n", |
|
|
|
filename, line_num, arg); |
|
|
|
errors++; |
|
|
|
|