@@ -39,6 +39,7 @@ int cmd_upstream_interface_set = 0;
3939int cmd_upstream_interface_fcc_set = 0 ;
4040int cmd_upstream_interface_rtsp_set = 0 ;
4141int cmd_upstream_interface_multicast_set = 0 ;
42+ int cmd_upstream_interface_http_set = 0 ;
4243int cmd_fcc_listen_port_range_set = 0 ;
4344int cmd_status_page_path_set = 0 ;
4445int cmd_player_page_path_set = 0 ;
@@ -513,6 +514,14 @@ void parse_global_sec(char *line) {
513514 return ;
514515 }
515516
517+ if (strcasecmp ("upstream-interface-http" , param ) == 0 ) {
518+ if (set_if_not_cmd_override (cmd_upstream_interface_http_set ,
519+ "upstream-interface-http" )) {
520+ strncpy (config .upstream_interface_http , value , IFNAMSIZ - 1 );
521+ }
522+ return ;
523+ }
524+
516525 if (strcasecmp ("mcast-rejoin-interval" , param ) == 0 ) {
517526 if (set_if_not_cmd_override (cmd_mcast_rejoin_interval_set ,
518527 "mcast-rejoin-interval" )) {
@@ -858,6 +867,8 @@ void config_init(void) {
858867 memset (config .upstream_interface_rtsp , 0 , IFNAMSIZ );
859868 if (!cmd_upstream_interface_multicast_set )
860869 memset (config .upstream_interface_multicast , 0 , IFNAMSIZ );
870+ if (!cmd_upstream_interface_http_set )
871+ memset (config .upstream_interface_http , 0 , IFNAMSIZ );
861872
862873 /* External M3U settings (only if not set by command line) */
863874 if (!cmd_external_m3u_update_interval_set )
@@ -974,6 +985,8 @@ void usage(FILE *f, char *progname) {
974985 "traffic (overrides -i)\n"
975986 "\t-r --upstream-interface-multicast <interface> Interface for "
976987 "multicast traffic (overrides -i)\n"
988+ "\t-y --upstream-interface-http <interface> Interface for HTTP proxy "
989+ "upstream traffic (overrides -i)\n"
977990 "\t-R --mcast-rejoin-interval <seconds> Periodic multicast rejoin "
978991 "interval (0=disabled, default 0)\n"
979992 "\t-F --ffmpeg-path <path> Path to ffmpeg executable (default: ffmpeg)\n"
@@ -1048,6 +1061,7 @@ void parse_cmd_line(int argc, char *argv[]) {
10481061 {"upstream-interface-fcc" , required_argument , 0 , 'f' },
10491062 {"upstream-interface-rtsp" , required_argument , 0 , 't' },
10501063 {"upstream-interface-multicast" , required_argument , 0 , 'r' },
1064+ {"upstream-interface-http" , required_argument , 0 , 'y' },
10511065 {"mcast-rejoin-interval" , required_argument , 0 , 'R' },
10521066 {"ffmpeg-path" , required_argument , 0 , 'F' },
10531067 {"ffmpeg-args" , required_argument , 0 , 'A' },
@@ -1060,7 +1074,7 @@ void parse_cmd_line(int argc, char *argv[]) {
10601074 {"rtsp-stun-server" , required_argument , 0 , 'N' },
10611075 {0 , 0 , 0 , 0 }};
10621076
1063- const char short_opts [] = "v:qhUm:w:b:B:c:l:P:H:XT:i:f:t:r:R:F:A:s:p:M:I:SCZN:" ;
1077+ const char short_opts [] = "v:qhUm:w:b:B:c:l:P:H:XT:i:f:t:r:y: R:F:A:s:p:M:I:SCZN:" ;
10641078 int option_index , opt ;
10651079 int configfile_failed = 1 ;
10661080
@@ -1189,6 +1203,10 @@ void parse_cmd_line(int argc, char *argv[]) {
11891203 strncpy (config .upstream_interface_multicast , optarg , IFNAMSIZ - 1 );
11901204 cmd_upstream_interface_multicast_set = 1 ;
11911205 break ;
1206+ case 'y' :
1207+ strncpy (config .upstream_interface_http , optarg , IFNAMSIZ - 1 );
1208+ cmd_upstream_interface_http_set = 1 ;
1209+ break ;
11921210 case 'R' :
11931211 if (atoi (optarg ) < 0 ) {
11941212 logger (LOG_ERROR , "Invalid mcast-rejoin-interval! Ignoring." );
0 commit comments