5252 ErrScriptExecution = errors .New ("error during PHP script execution" )
5353 ErrNotRunning = errors .New ("FrankenPHP is not running. For proper configuration visit: https://frankenphp.dev/docs/config/#caddyfile-config" )
5454
55+ ErrInvalidRequestPath = ErrRejected {"invalid request path" , http .StatusBadRequest }
56+ ErrInvalidContentLengthHeader = ErrRejected {"invalid Content-Length header" , http .StatusBadRequest }
57+ ErrMaxWaitTimeExceeded = ErrRejected {"maximum request handling time exceeded" , http .StatusServiceUnavailable }
58+
5559 isRunning bool
5660 onServerShutdown []func ()
5761
@@ -63,34 +67,43 @@ var (
6367 maxWaitTime time.Duration
6468)
6569
70+ type ErrRejected struct {
71+ message string
72+ status int
73+ }
74+
75+ func (e ErrRejected ) Error () string {
76+ return e .message
77+ }
78+
6679type syslogLevel int
6780
6881const (
69- emerg syslogLevel = iota // system is unusable
70- alert // action must be taken immediately
71- crit // critical conditions
72- err // error conditions
73- warning // warning conditions
74- notice // normal but significant condition
75- info // informational
76- debug // debug-level messages
82+ syslogLevelEmerg syslogLevel = iota // system is unusable
83+ syslogLevelAlert // action must be taken immediately
84+ syslogLevelCrit // critical conditions
85+ syslogLevelErr // error conditions
86+ syslogLevelWarn // warning conditions
87+ syslogLevelNotice // normal but significant condition
88+ syslogLevelInfo // informational
89+ syslogLevelDebug // debug-level messages
7790)
7891
7992func (l syslogLevel ) String () string {
8093 switch l {
81- case emerg :
94+ case syslogLevelEmerg :
8295 return "emerg"
83- case alert :
96+ case syslogLevelAlert :
8497 return "alert"
85- case crit :
98+ case syslogLevelCrit :
8699 return "crit"
87- case err :
100+ case syslogLevelErr :
88101 return "err"
89- case warning :
102+ case syslogLevelWarn :
90103 return "warning"
91- case notice :
104+ case syslogLevelNotice :
92105 return "notice"
93- case debug :
106+ case syslogLevelDebug :
94107 return "debug"
95108 default :
96109 return "info"
@@ -210,11 +223,6 @@ func Init(options ...Option) error {
210223
211224 registerExtensions ()
212225
213- // add registered external workers
214- for _ , ew := range extensionWorkers {
215- options = append (options , WithWorkers (ew .name , ew .fileName , ew .num , ew .options ... ))
216- }
217-
218226 opt := & opt {}
219227 for _ , o := range options {
220228 if err := o (opt ); err != nil {
@@ -336,20 +344,17 @@ func ServeHTTP(responseWriter http.ResponseWriter, request *http.Request) error
336344
337345 fc .responseWriter = responseWriter
338346
339- if ! fc .validate () {
340- return nil
347+ if err := fc .validate (); err != nil {
348+ return err
341349 }
342350
343351 // Detect if a worker is available to handle this request
344352 if fc .worker != nil {
345- fc .worker .handleRequest (fc )
346-
347- return nil
353+ return fc .worker .handleRequest (fc )
348354 }
349355
350356 // If no worker was available, send the request to non-worker threads
351- handleRequestWithRegularPHPThreads (fc )
352- return nil
357+ return handleRequestWithRegularPHPThreads (fc )
353358}
354359
355360//export go_ub_write
@@ -566,19 +571,19 @@ func go_log(message *C.char, level C.int) {
566571 m := C .GoString (message )
567572
568573 var le syslogLevel
569- if level < C .int (emerg ) || level > C .int (debug ) {
570- le = info
574+ if level < C .int (syslogLevelEmerg ) || level > C .int (syslogLevelDebug ) {
575+ le = syslogLevelInfo
571576 } else {
572577 le = syslogLevel (level )
573578 }
574579
575580 switch le {
576- case emerg , alert , crit , err :
581+ case syslogLevelEmerg , syslogLevelAlert , syslogLevelCrit , syslogLevelErr :
577582 logger .LogAttrs (context .Background (), slog .LevelError , m , slog .String ("syslog_level" , syslogLevel (level ).String ()))
578583
579- case warning :
584+ case syslogLevelWarn :
580585 logger .LogAttrs (context .Background (), slog .LevelWarn , m , slog .String ("syslog_level" , syslogLevel (level ).String ()))
581- case debug :
586+ case syslogLevelDebug :
582587 logger .LogAttrs (context .Background (), slog .LevelDebug , m , slog .String ("syslog_level" , syslogLevel (level ).String ()))
583588
584589 default :
0 commit comments