HPHP49-B,*°`« 1. SOCKET # 50h BIND « " " 3. ROLL + " " + SWAP + "
Cheyenne for " + VERSION IF TYPE 2 == THEN 9. 12. SUB ELSE #30794h SYSEVAL 3 6 SUB END + "
" + DATE TIME TSTR + " " + » ¨ s e « « "404 Not found" "I couldn't find the path :
" 3. ROLL + "
" + e EVAL » ¨ e404 « DO CLLCD "DISCONNECTED" 1. DISP s ACCEPT "CONNECTION !" 1. DISP CASE -55. CF 34. SF "" IFERR DO DROP s READ UNTIL DUP "" ‹ END 0. THEN DROP 1. END THEN "" END DUP 2. DISP DUP 1. 4. SUB "GET " ‹ THEN "404 Not found" "I couldn't understand your request :
" 3. ROLL + "
" + e EVAL END 5. OVER SIZE SUB IF DUP 1. 7. SUB "http://" == THEN 8. OVER SIZE SUB END HOME 'htdocs' VTYPE -1. == THEN e404 EVAL END htdocs IF DUP " " POS DUP THEN 1. - 1. SWAP SUB END IF DUP 1. 1. SUB "/" ‹ THEN DUP "/" POS DUP2 1. - 1. SWAP SUB "'" DUP 3. ROLLD + + IF IF -55. CF IFERR STR¨ 1. THEN 0. END DUP THEN DROP DUP VTYPE -1. == END THEN DROP2 e404 EVAL 1. ELSE EVAL 1. + OVER SIZE SUB 0. END ELSE IF 'www' VTYPE -1. == THEN e404 EVAL 1. ELSE www 2. OVER SIZE SUB 0. END END THEN END 1. WHILE DUP DUP IF THEN DROP OVER "/" POS DUP ELSE DUP END REPEAT SWAP DROP DUP2 1. - 1. SWAP SUB "'" DUP 3. ROLLD + + IF IF -55. CF IFERR STR¨ 1. THEN 0. END DUP THEN DROP DUP VTYPE -1. == END THEN DROP2 e404 EVAL 0. ELSE EVAL 1. + OVER SIZE SUB 1. END END DROP NOT THEN END DUP "" == THEN DROP IF 'index.html' VTYPE -1. ‹ THEN index.html ELSE IF 'index.htm' VTYPE -1. ‹ THEN index.htm ELSE VARS ¨STR 3. OVER SIZE 2. - SUB END END END IF DUP "?" POS DUP THEN DUP2 1. + OVER SIZE SUB 3. ROLLD 1. SWAP 1. - SUB ELSE DROP "" SWAP END "'" DUP 3. ROLLD + + STR¨ -55. CF IFERR RCL EVAL THEN e404 EVAL END SWAP DROP END s WRITE s DISCONNECT -55. CF 34. CF IFERR DO s READ DROP UNTIL 0. END THEN DROP END UNTIL 0. END » » »