@ -411,9 +411,7 @@ static int ffserver_parse_config_global(FFServerConfig *config, const char *cmd,
if ( ! av_strcasecmp ( cmd , " Port " ) )
WARNING ( " Port option is deprecated, use HTTPPort instead \n " ) ;
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
val = atoi ( arg ) ;
if ( val < 1 | | val > 65536 )
ERROR ( " Invalid port: %s \n " , arg ) ;
ffserver_set_int_param ( & val , arg , 0 , 1 , 65535 , config , line_num , " Invalid port: %s \n " , arg ) ;
if ( val < 1024 )
WARNING ( " Trying to use IETF assigned system port: %d \n " , val ) ;
config - > http_addr . sin_port = htons ( val ) ;
@ -422,37 +420,38 @@ static int ffserver_parse_config_global(FFServerConfig *config, const char *cmd,
WARNING ( " BindAddress option is deprecated, use HTTPBindAddress instead \n " ) ;
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
if ( resolve_host ( & config - > http_addr . sin_addr , arg ) ! = 0 )
ERROR ( " %s:%d: Invalid host/IP address: %s\n " , arg ) ;
ERROR ( " Invalid host/IP address: %s \n " , arg ) ;
} else if ( ! av_strcasecmp ( cmd , " NoDaemon " ) ) {
WARNING ( " NoDaemon option has no effect, you should remove it \n " ) ;
} else if ( ! av_strcasecmp ( cmd , " RTSPPort " ) ) {
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
val = atoi ( arg ) ;
if ( val < 1 | | val > 65536 )
ERROR ( " %s:%d: Invalid port: %s \n " , arg ) ;
config - > rtsp_addr . sin_port = htons ( atoi ( arg ) ) ;
ffserver_set_int_param ( & val , arg , 0 , 1 , 65535 , config , line_num , " Invalid port: %s \n " , arg ) ;
config - > rtsp_addr . sin_port = htons ( val ) ;
} else if ( ! av_strcasecmp ( cmd , " RTSPBindAddress " ) ) {
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
if ( resolve_host ( & config - > rtsp_addr . sin_addr , arg ) ! = 0 )
ERROR ( " Invalid host/IP address: %s \n " , arg ) ;
} else if ( ! av_strcasecmp ( cmd , " MaxHTTPConnections " ) ) {
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
val = atoi ( arg ) ;
if ( val < 1 | | val > 65536 )
ERROR ( " Invalid MaxHTTPConnections: %s \n " , arg ) ;
ffserver_set_int_param ( & val , arg , 0 , 1 , 65535 , config , line_num , " Invalid MaxHTTPConnections: %s \n " , arg ) ;
config - > nb_max_http_connections = val ;
if ( config - > nb_max_connections > config - > nb_max_http_connections )
ERROR ( " Inconsistent configuration: MaxClients(%d) > MaxHTTPConnections(%d) \n " ,
config - > nb_max_connections , config - > nb_max_http_connections ) ;
} else if ( ! av_strcasecmp ( cmd , " MaxClients " ) ) {
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
val = atoi ( arg ) ;
if ( val < 1 | | val > config - > nb_max_http_connections )
ERROR ( " Invalid MaxClients: %s \n " , arg ) ;
else
ffserver_set_int_param ( & val , arg , 0 , 1 , 65535 , config , line_num , " Invalid MaxClients: %s \n " , arg ) ;
config - > nb_max_connections = val ;
if ( config - > nb_max_connections > config - > nb_max_http_connections )
ERROR ( " Inconsistent configuration: MaxClients(%d) > MaxHTTPConnections(%d) \n " ,
config - > nb_max_connections , config - > nb_max_http_connections ) ;
} else if ( ! av_strcasecmp ( cmd , " MaxBandwidth " ) ) {
int64_t llval ;
char * tailp ;
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
llval = strtoll ( arg , NULL , 10 ) ;
if ( llval < 10 | | llval > 10000000 )
errno = 0 ;
llval = strtoll ( arg , & tailp , 10 ) ;
if ( llval < 10 | | llval > 10000000 | | tailp [ 0 ] | | errno )
ERROR ( " Invalid MaxBandwidth: %s \n " , arg ) ;
else
config - > max_bandwidth = llval ;
@ -460,7 +459,7 @@ static int ffserver_parse_config_global(FFServerConfig *config, const char *cmd,
if ( ! config - > debug )
ffserver_get_arg ( config - > logfilename , sizeof ( config - > logfilename ) , p ) ;
} else if ( ! av_strcasecmp ( cmd , " LoadModule " ) ) {
ERROR ( " Loadable modules no longer supported \n " ) ;
ERROR ( " Loadable modules are no longer supported \n " ) ;
} else
ERROR ( " Incorrect keyword: '%s' \n " , cmd ) ;
return 0 ;
@ -555,6 +554,9 @@ static int ffserver_parse_config_feed(FFServerConfig *config, const char *cmd, c
case ' G ' :
fsize * = 1024 * 1024 * 1024 ;
break ;
default :
ERROR ( " Invalid file size: %s \n " , arg ) ;
break ;
}
feed - > feed_max_size = ( int64_t ) fsize ;
if ( feed - > feed_max_size < FFM_PACKET_SIZE * 4 )
@ -656,6 +658,7 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd,
{
char arg [ 1024 ] , arg2 [ 1024 ] ;
FFServerStream * stream ;
int val ;
av_assert0 ( pstream ) ;
stream = * pstream ;
@ -948,10 +951,12 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd,
stream - > loop = 1 ; /* default is looping */
} else if ( ! av_strcasecmp ( cmd , " MulticastPort " ) ) {
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
stream - > multicast_port = atoi ( arg ) ;
ffserver_set_int_param ( & val , arg , 0 , 1 , 65535 , config , line_num , " Invalid MulticastPort: %s \n " , arg ) ;
stream - > multicast_port = val ;
} else if ( ! av_strcasecmp ( cmd , " MulticastTTL " ) ) {
ffserver_get_arg ( arg , sizeof ( arg ) , p ) ;
stream - > multicast_ttl = atoi ( arg ) ;
ffserver_set_int_param ( & val , arg , 0 , INT_MIN , INT_MAX , config , line_num , " Invalid MulticastTTL: %s \n " , arg ) ;
stream - > multicast_ttl = val ;
} else if ( ! av_strcasecmp ( cmd , " NoLoop " ) ) {
stream - > loop = 0 ;
} else if ( ! av_strcasecmp ( cmd , " </Stream> " ) ) {