diff --git a/general/package/all-patches/busybox/0102-add-onvif-dir-support.patch b/general/package/all-patches/busybox/0102-add-onvif-dir-support.patch new file mode 100644 index 00000000..dd76701c --- /dev/null +++ b/general/package/all-patches/busybox/0102-add-onvif-dir-support.patch @@ -0,0 +1,17 @@ +diff -Naur a/networking/httpd.c b/networking/httpd.c +--- a/networking/httpd.c 2023-07-19 20:00:29.413569385 +0200 ++++ b/networking/httpd.c 2023-07-19 20:02:07.024333868 +0200 +@@ -2390,6 +2390,13 @@ + } + cgi_type = CGI_NORMAL; + } ++ else if (is_prefixed_with(tptr, "onvif/")) { ++ if (tptr[6] == '\0') { ++ /* protect listing "cgi-bin/" */ ++ send_headers_and_exit(HTTP_FORBIDDEN); ++ } ++ cgi_type = CGI_NORMAL; ++ } + #endif + + if (urlp[-1] == '/') { diff --git a/general/package/onvif-simple-server/files/onvif.conf b/general/package/onvif-simple-server/files/onvif.conf index 56a1947c..ce6ec750 100644 --- a/general/package/onvif-simple-server/files/onvif.conf +++ b/general/package/onvif-simple-server/files/onvif.conf @@ -5,7 +5,7 @@ firmware_ver=2.3.7.x hardware_id=HI5518EV200_OV9732_NOR16M serial_num=OPENIPC.ORG ifs=wlan0 -port=8899 +port=85 scope=onvif://www.onvif.org/Profile/Streaming user=admin password=123456 diff --git a/general/package/onvif-simple-server/onvif-simple-server.mk b/general/package/onvif-simple-server/onvif-simple-server.mk index ab14c440..b80dcd4d 100644 --- a/general/package/onvif-simple-server/onvif-simple-server.mk +++ b/general/package/onvif-simple-server/onvif-simple-server.mk @@ -6,7 +6,7 @@ ONVIF_SIMPLE_SERVER_SITE_METHOD = git ONVIF_SIMPLE_SERVER_SITE = https://github.com/roleoroleo/onvif_simple_server -ONVIF_SIMPLE_SERVER_VERSION = 7dc083fdd2a3cf3465945616c6d8d15e200a5707 +ONVIF_SIMPLE_SERVER_VERSION = 74d4959684341328a5f7467590e1b139332d3497 ONVIF_SIMPLE_SERVER_DEPENDENCIES = mbedtls-openipc ONVIF_SIMPLE_SERVER_LICENSE = MIT @@ -22,6 +22,19 @@ define ONVIF_SIMPLE_SERVER_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -t $(TARGET_DIR)/usr/sbin $(@D)/wsd_simple_server $(INSTALL) -m 0755 -d $(TARGET_DIR)/etc $(INSTALL) -m 0644 -t $(TARGET_DIR)/etc $(ONVIF_SIMPLE_SERVER_PKGDIR)/files/onvif.conf + $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/onvif/device_service_files + $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/onvif/device_service_files $(@D)/device_service_files/* + $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/onvif/generic_files + $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/onvif/generic_files $(@D)/generic_files/* + $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/onvif/media_service_files + $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/onvif/media_service_files $(@D)/media_service_files/* + $(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/onvif/ptz_service_files + $(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/onvif/ptz_service_files $(@D)/ptz_service_files/* + + ln -s /usr/sbin/onvif_simple_server $(TARGET_DIR)/var/www/onvif/device_service + ln -s /usr/sbin/onvif_simple_server $(TARGET_DIR)/var/www/onvif/events_service + ln -s /usr/sbin/onvif_simple_server $(TARGET_DIR)/var/www/onvif/media_service + ln -s /usr/sbin/onvif_simple_server $(TARGET_DIR)/var/www/onvif/ptz_service endef $(eval $(generic-package))