Description
Description / Steps to reproduce the issue
As best as I can tell, the CGI script handling side of THTTPD is broken.
The server can deliver webpages with no problem (as long as you guess all the Kconfig settings it needs), and correctly detects calls to CGI applications and runs them. All the data is passed to the CGI app (and I can save a file from a POST handler script/app) but if the app attempts to send data back to the calling webpage (e.g. http status codes) the actual write fails completely as it deems the stdout pipe to have incorrect write privileges.
This is true of the example app "hello" CGI app and also for a few I created. They all behave the same.
Either it is broken, or there's a magic Kconfig setting I have not fathomed out. I need fairy dust.
For now, I have given up trying to debug it as it is just behaving weirdly, but I would be interested to know if anyone is actually using it for CGI scripts successfully?
I have gone back to trying to use uIP webserver which, by design, is woefully inadequate, only surporting GET methods, but I will see if I can coerce it to respond to a PUT (which maps to GET in html 5) or POST (which is outright rejected at the moment), either by minor enhancement to it or doing what I want with a REST API. But I had really, and not unreasonably I think, hoped that NuttX would offer a working, integrated, webserver for me to use "out of the box".
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_ACT8945A_LDO1_PULLDOWN is not set
# CONFIG_ACT8945A_LDO2_BOOT_ON is not set
# CONFIG_DEV_RANDOM is not set
# CONFIG_DISABLE_OS_API is not set
# CONFIG_FS_ANONMAP is not set
# CONFIG_LV_BUILD_EXAMPLES is not set
# CONFIG_LV_FONT_MONTSERRAT_14 is not set
# CONFIG_NETUTILS_DHCPD_IGNOREBROADCAST is not set
# CONFIG_NSH_ALIAS is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_DISABLE_DATE is not set
# CONFIG_SAMA5D27_JTIT2_PROTECT_BOOTFLASH is not set
# CONFIG_SAMA5_PWM_CHAN0_OUTPUTH is not set
# CONFIG_SAMA5_PWM_CHAN2_OUTPUTH is not set
# CONFIG_SAMA5_PWM_CHAN3_OUTPUTH is not set
# CONFIG_SAMA5_RXLP is not set
# CONFIG_SAMA5_UART0 is not set
# CONFIG_SIG_SIGSTOP_ACTION is not set
# CONFIG_SYSTEM_DD is not set
# CONFIG_SYSTEM_SETTINGS_CACHED_SAVES is not set
CONFIG_ACT8945A_DCDC1_NAME="VDD_IODDR"
CONFIG_ACT8945A_DCDC2_NAME="VDD_CORE"
CONFIG_ACT8945A_DCDC3_NAME="VDD_3V3"
CONFIG_ACT8945A_LDO1_NAME="VDD_FUSE"
CONFIG_ACT8945A_LDO2_NAME="VDD_3V3_LP"
CONFIG_ACT8945A_LDO3_APPLY_UV=y
CONFIG_ACT8945A_LDO3_BOOT_ON=y
CONFIG_ACT8945A_LDO3_MAX_UV=3300
CONFIG_ACT8945A_LDO3_MIN_UV=3300
CONFIG_ACT8945A_LDO3_NAME="VDD_LED"
CONFIG_ACT8945A_LDO4_NAME="VDD_GPS_ANTENNA"
CONFIG_ADC_FIFOSIZE=40
CONFIG_APDS9922_ALS_NPOLLWAITERS=4
CONFIG_APDS9922_PS_NPOLLWAITERS=4
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD_CUSTOM=y
CONFIG_ARCH_BOARD_CUSTOM_DIR="../CustomBoards/jti-toucan2"
CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
CONFIG_ARCH_BOARD_CUSTOM_NAME="jti-toucan2"
CONFIG_ARCH_CHIP="sama5"
CONFIG_ARCH_CHIP_ATSAMA5D27=y
CONFIG_ARCH_CHIP_SAMA5=y
CONFIG_ARCH_CHIP_SAMA5D2=y
CONFIG_ARCH_INTERRUPTSTACK=2048
CONFIG_ARCH_LOWVECTORS=y
CONFIG_ARM_FPU_ABI_SOFT=y
CONFIG_AT25EE_CS_DELAY=200
CONFIG_AT25EE_IFDELAY=100
CONFIG_AT25EE_START_DELAY=50
CONFIG_AT25EE_STOP_DELAY=50
CONFIG_AUDIO=y
CONFIG_BOARDCTL_FINALINIT=y
CONFIG_BOARDCTL_IOCTL=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARDCTL_ROMDISK=y
CONFIG_BOARDCTL_UNIQUEID=y
CONFIG_BOARDCTL_UNIQUEID_SIZE=8
CONFIG_BOARDCTL_UNIQUEKEY=y
CONFIG_BOARDCTL_USBDEVCTRL=y
CONFIG_BOARD_CUSTOM_BUTTONS=y
CONFIG_BOARD_CUSTOM_IRQBUTTONS=y
CONFIG_BOARD_LATE_INITIALIZE=y
CONFIG_BOARD_LOOPSPERMSEC=65775
CONFIG_BOOT_NXBOOT=y
CONFIG_BOOT_RUNFROMSDRAM=y
CONFIG_BUILTIN=y
CONFIG_CANCELLATION_POINTS=y
CONFIG_CAN_FD=y
CONFIG_CDCNCM_COMPOSITE=y
CONFIG_CDCNCM_EPINTIN_HSSIZE=128
CONFIG_COMPOSITE_CONFIGSTR="Toucan2 COMPOSITE config"
CONFIG_COMPOSITE_IAD=y
CONFIG_COMPOSITE_MSFT_OS_DESCRIPTORS=y
CONFIG_COMPOSITE_PRODUCTID=0xece0
CONFIG_COMPOSITE_PRODUCTSTR="Toucan2"
CONFIG_COMPOSITE_VENDORID=0x04d8
CONFIG_COMPOSITE_VENDORSTR="JTi"
CONFIG_DEBUG_ASSERTIONS=y
CONFIG_DEBUG_ASSERTIONS_EXPRESSION=y
CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_NET=y
CONFIG_DEBUG_NET_ERROR=y
CONFIG_DEBUG_NET_WARN=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEFAULT_TASK_STACKSIZE=4096
CONFIG_DEV_GPIO=y
CONFIG_DRIVERS_AUDIO=y
CONFIG_DRIVERS_VIDEO=y
CONFIG_ELF=y
CONFIG_EXAMPLES_THTTPD=y
CONFIG_FAT_COMPUTE_FSINFO=y
CONFIG_FAT_LCNAMES=y
CONFIG_FAT_LFN=y
CONFIG_FAT_LFN_ALIAS_HASH=y
CONFIG_FAT_LFN_UTF8=y
CONFIG_FB_MODULEINFO=y
CONFIG_FS_BINFS=y
CONFIG_FS_FAT=y
CONFIG_FS_LITTLEFS=y
CONFIG_FS_LITTLEFS_PROGRAM_SIZE_FACTOR=1
CONFIG_FS_PROCFS=y
CONFIG_FS_ROMFS=y
CONFIG_FS_UNIONFS=y
CONFIG_FUSB302=y
CONFIG_GD25_CS_DELAY=20
CONFIG_GD25_IFDELAY=100
CONFIG_GD25_SPIFREQUENCY=80000000
CONFIG_GD25_START_DELAY=10
CONFIG_GD25_STOP_DELAY=10
CONFIG_GRAPHICS_LVGL=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_INIT_ENTRYNAME="nsh"
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INPUT_BUTTONS=y
CONFIG_INPUT_BUTTONS_LOWER=y
CONFIG_IOB_BUFSIZE=1518
CONFIG_IOB_NBUFFERS=32
CONFIG_IOB_NCHAINS=24
CONFIG_IOB_THROTTLE=12
CONFIG_LIBC_ENVPATH=y
CONFIG_LIBC_EXECFUNCS=y
CONFIG_LIBC_HOSTNAME="toucan2"
CONFIG_LIBC_NUMBERED_ARGS=y
CONFIG_LIB_MDNS=y
CONFIG_LP503X=y
CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=4
CONFIG_LV_COLOR_DEPTH_32=y
CONFIG_LV_COLOR_MIX_ROUND_OFS=128
CONFIG_LV_DEF_REFR_PERIOD=20
CONFIG_LV_DPI_DEF=188
CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24=y
CONFIG_LV_FONT_FMT_TXT_LARGE=y
CONFIG_LV_FONT_MONTSERRAT_12=y
CONFIG_LV_FONT_MONTSERRAT_16=y
CONFIG_LV_FONT_MONTSERRAT_18=y
CONFIG_LV_FONT_MONTSERRAT_32=y
CONFIG_LV_FONT_MONTSERRAT_44=y
CONFIG_LV_FONT_MONTSERRAT_48=y
CONFIG_LV_FONT_UNSCII_16=y
CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT=y
CONFIG_LV_THEME_DEFAULT_DARK=y
CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_)]}"
CONFIG_LV_USE_ASSERT_STYLE=y
CONFIG_LV_USE_CLIB_MALLOC=y
CONFIG_LV_USE_FLOAT=y
CONFIG_LV_USE_NATIVE_HELIUM_ASM=y
CONFIG_LV_USE_NUTTX=y
CONFIG_LV_USE_NUTTX_TOUCHSCREEN=y
CONFIG_LV_USE_PERF_MONITOR=y
CONFIG_LV_USE_SYSMON=y
CONFIG_MANUALLY_SET_AT25EE_BLOCK_SIZE=y
CONFIG_MANUAL_AT25EE_BLOCK_SIZE=128
CONFIG_MM_BACKTRACE=4
CONFIG_MM_BACKTRACE_DEFAULT=y
CONFIG_MQ_MAXMSGSIZE=64
CONFIG_MTD=y
CONFIG_MTD_AT25EE=y
CONFIG_MTD_GD25=y
CONFIG_MTD_GD55=y
CONFIG_MTD_PARTITION=y
CONFIG_MTD_SECT512=y
CONFIG_MYAPPS_CGIAPPS=y
CONFIG_MYAPPS_PLAY=y
CONFIG_NET=y
CONFIG_NETDB_HOSTFILE=y
CONFIG_NETINIT_DEBUG=y
CONFIG_NETINIT_DRIPADDR=0x0
CONFIG_NETINIT_IPADDR=0x0a000001
CONFIG_NETINIT_NOMAC=y
CONFIG_NETINIT_THREAD=y
CONFIG_NETUTILS_DHCPD=y
CONFIG_NETUTILS_DHCPD_DNSIP=0x0
CONFIG_NETUTILS_DHCPD_STACKSIZE=2048
CONFIG_NETUTILS_DHCPD_STARTIP=0x0a00000a
CONFIG_NETUTILS_MDNS=y
CONFIG_NETUTILS_MDNS_DAEMON=y
CONFIG_NETUTILS_MDNS_STACKSIZE=8192
CONFIG_NETUTILS_THTTPD=y
CONFIG_NET_BINDTODEVICE=y
CONFIG_NET_BROADCAST=y
CONFIG_NET_CDCNCM=y
CONFIG_NET_ETH_PKTSIZE=1518
CONFIG_NET_ICMP_NPOLLWAITERS=2
CONFIG_NET_ICMP_SOCKET=y
CONFIG_NET_IGMP=y
CONFIG_NET_LL_GUARDSIZE=50
CONFIG_NET_SENDFILE=y
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_SOLINGER=y
CONFIG_NET_STATISTICS=y
CONFIG_NET_TCP=y
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_TCPPROTO_OPTIONS=y
CONFIG_NET_TCP_NWRBCHAINS=32
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_TIMESTAMP=y
CONFIG_NET_UDP=y
CONFIG_NET_UDPPROTO_OPTIONS=y
CONFIG_NET_UDP_CHECKSUMS=y
CONFIG_NET_UDP_NPOLLWAITERS=2
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_FILE_APPS=y
CONFIG_NSH_PROMPT_STRING="t2: "
CONFIG_NXBOOT_PLATFORM_IDENTIFIER=0x4a54695432
CONFIG_NXBOOT_PRIMARY_SLOT_PATH="/dev/mtd0"
CONFIG_NXBOOT_SECONDARY_SLOT_PATH="/dev/mtd1"
CONFIG_NXBOOT_TERTIARY_SLOT_PATH="/dev/mtd2"
CONFIG_NXFONTS_DISABLE_16BPP=y
CONFIG_NXFONTS_DISABLE_1BPP=y
CONFIG_NXFONTS_DISABLE_24BPP=y
CONFIG_NXFONTS_DISABLE_2BPP=y
CONFIG_NXFONTS_DISABLE_32BPP=y
CONFIG_NXFONTS_DISABLE_4BPP=y
CONFIG_NXFONTS_DISABLE_8BPP=y
CONFIG_PATH_INITIAL="/bin"
CONFIG_PIC=y
CONFIG_PIPES=y
CONFIG_PREALLOC_TIMERS=4
CONFIG_PRIORITY_INHERITANCE=y
CONFIG_PTHREAD_MUTEX_TYPES=y
CONFIG_RAM_SIZE=134217728
CONFIG_RAM_START=0x20000000
CONFIG_RAM_VSTART=0x20000000
CONFIG_RAW_BINARY=y
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_READLINE_TABCOMPLETION=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_ACT8945A=y
CONFIG_RR_INTERVAL=200
CONFIG_SAMA5D27_JTIT2_492MHZ=y
CONFIG_SAMA5D27_JTIT2_HAS_RAMFS=y
CONFIG_SAMA5D27_JTIT2_HAS_USBDEV=y
CONFIG_SAMA5D27_JTIT2_HAS_USBHOST=y
CONFIG_SAMA5D27_JTIT2_USES_NXBOOT=y
CONFIG_SAMA5_ADC=y
CONFIG_SAMA5_ADC_CHAN4=y
CONFIG_SAMA5_ADC_CHAN5=y
CONFIG_SAMA5_ADC_CHAN6=y
CONFIG_SAMA5_ADC_CHAN7=y
CONFIG_SAMA5_ADC_CHAN8=y
CONFIG_SAMA5_ADC_CHAN9=y
CONFIG_SAMA5_ADC_SEQUENCER=y
CONFIG_SAMA5_BOOT_SDRAM=y
CONFIG_SAMA5_DDRCS_HEAP_END=0x27a00000
CONFIG_SAMA5_DDRCS_RESERVE=y
CONFIG_SAMA5_FLEXCOM2=y
CONFIG_SAMA5_FLEXCOM3=y
CONFIG_SAMA5_LCDC=y
CONFIG_SAMA5_LCDC_BASE_ARGB8888=y
CONFIG_SAMA5_LCDC_FB_PBASE=0x27a00000
CONFIG_SAMA5_LCDC_FB_SIZE=1536112
CONFIG_SAMA5_LCDC_FB_VBASE=0x27a00000
CONFIG_SAMA5_MCAN0=y
CONFIG_SAMA5_MCAN0_BITRATE=1000000
CONFIG_SAMA5_MCAN0_FD=y
CONFIG_SAMA5_MCAN_QUEUE_MODE=y
CONFIG_SAMA5_PIOA_IRQ=y
CONFIG_SAMA5_PIOB_IRQ=y
CONFIG_SAMA5_PIOC_IRQ=y
CONFIG_SAMA5_PIOD_IRQ=y
CONFIG_SAMA5_PIO_IRQ=y
CONFIG_SAMA5_PWM=y
CONFIG_SAMA5_PWM_CHAN0=y
CONFIG_SAMA5_PWM_CHAN0_CLKA=y
CONFIG_SAMA5_PWM_CHAN0_OUTPUTL=y
CONFIG_SAMA5_PWM_CHAN2=y
CONFIG_SAMA5_PWM_CHAN2_CLKA=y
CONFIG_SAMA5_PWM_CHAN2_OUTPUTL=y
CONFIG_SAMA5_PWM_CHAN3=y
CONFIG_SAMA5_PWM_CHAN3_CLKB=y
CONFIG_SAMA5_PWM_CHAN3_OUTPUTL=y
CONFIG_SAMA5_PWM_CLKA=y
CONFIG_SAMA5_PWM_CLKA_FREQUENCY=1000000
CONFIG_SAMA5_PWM_CLKB=y
CONFIG_SAMA5_QSPI0=y
CONFIG_SAMA5_QSPI0_SIZE=134217728
CONFIG_SAMA5_QSPI_DMA=y
CONFIG_SAMA5_SPI0=y
CONFIG_SAMA5_SPI_XDMA=y
CONFIG_SAMA5_SYSTEMRESET=y
CONFIG_SAMA5_TRNG=y
CONFIG_SAMA5_TSD=y
CONFIG_SAMA5_TSD_4WIRENPM=y
CONFIG_SAMA5_TSD_THRESHX=1
CONFIG_SAMA5_TSD_THRESHY=1
CONFIG_SAMA5_TWI0=y
CONFIG_SAMA5_TWI1=y
CONFIG_SAMA5_UART1=y
CONFIG_SAMA5_UART3=y
CONFIG_SAMA5_UDPHS=y
CONFIG_SAMA5_USB_DRP=y
CONFIG_SAMA5_XDMAC0=y
CONFIG_SAMA5_XDMAC1=y
CONFIG_SCHED_HAVE_PARENT=y
CONFIG_SCHED_HPWORKPRIORITY=192
CONFIG_SCHED_HPWORKSTACKSIZE=2048
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_LPWORKPRIORITY=101
CONFIG_SCHED_SPORADIC=y
CONFIG_SCHED_WAITPID=y
CONFIG_SENDFILE_BUFSIZE=256
CONFIG_SENSORS=y
CONFIG_SENSORS_APDS9922=y
CONFIG_SERIAL_TERMIOS=y
CONFIG_SIG_DEFAULT=y
CONFIG_SIG_EVTHREAD=y
CONFIG_SPI_DELAY_CONTROL=y
CONFIG_STACK_CANARIES=y
CONFIG_STACK_USAGE=y
CONFIG_START_MONTH=10
CONFIG_START_YEAR=2024
CONFIG_SYMTAB_ORDEREDBYNAME=y
CONFIG_SYSLOG_BUFFER=y
CONFIG_SYSLOG_COLOR_OUTPUT=y
CONFIG_SYSLOG_CONSOLE=y
CONFIG_SYSLOG_FILE=y
CONFIG_SYSLOG_FILE_ROTATIONS=2
CONFIG_SYSLOG_FILE_SEPARATE=y
CONFIG_SYSLOG_FILE_SIZE_LIMIT=972000
CONFIG_SYSLOG_INTBUFFER=y
CONFIG_SYSLOG_MAX_CHANNELS=2
CONFIG_SYSLOG_PRIORITY=y
CONFIG_SYSLOG_PROCESSID=y
CONFIG_SYSLOG_PROCESS_NAME=y
CONFIG_SYSLOG_TIMESTAMP=y
CONFIG_SYSLOG_TIMESTAMP_FORMATTED=y
CONFIG_SYSLOG_TIMESTAMP_REALTIME=y
CONFIG_SYSTEM_CLE_CMD_HISTORY=y
CONFIG_SYSTEM_COLOR_CLE=y
CONFIG_SYSTEM_FLASH_ERASEALL=y
CONFIG_SYSTEM_NSH=y
CONFIG_SYSTEM_PING=y
CONFIG_SYSTEM_SETTINGS=y
CONFIG_SYSTEM_SETTINGS_KEY_SIZE=8
CONFIG_SYSTEM_SETTINGS_MAP_SIZE=100
CONFIG_THTTPD_CGI_PRIORITY=50
CONFIG_THTTPD_IOBUFFERSIZE=1536
CONFIG_THTTPD_IPADDR=0x0a000001
CONFIG_THTTPD_SERVER_ADDRESS="http://toucan2.local"
CONFIG_TTY_SIGINT=y
CONFIG_UART1_SERIAL_CONSOLE=y
CONFIG_USART2_BAUD=38400
CONFIG_USART3_BAUD=10
CONFIG_USBDEV=y
CONFIG_USBDEV_COMPOSITE=y
CONFIG_USBDEV_DMA=y
CONFIG_USBDEV_DUALSPEED=y
CONFIG_USBDEV_EPBUFFER_ALIGNMENT=4
CONFIG_USBDEV_ISOCHRONOUS=y
CONFIG_USBDEV_MAXPOWER=500
CONFIG_USBMISC=y
CONFIG_USBMSC=y
CONFIG_USBMSC_COMPOSITE=y
CONFIG_USBMSC_NOT_STALL_BULKEP=y
CONFIG_USBMSC_NRDREQS=32
CONFIG_USBMSC_NWRREQS=32
CONFIG_USBMSC_REMOVABLE=y
CONFIG_VIDEO_FB=y
CONFIG_WATCHDOG=y
On which OS does this issue occur?
[OS: Linux]
What is the version of your OS?
Ubuntu
NuttX Version
master
Issue Architecture
[Arch: all]
Issue Area
[Area: Networking]
Host information
make host_info
file sysinfo.h not exists
NuttX CFLAGS:
-Wstrict-prototypes
-Wno-attributes
-Wno-unknown-pragmas
-Wno-psabi
-fomit-frame-pointer
-fstack-protector-all
-fstack-usage
--param=min-pagesize=0
-fno-common
-Wall
-Wshadow
-Wundef
-ffunction-sections
-fdata-sections -g
-mcpu=cortex-a5
-mfloat-abi=softfp
-mfpu=neon-vfpv4
-mlittle-endian
-isystem /home/tim/designs/nuttx/nuttx/include
-D__NuttX__
-pipe
-DBUILD_NUMBER=\\
NuttX CXXFLAGS:
-Wno-attributes
-Wno-unknown-pragmas
-nostdinc++
-Wno-psabi
-std=\gnu++17
-fno-exceptions
-fcheck-new
-fno-rtti
-fomit-frame-pointer
-fstack-protector-all
-fstack-usage
--param=min-pagesize=0
-fno-common
-Wall
-Wshadow
-Wundef
-ffunction-sections
-fdata-sections -g
-mcpu=cortex-a5
-mfloat-abi=softfp
-mfpu=neon-vfpv4
-mlittle-endian
-isystem /home/tim/designs/nuttx/nuttx/include/cxx
-isystem /home/tim/designs/nuttx/nuttx/include
-D__NuttX__
-pipe
NuttX LDFLAGS:
--print-memory-usage
--no-warn-rwx-segments
--entry=__start
-nostdlib
--gc-sections
--cref
-Map=/home/tim/designs/nuttx/nuttx/nuttx.map
NuttX configuration options:
CONFIG_HOST_LINUX=y
Host system OS:
CONFIG_APPS_DIR=\
Host system PATH:
Verification
- I have verified before submitting the report.