680 |
|
|
681 |
let buf = Buffer.create 1000 |
let buf = Buffer.create 1000 |
682 |
|
|
683 |
let html_page = ref true |
type http_file = |
684 |
|
BIN |
685 |
|
| HTM |
686 |
|
| MLHTM |
687 |
|
| TXT |
688 |
|
| UNK |
689 |
|
|
690 |
|
let http_file_type = ref UNK |
691 |
|
|
692 |
open Http_server |
open Http_server |
693 |
|
|
726 |
end |
end |
727 |
|
|
728 |
let http_add_html_header r = |
let http_add_html_header r = |
729 |
|
http_file_type := HTM; |
730 |
http_add_gen_header r; |
http_add_gen_header r; |
731 |
add_reply_header r "Pragma" "no-cache"; |
add_reply_header r "Pragma" "no-cache"; |
732 |
add_reply_header r "Content-Type" "text/html; charset=UTF-8"; |
add_reply_header r "Content-Type" "text/html; charset=UTF-8"; |
733 |
add_gzip_headers r |
add_gzip_headers r |
734 |
|
|
735 |
let http_add_css_header r = |
let http_add_css_header r = |
736 |
|
http_file_type := TXT; |
737 |
http_add_gen_header r; |
http_add_gen_header r; |
738 |
add_reply_header r "Content-Type" "text/css; charset=UTF-8"; |
add_reply_header r "Content-Type" "text/css; charset=UTF-8"; |
739 |
add_gzip_headers r |
add_gzip_headers r |
740 |
|
|
741 |
let http_add_js_header r = |
let http_add_js_header r = |
742 |
|
http_file_type := TXT; |
743 |
http_add_gen_header r; |
http_add_gen_header r; |
744 |
add_reply_header r "Content-Type" "text/javascript; charset=UTF-8"; |
add_reply_header r "Content-Type" "text/javascript; charset=UTF-8"; |
745 |
add_gzip_headers r |
add_gzip_headers r |
746 |
|
|
747 |
let http_add_png_header r = |
let http_add_png_header r clen = |
748 |
|
http_file_type := BIN; |
749 |
http_add_gen_header r; |
http_add_gen_header r; |
750 |
add_reply_header r "Content-Type" "image/png;"; |
add_reply_header r "Content-Type" "image/png;"; |
751 |
|
add_reply_header r "Accept-Ranges" "bytes"; |
752 |
|
add_reply_header r "Content-Length" (Printf.sprintf "%d" clen); |
753 |
add_gzip_headers r |
add_gzip_headers r |
754 |
|
|
755 |
let http_add_jpg_header r = |
let http_add_jpg_header r clen = |
756 |
|
http_file_type := BIN; |
757 |
http_add_gen_header r; |
http_add_gen_header r; |
758 |
add_reply_header r "Content-Type" "image/jpg;"; |
add_reply_header r "Content-Type" "image/jpg;"; |
759 |
|
add_reply_header r "Accept-Ranges" "bytes"; |
760 |
|
add_reply_header r "Content-Length" (Printf.sprintf "%d" clen); |
761 |
add_gzip_headers r |
add_gzip_headers r |
762 |
|
|
763 |
let any_ip = Ip.of_inet_addr Unix.inet_addr_any |
let any_ip = Ip.of_inet_addr Unix.inet_addr_any |
764 |
|
|
765 |
let html_open_page buf t r open_body = |
let html_open_page buf t r open_body = |
766 |
Buffer.clear buf; |
Buffer.clear buf; |
|
html_page := true; |
|
767 |
http_add_html_header r; |
http_add_html_header r; |
768 |
|
|
769 |
if not !!html_mods then |
if not !!html_mods then |
802 |
|
|
803 |
let clear_page buf = |
let clear_page buf = |
804 |
Buffer.clear buf; |
Buffer.clear buf; |
805 |
html_page := false |
http_file_type := UNK |
806 |
|
|
807 |
let http_handler o t r = |
let http_handler o t r = |
808 |
CommonInteractive.display_vd := false; |
CommonInteractive.display_vd := false; |
912 |
| "/complex_search.html" -> |
| "/complex_search.html" -> |
913 |
html_open_page buf t r true; |
html_open_page buf t r true; |
914 |
CommonSearch.complex_search buf |
CommonSearch.complex_search buf |
915 |
| "/noframe.html" -> |
| "/noframe.html" -> |
916 |
html_open_page buf t r true |
html_open_page buf t r true |
917 |
|
|
918 |
| "/oneframe.html" -> |
| "/oneframe.html" -> |
922 |
| "/bw_updown.png" -> |
| "/bw_updown.png" -> |
923 |
do_draw_pic "Traffic" "s(kb)" "t(h:m:s)" download_history upload_history; |
do_draw_pic "Traffic" "s(kb)" "t(h:m:s)" download_history upload_history; |
924 |
(* Buffer.clear buf; *) |
(* Buffer.clear buf; *) |
|
html_page := false; |
|
|
http_add_png_header r; |
|
925 |
let showgraph = File.to_string "bw_updown.png" in |
let showgraph = File.to_string "bw_updown.png" in |
926 |
|
let size = String.length showgraph in |
927 |
|
http_add_png_header r size; |
928 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
929 |
|
|
930 |
| "/bw_updown.jpg" -> |
| "/bw_updown.jpg" -> |
931 |
do_draw_pic "Traffic" "s(kb)" "t(h:m:s)" download_history upload_history; |
do_draw_pic "Traffic" "s(kb)" "t(h:m:s)" download_history upload_history; |
932 |
(* Buffer.clear buf;*) |
(* Buffer.clear buf;*) |
933 |
html_page := false; |
let showgraph = File.to_string_alt "bw_updown.jpg" in |
934 |
http_add_jpg_header r; |
let size = Buffer.length showgraph in |
935 |
let showgraph = File.to_string "bw_updown.jpg" in |
http_add_jpg_header r size; |
936 |
Buffer.add_string buf showgraph |
Buffer.add_buffer buf showgraph |
937 |
|
|
938 |
| "/bw_download.png" -> |
| "/bw_download.png" -> |
939 |
do_draw_down_pic "Traffic" "download" "s(kb)" "t(h:m:s)" download_history; |
do_draw_down_pic "Traffic" "download" "s(kb)" "t(h:m:s)" download_history; |
|
html_page := false; |
|
|
http_add_png_header r; |
|
940 |
let showgraph = File.to_string "bw_download.png" in |
let showgraph = File.to_string "bw_download.png" in |
941 |
|
let size = String.length showgraph in |
942 |
|
http_add_png_header r size; |
943 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
944 |
|
|
945 |
| "/bw_download.jpg" -> |
| "/bw_download.jpg" -> |
946 |
do_draw_down_pic "Traffic" "download" "s(kb)" "t(h:m:s)" download_history; |
do_draw_down_pic "Traffic" "download" "s(kb)" "t(h:m:s)" download_history; |
947 |
Buffer.clear buf; |
Buffer.clear buf; |
|
html_page := false; |
|
|
http_add_jpg_header r; |
|
948 |
let showgraph = File.to_string "bw_download.jpg" in |
let showgraph = File.to_string "bw_download.jpg" in |
949 |
|
let size = String.length showgraph in |
950 |
|
http_add_jpg_header r size; |
951 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
952 |
|
|
953 |
| "/bw_upload.png" -> |
| "/bw_upload.png" -> |
954 |
do_draw_up_pic "Traffic" "upload" "s(kb)" "t(h:m:s)" upload_history; |
do_draw_up_pic "Traffic" "upload" "s(kb)" "t(h:m:s)" upload_history; |
|
html_page := false; |
|
|
http_add_png_header r; |
|
955 |
let showgraph = File.to_string "bw_upload.png" in |
let showgraph = File.to_string "bw_upload.png" in |
956 |
|
let size = String.length showgraph in |
957 |
|
http_add_png_header r size; |
958 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
959 |
|
|
960 |
| "/bw_upload.jpg" -> |
| "/bw_upload.jpg" -> |
961 |
do_draw_up_pic "Traffic" "upload" "s(kb)" "t(h:m:s)" upload_history; |
do_draw_up_pic "Traffic" "upload" "s(kb)" "t(h:m:s)" upload_history; |
962 |
Buffer.clear buf; |
Buffer.clear buf; |
|
html_page := false; |
|
|
http_add_jpg_header r; |
|
963 |
let showgraph = File.to_string "bw_upload.jpg" in |
let showgraph = File.to_string "bw_upload.jpg" in |
964 |
|
let size = String.length showgraph in |
965 |
|
http_add_jpg_header r size; |
966 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
967 |
|
|
968 |
| "/bw_h_updown.png" -> |
| "/bw_h_updown.png" -> |
969 |
do_draw_h_pic "Traffic" "s(kb)" "t(h:m:s)" download_h_history upload_h_history; |
do_draw_h_pic "Traffic" "s(kb)" "t(h:m:s)" download_h_history upload_h_history; |
970 |
(* Buffer.clear buf; *) |
(* Buffer.clear buf; *) |
|
html_page := false; |
|
|
http_add_png_header r; |
|
971 |
let showgraph = File.to_string "bw_h_updown.png" in |
let showgraph = File.to_string "bw_h_updown.png" in |
972 |
|
let size = String.length showgraph in |
973 |
|
http_add_png_header r size; |
974 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
975 |
|
|
976 |
| "/bw_h_updown.jpg" -> |
| "/bw_h_updown.jpg" -> |
977 |
do_draw_h_pic "Traffic" "s(kb)" "t(h:m:s)" download_h_history upload_h_history; |
do_draw_h_pic "Traffic" "s(kb)" "t(h:m:s)" download_h_history upload_h_history; |
978 |
(* Buffer.clear buf;*) |
(* Buffer.clear buf;*) |
|
html_page := false; |
|
|
http_add_jpg_header r; |
|
979 |
let showgraph = File.to_string "bw_h_updown.jpg" in |
let showgraph = File.to_string "bw_h_updown.jpg" in |
980 |
|
let size = String.length showgraph in |
981 |
|
http_add_jpg_header r size; |
982 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
983 |
|
|
984 |
| "/bw_h_download.png" -> |
| "/bw_h_download.png" -> |
985 |
do_draw_down_h_pic "Traffic" "download" "s(kb)" "t(h:m:s)" download_h_history; |
do_draw_down_h_pic "Traffic" "download" "s(kb)" "t(h:m:s)" download_h_history; |
|
html_page := false; |
|
|
http_add_png_header r; |
|
986 |
let showgraph = File.to_string "bw_h_download.png" in |
let showgraph = File.to_string "bw_h_download.png" in |
987 |
|
let size = String.length showgraph in |
988 |
|
http_add_png_header r size; |
989 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
990 |
|
|
991 |
| "/bw_h_download.jpg" -> |
| "/bw_h_download.jpg" -> |
992 |
do_draw_down_h_pic "Traffic" "download" "s(kb)" "t(h:m:s)" download_h_history; |
do_draw_down_h_pic "Traffic" "download" "s(kb)" "t(h:m:s)" download_h_history; |
993 |
Buffer.clear buf; |
Buffer.clear buf; |
|
html_page := false; |
|
|
http_add_jpg_header r; |
|
994 |
let showgraph = File.to_string "bw_h_download.jpg" in |
let showgraph = File.to_string "bw_h_download.jpg" in |
995 |
|
let size = String.length showgraph in |
996 |
|
http_add_jpg_header r size; |
997 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
998 |
|
|
999 |
| "/bw_h_upload.png" -> |
| "/bw_h_upload.png" -> |
1000 |
do_draw_up_h_pic "Traffic" "upload" "s(kb)" "t(h:m:s)" upload_h_history; |
do_draw_up_h_pic "Traffic" "upload" "s(kb)" "t(h:m:s)" upload_h_history; |
|
html_page := false; |
|
|
http_add_png_header r; |
|
1001 |
let showgraph = File.to_string "bw_h_upload.png" in |
let showgraph = File.to_string "bw_h_upload.png" in |
1002 |
|
let size = String.length showgraph in |
1003 |
|
http_add_png_header r size; |
1004 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
1005 |
|
|
1006 |
| "/bw_h_upload.jpg" -> |
| "/bw_h_upload.jpg" -> |
1007 |
do_draw_up_h_pic "Traffic" "upload" "s(kb)" "t(h:m:s)" upload_h_history; |
do_draw_up_h_pic "Traffic" "upload" "s(kb)" "t(h:m:s)" upload_h_history; |
1008 |
Buffer.clear buf; |
Buffer.clear buf; |
|
html_page := false; |
|
|
http_add_jpg_header r; |
|
1009 |
let showgraph = File.to_string "bw_h_upload.jpg" in |
let showgraph = File.to_string "bw_h_upload.jpg" in |
1010 |
|
let size = String.length showgraph in |
1011 |
|
http_add_jpg_header r size; |
1012 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
1013 |
|
|
1014 |
|
|
1015 |
| "/tag.png" -> |
| "/tag.png" -> |
1016 |
do_draw_tag !!html_mods_vd_gfx_tag_title download_history upload_history; |
do_draw_tag !!html_mods_vd_gfx_tag_title download_history upload_history; |
|
html_page := false; |
|
|
http_add_png_header r; |
|
1017 |
let showgraph = File.to_string "tag.png" in |
let showgraph = File.to_string "tag.png" in |
1018 |
|
let size = String.length showgraph in |
1019 |
|
http_add_png_header r size; |
1020 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
1021 |
|
|
1022 |
| "/tag.jpg" -> |
| "/tag.jpg" -> |
1023 |
do_draw_tag !!html_mods_vd_gfx_tag_title download_history upload_history; |
do_draw_tag !!html_mods_vd_gfx_tag_title download_history upload_history; |
1024 |
(* Buffer.clear buf;*) |
(* Buffer.clear buf;*) |
|
html_page := false; |
|
|
http_add_jpg_header r; |
|
1025 |
let showgraph = File.to_string "tag.jpg" in |
let showgraph = File.to_string "tag.jpg" in |
1026 |
|
let size = String.length showgraph in |
1027 |
|
http_add_jpg_header r size; |
1028 |
Buffer.add_string buf showgraph |
Buffer.add_string buf showgraph |
1029 |
|
|
1030 |
| "/filter" -> |
| "/filter" -> |
1322 |
r.reply_stream <- None |
r.reply_stream <- None |
1323 |
end; |
end; |
1324 |
|
|
1325 |
if !html_page then html_close_page buf; |
let s = |
1326 |
let s = Buffer.contents buf in |
match !http_file_type with |
1327 |
let s = dollar_escape o !!use_html_frames s in |
HTM -> html_close_page buf; dollar_escape o !!use_html_frames (Buffer.contents buf) |
1328 |
|
| MLHTM -> html_close_page buf; dollar_escape o !!use_html_frames (Buffer.contents buf) |
1329 |
|
| TXT |
1330 |
|
| BIN -> Buffer.contents buf |
1331 |
|
| UNK -> "Unknown type for content :" ^ (Buffer.contents buf) |
1332 |
|
in |
1333 |
r.reply_content <- if Autoconf.has_zlib && !!html_use_gzip then Autoconf.zlib__gzip_string s else s |
r.reply_content <- if Autoconf.has_zlib && !!html_use_gzip then Autoconf.zlib__gzip_string s else s |
1334 |
|
|
1335 |
let http_options = { |
let http_options = { |