Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,23 +33,22 @@ These decisions are final:
- **UFSD-only docroot** — Remove DD-based file serving (`/DD:HTML(...)` paths), static files only from UFS
- **Remove embedded FTPD** — FTP functionality available separately
- **Remove MQTT telemetry** — HTTPT struct, telemetry_thread, mqtt370 dependency
- **CGIs disabled by default** — No CGIs are registered unless explicitly configured in Parmlib. All existing CGI modules remain in the codebase but are only active when configured.
- **Extract HTTPLUA/HTTPREXX** — Lua and REXX CGI handlers moved to separate projects (mvslovers/httplua, mvslovers/httprexx), lua370 dependency removed
- **CGIs disabled by default** — No CGIs are registered unless explicitly configured in Parmlib.

## HTTPD 4.0.0 — Open Items

1. **TSK-112 CGI Chunked Bug** (M, High) — CGI responses with chunked transfer encoding
2. **TSK-110 Fehlende Status-Codes** (XS, High) — Missing HTTP status codes
3. **TSK-108 HTTP Parsing härten** (L, High) — Harden HTTP request parsing
4. **TSK-104 HTTPLUA auslagern** (L, Medium) — Extract HTTPLUA into separate module
5. **TSK-10 Doku + Version Bump** (M, Medium) — Documentation and version bump to 4.0.0
4. **TSK-10 Doku + Version Bump** (M, Medium) — Documentation and version bump to 4.0.0

## Dependencies (from project.toml)

```toml
[dependencies]
"mvslovers/crent370" = ">=1.0.6"
"mvslovers/ufs370" = ">=1.0.0"
"mvslovers/lua370" = "..." # stays while Lua CGI code remains in codebase
```

**Note:** mqtt370 dependency will be removed (MQTT telemetry confirmed for removal).
Expand Down Expand Up @@ -222,14 +221,14 @@ Missing `DD:HTTPDPRM` → server starts with defaults (port 8080, no CGIs).
- **httpdsrv.c**: Server status display (2,675 LOC)
- **httpjes2.c**: JES2 spool browser (975 LOC)
- **httpdsl.c + helpers**: Dataset list/download (1,540 LOC total)
- **httplua.c**: Lua CGI handler (1,115 LOC)
- **httprexx.c**: REXX CGI handler (587 LOC)
- **httplua.c**: Extracted → mvslovers/httplua
- **httprexx.c**: Extracted → mvslovers/httprexx
- **httpdm.c / httpdmtt.c**: Device manager display (440 LOC)
- **hello.c, abend0c1.c, test.c**: Demo/test CGIs

**Subsystems:**
- **httprepo.c**: SMF Type 243 recording + simple counters (~90 LOC)
- **Lua runtime**: lauxlib.c, liolib.c, loadlib.c, httpluax.c (3,297 LOC) — stays for Lua CGI
- **Lua runtime**: Extracted → mvslovers/httplua
- **FTP daemon**: ftp*.c (3,290 LOC) — confirmed for removal
- **MQTT telemetry**: HTTPT struct, telemetry_thread — confirmed for removal

Expand Down
7 changes: 3 additions & 4 deletions config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,13 @@ CFLAGS := -fverbose-asm -S -O1
HTTPD_VERSION ?= 4.0.0-dev

# Defines and include paths
DEFS := -DLUA_USE_C89 -DLUA_USE_JUMPTABLE=0 -DHTTPD_VERSION=\"$(HTTPD_VERSION)\"
DEFS := -DHTTPD_VERSION=\"$(HTTPD_VERSION)\"
INC_DIR := $(ROOT_DIR)include
INC1 := $(ROOT_DIR)credentials/include
INC2 := $(ROOT_DIR)contrib/crent370_sdk/inc
INC3 := $(ROOT_DIR)contrib/ufs370_sdk/inc
INC4 := $(ROOT_DIR)contrib/lua370_sdk/inc
INC5 := $(ROOT_DIR)contrib/mqtt370_sdk/inc
INCS := -I$(INC_DIR) -I$(INC1) -I$(INC2) -I$(INC3) -I$(INC4) -I$(INC5)
INC4 := $(ROOT_DIR)contrib/mqtt370_sdk/inc
INCS := -I$(INC_DIR) -I$(INC1) -I$(INC2) -I$(INC3) -I$(INC4)

CFLAGS += $(DEFS) $(INCS)

Expand Down
11 changes: 5 additions & 6 deletions include/httpd.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@
#include "cred.h" /* Credentials */
#include "httpxlat.h" /* ASCII/EBCDIC translation */

#define HTTPLUAX (httpd->luax) /* use this pointer */
#include "httpluax.h" /* Lua function vector struct */
/* httpluax.h removed — HTTPLUA is now a separate project (mvslovers/httplua) */

typedef struct httpd HTTPD; /* HTTP Daemon (server) */
typedef struct httpc HTTPC; /* HTTP Client */
Expand Down Expand Up @@ -112,7 +111,7 @@ struct httpd {
time64_t uptime; /* 48 Server startup time */
void *unused_50; /* 50 (was: FTPD *ftpd) */
UFSSYS *ufssys; /* 54 Unix like file system */
LUAX *luax; /* 58 Lua function vector */
void *unused_58; /* 58 (was: LUAX *luax) */
const char *version; /* 5C HTTPD Version */
void *unused_60; /* 60 (was: lua_State *config) */
UCHAR cfg_maxtask; /* 64 config max task */
Expand All @@ -135,9 +134,9 @@ struct httpd {
unsigned total_bytes_sent; /* 78 total bytes sent */
unsigned active_connections; /* 7C active client connections */
void *unused_80; /* 80 (was: st_dataset) */
UCHAR *cgilua_dataset; /* 84 CGI Lua dataset */
UCHAR *cgilua_path; /* 88 CGI Lua package.path */
UCHAR *cgilua_cpath; /* 8C CGI Lua package.cpath */
void *unused_84; /* 84 (was: cgilua_dataset) */
void *unused_88; /* 88 (was: cgilua_path) */
void *unused_8C; /* 8C (was: cgilua_cpath) */
UFS *ufs; /* 90 Unix "like" File System */
void *unused_94; /* 94 (was: HTTPT *httpt) */
CTHDTASK *self; /* 98 HTTPD main thread */
Expand Down
Loading
Loading