diff --git a/lweb.pbi b/lweb.pbi index 7a5270b..689008c 100644 --- a/lweb.pbi +++ b/lweb.pbi @@ -43,28 +43,29 @@ Module lhs_web Global.i conf_cache_current = 0 Global.i conf_cache_enable = 1 - Enumeration s_client_do ;client_do_cli - #CLI_DO_NOP ;0 Keine Arbeit - #CLI_DO_DataWorking ;10 Datenverarbeitung - #CLI_DO_DataToSend ;20 Daten zum Senden vorhanden - #CLI_DO_WaitDataReceive ;30 Wartet auf Datenempfang - #CLI_DO_WaitDataSend ;40 Wartet auf gesendete Daten + Enumeration s_client_do ;client_do_cli + #CLI_DO_NOP ;Keine Arbeit + #CLI_DO_DataWorking ;Datenverarbeitung + #CLI_DO_DataToSend ;Daten zum Senden vorhanden + #CLI_DO_WaitDataReceive ;Wartet auf Datenempfang + #CLI_DO_WaitDataSend ;Wartet auf gesendete Daten EndEnumeration - Enumeration s_server_do ;client_do_srv - #SRV_DO_NOP ;0 Keine Arbeit - #SRV_DO_NewDatainBuffer ;10 Neue Daten im incoming Buffer zur bearbeitung. - #SRV_DO_MoreDatainBuffer ;11 Weitere Daten im incoming Buffer - #SRV_DO_DataReceive ;12 Datem Empfangen Client Thread muss sich darum Kümmern - #SRV_DO_DataReceiveCompleted ;18 Empfang der Daten Abgeschlossen - #SRV_DO_DataReceiveFailes ;19 Beim Empfangen der Daten ist ein fehler passiert. - #SRV_DO_DataSendOK ;20 Daten erfolgreich gesendet, Thread kann weiterarbeiten. - #SRV_DO_DataSendNOK ;29 Daten nicht erfolgreich gesendet. - #SRV_DO_ClientDisconnect ;99 Beenden des Threads Client hat verbindung getrennt. + Enumeration s_server_do ;client_do_srv + #SRV_DO_NOP ;Keine Arbeit + #SRV_DO_NewDatainBuffer ;Neue Daten im incoming Buffer zur bearbeitung. + #SRV_DO_MoreDatainBuffer ;Weitere Daten im incoming Buffer + #SRV_DO_DataReceive ;Datem Empfangen Client Thread muss sich darum Kümmern + #SRV_DO_DataReceiveCompleted ;Empfang der Daten Abgeschlossen + #SRV_DO_DataReceiveFailes ;Beim Empfangen der Daten ist ein fehler passiert. + #SRV_DO_DataSendOK ;Daten erfolgreich gesendet, Thread kann weiterarbeiten. + #SRV_DO_DataSendNOK ;Daten nicht erfolgreich gesendet. + #SRV_DO_ClientDisconnect ;Beenden des Threads Client hat verbindung getrennt. EndEnumeration #http_method_get = "GET" #http_method_post = "POST" + #http_method_put = "PUT" ;*********************** ;* s_lweb_client Struktur Jeder Clientthread muss in die Liste eingetragen werden.: @@ -558,41 +559,6 @@ Module lhs_web ;} EndIf - - - If thread_data_size - If thread_type ="" - thread_type = mimetype(GetExtensionPart(thread_requested)) - EndIf - - thread_date = http_day(DayOfWeek(Date())) + - Str(Day(Date())) + - http_month(Month(Date())) + - Str(Year(Date())) + - " " + - FormatDate("%hh:%ii:%ss GMT+1", Date()) - - - ;lweb_srv_mod_mss() - ClearMap(Header()) - If Response(#cha_R_http_head_status) <> "" - Header(#http_head_status) = Response(#cha_R_http_head_status) - ElseIf response_status <> "" - Header(#http_head_status) = response_status - Else - Header(#http_head_status) = "200 OK" - EndIf - - Header(#http_head_content_length) = Str(thread_data_size) - Header(#http_head_content_type) = thread_type - Header(#http_head_connection) = "Keep-Alive" - Header(#http_head_keep_alive) = "timeout=15, max=1000" - thread_header = http_header_generate(Header()) - thread_buffer = AllocateMemory(thread_data_size+StringByteLength(thread_header)+12) - thread_buffer_offset = thread_buffer - thread_buffer_length = PokeS(thread_buffer_offset, thread_header,-1, #PB_UTF8|#PB_String_NoZero) : thread_buffer_offset + thread_buffer_length - Debug "Header Finished" - EndIf ;} Case #http_method_post @@ -735,39 +701,7 @@ Module lhs_web EndIf EndIf - If thread_data_size - If thread_type ="" - thread_type = mimetype(GetExtensionPart(thread_requested)) - EndIf - - thread_date = http_day(DayOfWeek(Date())) + - Str(Day(Date())) + - http_month(Month(Date())) + - Str(Year(Date())) + - " " + - FormatDate("%hh:%ii:%ss GMT+1", Date()) - - - ;lweb_srv_mod_mss() - ClearMap(Header()) - If Response(#cha_R_http_head_status) <> "" - Header(#http_head_status) = Response(#cha_R_http_head_status) - ElseIf response_status <> "" - Header(#http_head_status) = response_status - Else - Header(#http_head_status) = "200 OK" - EndIf - - Header(#http_head_content_length) = Str(thread_data_size) - Header(#http_head_content_type) = thread_type - Header(#http_head_connection) = "Keep-Alive" - Header(#http_head_keep_alive) = "timeout=15, max=1000" - thread_header = http_header_generate(Header()) - thread_buffer = AllocateMemory(thread_data_size+StringByteLength(thread_header)+12) - thread_buffer_offset = thread_buffer - thread_buffer_length = PokeS(thread_buffer_offset, thread_header,-1, #PB_UTF8|#PB_String_NoZero) : thread_buffer_offset + thread_buffer_length - Debug "Header Finished" - EndIf + Default ;************************************ @@ -777,7 +711,37 @@ Module lhs_web ;* Read Buffer to Memory and Clear Buffer to Zero until the complete Networkbuffer from this Client is Cleaned. ;* EndSelect - + If thread_data_size + If thread_type ="" + thread_type = mimetype(GetExtensionPart(thread_requested)) + EndIf + + thread_date = http_day(DayOfWeek(Date())) + + Str(Day(Date())) + + http_month(Month(Date())) + + Str(Year(Date())) + + " " + + FormatDate("%hh:%ii:%ss GMT+1", Date()) + + ClearMap(Header()) + If Response(#cha_R_http_head_status) <> "" + Header(#http_head_status) = Response(#cha_R_http_head_status) + ElseIf response_status <> "" + Header(#http_head_status) = response_status + Else + Header(#http_head_status) = "200 OK" + EndIf + + Header(#http_head_content_length) = Str(thread_data_size) + Header(#http_head_content_type) = thread_type + Header(#http_head_connection) = "Keep-Alive" + Header(#http_head_keep_alive) = "timeout=15, max=1000" + thread_header = http_header_generate(Header()) + thread_buffer = AllocateMemory(thread_data_size+StringByteLength(thread_header)+12) + thread_buffer_offset = thread_buffer + thread_buffer_length = PokeS(thread_buffer_offset, thread_header,-1, #PB_UTF8|#PB_String_NoZero) : thread_buffer_offset + thread_buffer_length + Debug "Header Finished" + EndIf CopyMemory(thread_temp_cache_memory, thread_buffer_offset, thread_data_size) FreeMemory(thread_temp_cache_memory) ; EndIf