Create an anonymous inode in /tmp using O_TMPFILE and attempt to link the file in place using linkat(). Only fall back to the old file copy when linking the tempfile fails. Avoids double memory use if both the temporary upload file and the destination file are located in /tmp. Ref: https://github.com/openwrt/luci/issues/3654 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
46 lines
1.1 KiB
Makefile
46 lines
1.1 KiB
Makefile
#
|
|
# Copyright (C) 2015 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=cgi-io
|
|
PKG_RELEASE:=18
|
|
|
|
PKG_LICENSE:=GPL-2.0-or-later
|
|
|
|
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/cmake.mk
|
|
|
|
define Package/cgi-io
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=Web Servers/Proxies
|
|
DEPENDS:=+libubox +libubus
|
|
TITLE:=CGI utility for handling up/downloading of files
|
|
endef
|
|
|
|
define Package/cgi-io/description
|
|
This package contains an cgi utility that is useful for up/downloading files
|
|
endef
|
|
|
|
define Build/Prepare
|
|
mkdir -p $(PKG_BUILD_DIR)
|
|
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
|
endef
|
|
|
|
define Package/cgi-io/install
|
|
$(INSTALL_DIR) $(1)/usr/libexec $(1)/www/cgi-bin/
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cgi-io $(1)/usr/libexec
|
|
$(LN) ../../usr/libexec/cgi-io $(1)/www/cgi-bin/cgi-upload
|
|
$(LN) ../../usr/libexec/cgi-io $(1)/www/cgi-bin/cgi-download
|
|
$(LN) ../../usr/libexec/cgi-io $(1)/www/cgi-bin/cgi-backup
|
|
$(LN) ../../usr/libexec/cgi-io $(1)/www/cgi-bin/cgi-exec
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,cgi-io))
|