Separate http status functions
This commit is contained in:
parent
1e0ca0b1b1
commit
d892791ab6
3 changed files with 162 additions and 0 deletions
123
inc/lweb_http_status.pbi
Normal file
123
inc/lweb_http_status.pbi
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
;********************************
|
||||||
|
;*
|
||||||
|
;* lweb_http_status.pbi
|
||||||
|
;*
|
||||||
|
;* LiHaSo Webserver Default status.
|
||||||
|
;*
|
||||||
|
;* Configuration Module for Configs.
|
||||||
|
;*
|
||||||
|
|
||||||
|
; configuration\status("number")\status = "200"
|
||||||
|
; configuration\status("number")\file = ""
|
||||||
|
; configuration\status("number")\header = "200 Ok"
|
||||||
|
; configuration\status("number")\message = ""
|
||||||
|
; configuration\status("number")\template = #False
|
||||||
|
; configuration\status("number")\content = #False
|
||||||
|
|
||||||
|
|
||||||
|
;*
|
||||||
|
;* Default status components
|
||||||
|
;* Please add here only rfc7231 codes.
|
||||||
|
;*
|
||||||
|
Procedure status_defaults()
|
||||||
|
;Import XML cfg/default_http_status_codes.xml resp config
|
||||||
|
Protected ReadedXML.s, FileHandle.i, XMLHandle.i
|
||||||
|
FileHandle = ReadFile(#PB_Any, configuration\config_file("status_xml")\name)
|
||||||
|
If IsFile(FileHandle)
|
||||||
|
ReadedXML = ReadString(FileHandle, #PB_File_IgnoreEOL)
|
||||||
|
CloseFile(FileHandle)
|
||||||
|
XMLHandle = ParseXML(#PB_Any, ReadedXML)
|
||||||
|
If XMLHandle And XMLStatus(XMLHandle) = #PB_XML_Success
|
||||||
|
ExtractXMLMap(MainXMLNode(XMLHandle), configuration\status())
|
||||||
|
Else
|
||||||
|
lhs_log_ext::OutL(lhs_web::get_config(lhs_web::#conf_Debug_logUUID), lhs_log_ext::#Info, "Import of the File:"+configuration\config_file("status_xml")\name+" failed.")
|
||||||
|
EndIf
|
||||||
|
Else
|
||||||
|
lhs_log_ext::OutL(lhs_web::get_config(lhs_web::#conf_Debug_logUUID), lhs_log_ext::#Info, "Could not open File:"+configuration\config_file("status_xml")\name+" .")
|
||||||
|
EndIf
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure.s status_get_file(status.s, UUID.s="Default")
|
||||||
|
If UUID <> "Default"
|
||||||
|
If configuration\hosts(UUID)\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\hosts(UUID)\status(status)\file
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If configuration\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\status(status)\file
|
||||||
|
Else
|
||||||
|
ProcedureReturn "Internal"
|
||||||
|
EndIf
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure.s status_get_header(status.s, UUID.s="Default")
|
||||||
|
If UUID <> "Default"
|
||||||
|
If configuration\hosts(UUID)\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\hosts(UUID)\status(status)\header
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If configuration\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\status(status)\header
|
||||||
|
Else
|
||||||
|
ProcedureReturn "500 Internal Server Error"
|
||||||
|
EndIf
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure.s status_get_message(status.s, UUID.s="Default")
|
||||||
|
If UUID <> "Default"
|
||||||
|
If configuration\hosts(UUID)\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\hosts(UUID)\status(status)\message
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If configuration\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\status(status)\message
|
||||||
|
Else
|
||||||
|
ProcedureReturn "500 Internal Server Error"
|
||||||
|
EndIf
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure.s status_get_message_body(status.s, UUID.s="Default")
|
||||||
|
If UUID <> "Default"
|
||||||
|
If configuration\hosts(UUID)\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\hosts(UUID)\status(status)\message_body
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If configuration\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\status(status)\message_body
|
||||||
|
Else
|
||||||
|
ProcedureReturn ""
|
||||||
|
EndIf
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure status_get_template(status.s, UUID.s="Default")
|
||||||
|
If UUID <> "Default"
|
||||||
|
If configuration\hosts(UUID)\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\hosts(UUID)\status(status)\template
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If configuration\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\status(status)\template
|
||||||
|
Else
|
||||||
|
ProcedureReturn #True
|
||||||
|
EndIf
|
||||||
|
EndProcedure
|
||||||
|
|
||||||
|
Procedure status_get_content(status.s, UUID.s="Default")
|
||||||
|
If UUID <> "Default"
|
||||||
|
If configuration\hosts(UUID)\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\hosts(UUID)\status(status)\content
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If configuration\status(status)\status = status
|
||||||
|
ProcedureReturn configuration\status(status)\content
|
||||||
|
Else
|
||||||
|
ProcedureReturn #True
|
||||||
|
EndIf
|
||||||
|
EndProcedure
|
||||||
|
|
18
inc/lweb_http_status_header.pbi
Normal file
18
inc/lweb_http_status_header.pbi
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
;********************************
|
||||||
|
;*
|
||||||
|
;* lweb_http_status.pbi
|
||||||
|
;*
|
||||||
|
;* LiHaSo Webserver Default status Headerfile.
|
||||||
|
;*
|
||||||
|
;* Configuration Module for Configs.
|
||||||
|
;*
|
||||||
|
;* Please add here only rfc7231 codes.
|
||||||
|
|
||||||
|
|
||||||
|
Declare.s status_get_file(status.s, UUID.s="Default")
|
||||||
|
Declare.s status_get_header(status.s, UUID.s="Default")
|
||||||
|
Declare.s status_get_message(status.s, UUID.s="Default")
|
||||||
|
Declare.s status_get_message_body(status.s, UUID.s="Default")
|
||||||
|
Declare status_get_template(status.s, UUID.s="Default")
|
||||||
|
Declare status_get_content(status.s, UUID.s="Default")
|
||||||
|
|
21
inc/lweb_http_status_header_private.pbi
Normal file
21
inc/lweb_http_status_header_private.pbi
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
;********************************
|
||||||
|
;*
|
||||||
|
;* lweb_http_status.pbi
|
||||||
|
;*
|
||||||
|
;* LiHaSo Webserver Default status Headerfile.
|
||||||
|
;*
|
||||||
|
;* Configuration Module for Configs.
|
||||||
|
;*
|
||||||
|
;* Please add here only rfc7231 codes.
|
||||||
|
|
||||||
|
|
||||||
|
Structure http_status_codes
|
||||||
|
status.s ;Error Number
|
||||||
|
file.s ;Error File or "Integrated" for default Message as Template
|
||||||
|
header.s ;Error Header message for #http_head_status
|
||||||
|
message.s ;Error Message for Templated
|
||||||
|
message_body.s ;Error Message Body for Templated
|
||||||
|
template.b ;Is it a Template {ErrorNo}=error and {Message}=message and {Message_body}=message_body need to be there
|
||||||
|
content.b ;has it a content to send. (200 for ex. has no content who need to be processed.)
|
||||||
|
Map head_fields.http_headerfield()
|
||||||
|
EndStructure
|
Loading…
Reference in a new issue