Commit b051b4cb22f2ae0318f41e3cf85e0089209e3456
1 parent
713eb632
add cxm_form(form_id, options, fields)
add id in web_session, not yet used
Showing
6 changed files
with
161 additions
and
118 deletions
Show diff stats
web/CXM_form.anubis
| ... | ... | @@ -966,7 +966,15 @@ public define HTML_Off_Form |
| 966 | 966 | List(CXM_Form_Field) fields, |
| 967 | 967 | ) = |
| 968 | 968 | cxm_form(form_id, [], lwa, fields, "form_field aligned", true). |
| 969 | - | |
| 969 | + | |
| 970 | +public define HTML_Off_Form | |
| 971 | + cxm_form | |
| 972 | + ( | |
| 973 | + String form_id, | |
| 974 | + List(CoreAttrs) options, | |
| 975 | + List(CXM_Form_Field) fields, | |
| 976 | + ) = | |
| 977 | + cxm_form(form_id, options, [], fields, "form_field aligned", true). | |
| 970 | 978 | |
| 971 | 979 | public define HTML_Off_Form |
| 972 | 980 | cxm_form | ... | ... |
web/CXM_making_a_web_site.anubis
| ... | ... | @@ -2956,9 +2956,9 @@ define (List(String) file_names) -> One |
| 2956 | 2956 | (List(String) file_names) |-df-> |
| 2957 | 2957 | if file_names is |
| 2958 | 2958 | { |
| 2959 | - [ ] then unique, | |
| 2960 | - [h . t] then | |
| 2961 | - with file_path = state_directory+"/s"+h, | |
| 2959 | + [ ] then unique, | |
| 2960 | + [h . t] then | |
| 2961 | + with file_path = state_directory+"/"+h, | |
| 2962 | 2962 | if (RetrieveResult((Int,$State)))retrieve(file_path) is ok(d) |
| 2963 | 2963 | then ( |
| 2964 | 2964 | if d is (time_stamp,data) then |
| ... | ... | @@ -3001,7 +3001,7 @@ define One |
| 3001 | 3001 | { |
| 3002 | 3002 | [ ] then unique, |
| 3003 | 3003 | [h . t] then if h is (state_directory,function) then |
| 3004 | - function(directory_list(state_directory,"s*")); | |
| 3004 | + function(directory_list(state_directory,"*")); | |
| 3005 | 3005 | delete_out_of_date_states(t) |
| 3006 | 3006 | }. |
| 3007 | 3007 | |
| ... | ... | @@ -3763,16 +3763,16 @@ define (Maybe(WEB_Session), HTTP_Answer) |
| 3763 | 3763 | { |
| 3764 | 3764 | failure then (failure, error_page(http_not_found, "Redirect to previous Controller not found", _session)), |
| 3765 | 3765 | success(new_controller) then |
| 3766 | - since _session is web_session(lang, entries, _, previous), | |
| 3767 | - apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, web_session(lang, entries, previous, previous), failure, initial_session), | |
| 3766 | + since _session is web_session(id, lang, entries, _, previous), | |
| 3767 | + apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, web_session(id, lang, entries, previous, previous), failure, initial_session), | |
| 3768 | 3768 | }, |
| 3769 | 3769 | redirect_to_previous(entries) then |
| 3770 | 3770 | if get_controller(get_String(*_session.previous_web_request.lwa, "aws_controller", "root"), controllers) is |
| 3771 | 3771 | { |
| 3772 | 3772 | failure then (failure, error_page(http_not_found, "Redirect to previous Controller not found", _session)), |
| 3773 | 3773 | success(new_controller) then |
| 3774 | - since _session is web_session(lang, _, _, previous), | |
| 3775 | - apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, web_session(lang, entries, previous, previous), failure, initial_session), | |
| 3774 | + since _session is web_session(id, lang, _, _, previous), | |
| 3775 | + apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, web_session(id, lang, entries, previous, previous), failure, initial_session), | |
| 3776 | 3776 | }, |
| 3777 | 3777 | //ajax(answer) then (failure, answer), |
| 3778 | 3778 | //ajax with modified session that must be saved |
| ... | ... | @@ -3866,11 +3866,13 @@ public define Web_Site |
| 3866 | 3866 | |
| 3867 | 3867 | out_of_date(previous_session) then |
| 3868 | 3868 | println("previous out_of_date"); |
| 3869 | - expired_session(previous_session, http_info, var(_lwa), is_https), | |
| 3870 | - | |
| 3869 | + //expired_session(previous_session, http_info, var(_lwa), is_https), | |
| 3870 | + since previous_session is web_session(id, lang, entries, previous, _), | |
| 3871 | + web_session(id, lang, entries, web_request(http_info, var(_lwa), is_https), previous) | |
| 3872 | + | |
| 3871 | 3873 | still_valid(previous_session) then |
| 3872 | - since previous_session is web_session(lang, entries, previous, _), | |
| 3873 | - web_session(lang, entries, web_request(http_info, var(_lwa), is_https), previous) | |
| 3874 | + since previous_session is web_session(id, lang, entries, previous, _), | |
| 3875 | + web_session(id, lang, entries, web_request(http_info, var(_lwa), is_https), previous) | |
| 3874 | 3876 | }, |
| 3875 | 3877 | |
| 3876 | 3878 | ... | ... |
web/CXM_multihost_http_server.anubis
| ... | ... | @@ -703,29 +703,38 @@ type Error: |
| 703 | 703 | colon_expected, |
| 704 | 704 | timeout(Int). |
| 705 | 705 | |
| 706 | -type HTTP_RequestType: | |
| 707 | - get, | |
| 708 | - post. | |
| 706 | +type HTTP_Request_Method: | |
| 707 | + options, | |
| 708 | + get, | |
| 709 | + head, | |
| 710 | + post, | |
| 711 | + put, | |
| 712 | + delete, | |
| 713 | + trace, | |
| 714 | + connect, | |
| 715 | + extension(String) | |
| 716 | + . | |
| 709 | 717 | |
| 710 | -type HTTP_RequestLine: | |
| 711 | - request_line (HTTP_RequestType type, | |
| 712 | - String uri, | |
| 713 | - List(Web_arg) query_string). | |
| 718 | +type HTTP_Request_Line: | |
| 719 | + request_line( | |
| 720 | + HTTP_Request_Method method, | |
| 721 | + String uri, | |
| 722 | + List(Web_arg) query_string). | |
| 714 | 723 | |
| 715 | 724 | type EncodingType: |
| 716 | 725 | www_url, |
| 717 | 726 | multipart_form_data. |
| 718 | 727 | |
| 719 | 728 | |
| 720 | -public type HTTP_BufferedConnection: | |
| 721 | - http_buffered_connection(Connection conn, | |
| 722 | - Var(ByteArray) buffer, | |
| 723 | - Var(Int) read_pos, | |
| 724 | - Var(List(Word8)) unput_chars // for reading requests | |
| 725 | - ). | |
| 726 | - | |
| 729 | +public type HTTP_Buffered_Connection: | |
| 730 | + http_buffered_connection( | |
| 731 | + Connection conn, | |
| 732 | + Var(ByteArray) buffer, | |
| 733 | + Var(Int) read_pos, | |
| 734 | + Var(List(Word8)) unput_chars // for reading requests | |
| 735 | + ). | |
| 727 | 736 | |
| 728 | -public define HTTP_BufferedConnection | |
| 737 | +public define HTTP_Buffered_Connection | |
| 729 | 738 | http_buffered_connection |
| 730 | 739 | ( |
| 731 | 740 | Connection conn |
| ... | ... | @@ -741,27 +750,28 @@ public define HTTP_BufferedConnection |
| 741 | 750 | The next function formats an error message. |
| 742 | 751 | |
| 743 | 752 | public define String |
| 744 | - format | |
| 745 | - ( | |
| 746 | - Error msg | |
| 747 | - ) = | |
| 748 | - if msg is | |
| 749 | - { | |
| 750 | - cannot_read_from_connection then | |
| 751 | - "Cannot read from connection.\n", | |
| 752 | - not_get_or_post_request(s) then | |
| 753 | - "The request did not begin by 'GET' or 'POST': "+s+".\n", | |
| 754 | - end_of_line_expected then | |
| 755 | - "End of line expected.\n", | |
| 756 | - incorrect_content_length_value then | |
| 757 | - "Incorrect value for HTTP header 'Content-Length'.\n", | |
| 758 | - colon_expected then | |
| 759 | - "':' was expected.\n", | |
| 760 | - timeout(n) then | |
| 761 | - //"time out: "+n+"\n" | |
| 762 | - //"time out.\n" | |
| 763 | - "" | |
| 764 | - }. | |
| 753 | + format | |
| 754 | + ( | |
| 755 | + Error msg | |
| 756 | + )= | |
| 757 | + if msg is | |
| 758 | + { | |
| 759 | + cannot_read_from_connection then | |
| 760 | + "Cannot read from connection.\n", | |
| 761 | + not_get_or_post_request(s) then | |
| 762 | + "The request did not begin by 'GET' or 'POST': "+s+".\n", | |
| 763 | + end_of_line_expected then | |
| 764 | + "End of line expected.\n", | |
| 765 | + incorrect_content_length_value then | |
| 766 | + "Incorrect value for HTTP header 'Content-Length'.\n", | |
| 767 | + colon_expected then | |
| 768 | + "':' was expected.\n", | |
| 769 | + timeout(n) then | |
| 770 | + //"time out: "+n+"\n" | |
| 771 | + //"time out.\n" | |
| 772 | + "" | |
| 773 | + } | |
| 774 | +. | |
| 765 | 775 | |
| 766 | 776 | |
| 767 | 777 | |
| ... | ... | @@ -806,12 +816,12 @@ public type SState: |
| 806 | 816 | |
| 807 | 817 | |
| 808 | 818 | define One |
| 809 | - unput // unputting a character (add it in front of the list) | |
| 810 | - ( | |
| 811 | - Word8 character, | |
| 812 | - HTTP_BufferedConnection s | |
| 813 | - ) = | |
| 814 | - s.unput_chars <- (List(Word8))[character . *(s.unput_chars)]. | |
| 819 | + unput // unputting a character (add it in front of the list) | |
| 820 | + ( | |
| 821 | + Word8 character, | |
| 822 | + HTTP_Buffered_Connection s | |
| 823 | + ) = | |
| 824 | + s.unput_chars <- (List(Word8))[character . *(s.unput_chars)]. | |
| 815 | 825 | |
| 816 | 826 | |
| 817 | 827 | |
| ... | ... | @@ -861,7 +871,7 @@ define One |
| 861 | 871 | define ReadResult |
| 862 | 872 | read_from_connexion |
| 863 | 873 | ( |
| 864 | - HTTP_BufferedConnection connection, | |
| 874 | + HTTP_Buffered_Connection connection, | |
| 865 | 875 | Int size, |
| 866 | 876 | Int time_out, |
| 867 | 877 | ByteArray result_buffer, |
| ... | ... | @@ -913,7 +923,7 @@ define Result(Error,Word8) |
| 913 | 923 | next_char // reading a character (check the list first, and read on the connection |
| 914 | 924 | // only when the list is empty). |
| 915 | 925 | ( |
| 916 | - HTTP_BufferedConnection connection | |
| 926 | + HTTP_Buffered_Connection connection | |
| 917 | 927 | // Int dead_line, |
| 918 | 928 | // DenialOfService dos |
| 919 | 929 | ) = |
| ... | ... | @@ -969,7 +979,7 @@ define Result(Error,Word8) |
| 969 | 979 | define ByteArray |
| 970 | 980 | get_and_erase_buffer |
| 971 | 981 | ( |
| 972 | - HTTP_BufferedConnection connection | |
| 982 | + HTTP_Buffered_Connection connection | |
| 973 | 983 | )= |
| 974 | 984 | with head = to_byte_array(implode(*connection.unput_chars)), |
| 975 | 985 | tail = extract(*connection.buffer, *connection.read_pos, length(*connection.buffer)), |
| ... | ... | @@ -1003,7 +1013,7 @@ define ByteArray |
| 1003 | 1013 | define Result(Error,One) |
| 1004 | 1014 | read_and_ignore |
| 1005 | 1015 | ( |
| 1006 | - HTTP_BufferedConnection connection, // to client | |
| 1016 | + HTTP_Buffered_Connection connection, // to client | |
| 1007 | 1017 | Int number_of_characters // number of characters to read and ignore |
| 1008 | 1018 | ) = |
| 1009 | 1019 | if number_of_characters =< 0 then |
| ... | ... | @@ -1031,7 +1041,7 @@ define Result(Error,One) |
| 1031 | 1041 | define Result(Error,String) |
| 1032 | 1042 | read_string |
| 1033 | 1043 | ( |
| 1034 | - HTTP_BufferedConnection connection, // connection with the client | |
| 1044 | + HTTP_Buffered_Connection connection, // connection with the client | |
| 1035 | 1045 | List(Word8) so_far // characters read so far (in reverse order) |
| 1036 | 1046 | ) = |
| 1037 | 1047 | if next_char(connection) is |
| ... | ... | @@ -1237,7 +1247,7 @@ define String |
| 1237 | 1247 | ( |
| 1238 | 1248 | Web_Site_Description desc, |
| 1239 | 1249 | Connection client_connection, |
| 1240 | - HTTP_RequestLine request_line, | |
| 1250 | + HTTP_Request_Line request_line, | |
| 1241 | 1251 | List(HTTP_header) headers, |
| 1242 | 1252 | List(Web_arg) web_args |
| 1243 | 1253 | ) = |
| ... | ... | @@ -1325,7 +1335,7 @@ define Bool |
| 1325 | 1335 | define Result(Error,One) |
| 1326 | 1336 | skip_http_blanks |
| 1327 | 1337 | ( |
| 1328 | - HTTP_BufferedConnection connection | |
| 1338 | + HTTP_Buffered_Connection connection | |
| 1329 | 1339 | ) |
| 1330 | 1340 | = |
| 1331 | 1341 | if next_char(connection) is |
| ... | ... | @@ -1381,7 +1391,7 @@ define Result(Error,One) |
| 1381 | 1391 | public define Result(Error,One) |
| 1382 | 1392 | read_new_line |
| 1383 | 1393 | ( |
| 1384 | - HTTP_BufferedConnection connection | |
| 1394 | + HTTP_Buffered_Connection connection | |
| 1385 | 1395 | ) = |
| 1386 | 1396 | if skip_http_blanks(connection) is |
| 1387 | 1397 | { |
| ... | ... | @@ -1412,7 +1422,7 @@ public define Result(Error,One) |
| 1412 | 1422 | public define Result(Error,One) |
| 1413 | 1423 | skip_line |
| 1414 | 1424 | ( |
| 1415 | - HTTP_BufferedConnection connection | |
| 1425 | + HTTP_Buffered_Connection connection | |
| 1416 | 1426 | ) = |
| 1417 | 1427 | if next_char(connection) is |
| 1418 | 1428 | { |
| ... | ... | @@ -1451,7 +1461,7 @@ public define Result(Error,One) |
| 1451 | 1461 | define Result(Error,String) |
| 1452 | 1462 | read_word_aux |
| 1453 | 1463 | ( |
| 1454 | - HTTP_BufferedConnection connection, | |
| 1464 | + HTTP_Buffered_Connection connection, | |
| 1455 | 1465 | List(Word8) so_far |
| 1456 | 1466 | ) = |
| 1457 | 1467 | if next_char(connection) is |
| ... | ... | @@ -1467,7 +1477,7 @@ define Result(Error,String) |
| 1467 | 1477 | define Result(Error,String) |
| 1468 | 1478 | read_word |
| 1469 | 1479 | ( |
| 1470 | - HTTP_BufferedConnection connection | |
| 1480 | + HTTP_Buffered_Connection connection | |
| 1471 | 1481 | ) = |
| 1472 | 1482 | if skip_http_blanks(connection) is |
| 1473 | 1483 | { |
| ... | ... | @@ -1639,42 +1649,50 @@ public define List(Web_arg) |
| 1639 | 1649 | returns a datum of type 'HTTP_RequestLine' if no error arose. |
| 1640 | 1650 | |
| 1641 | 1651 | |
| 1642 | -define Result(Error,HTTP_RequestType) | |
| 1643 | - identify_get_or_post | |
| 1644 | - ( | |
| 1645 | - String s | |
| 1646 | - ) = | |
| 1647 | - with ls = to_lower(s), | |
| 1652 | +define Result(Error, HTTP_Request_Method) | |
| 1653 | + identify_get_or_post | |
| 1654 | + ( | |
| 1655 | + String s | |
| 1656 | + )= | |
| 1657 | + with ls = to_lower(s), | |
| 1648 | 1658 | if ls = "get" then ok(get) else |
| 1649 | 1659 | if ls = "post" then ok(post) else |
| 1650 | 1660 | error(not_get_or_post_request(ls)). |
| 1651 | 1661 | |
| 1652 | -public define Result(Error, HTTP_RequestLine) | |
| 1662 | +public define Result(Error, HTTP_Request_Line) | |
| 1653 | 1663 | read_request_line |
| 1654 | 1664 | ( |
| 1655 | - HTTP_BufferedConnection connection | |
| 1665 | + HTTP_Buffered_Connection connection | |
| 1656 | 1666 | ) = |
| 1667 | + //Read the Method | |
| 1657 | 1668 | if read_word(connection) is |
| 1658 | 1669 | { |
| 1659 | - error(msg) then error(msg), | |
| 1660 | - ok(get_or_post) then | |
| 1670 | + error(msg) then error(msg), | |
| 1671 | + ok(method) then | |
| 1672 | + //read the URI | |
| 1661 | 1673 | if read_word(connection) is |
| 1662 | 1674 | { |
| 1663 | - error(msg) then error(msg), | |
| 1664 | - ok(uri_and_query_string) then if read_word(connection) is | |
| 1665 | - { | |
| 1666 | - error(msg) then error(msg), | |
| 1667 | - ok(http_version) then if read_new_line(connection) is | |
| 1668 | - { | |
| 1669 | - error(msg) then error(msg), | |
| 1670 | - ok(_) then if separate_uri_from_query_string(uri_and_query_string,0) is | |
| 1671 | - (uri,query_string) then if identify_get_or_post(get_or_post) is | |
| 1672 | - { | |
| 1673 | - error(msg) then error(msg), | |
| 1674 | - ok(request_type) then | |
| 1675 | - ok(request_line(request_type, web_to_ascii(uri, 0, []), read_www_url_encoded_web_args(query_string,0))) | |
| 1676 | - } | |
| 1677 | - } | |
| 1675 | + error(msg) then error(msg), | |
| 1676 | + ok(uri_and_query_string) then | |
| 1677 | + //Read the HTTP version | |
| 1678 | + if read_word(connection) is | |
| 1679 | + { | |
| 1680 | + error(msg) then error(msg), | |
| 1681 | + ok(http_version) then | |
| 1682 | + //read the ending CR/LF | |
| 1683 | + if read_new_line(connection) is | |
| 1684 | + { | |
| 1685 | + error(msg) then error(msg), | |
| 1686 | + ok(_) then | |
| 1687 | + | |
| 1688 | + if separate_uri_from_query_string(uri_and_query_string,0) is | |
| 1689 | + (uri,query_string) then | |
| 1690 | + if identify_get_or_post(method) is | |
| 1691 | + { | |
| 1692 | + error(msg) then error(msg), | |
| 1693 | + ok(request_type) then ok(request_line(request_type, web_to_ascii(uri, 0, []), read_www_url_encoded_web_args(query_string,0))) | |
| 1694 | + } | |
| 1695 | + } | |
| 1678 | 1696 | } |
| 1679 | 1697 | } |
| 1680 | 1698 | }. |
| ... | ... | @@ -1703,7 +1721,7 @@ define Bool |
| 1703 | 1721 | define Result(Error,String) |
| 1704 | 1722 | read_header_name |
| 1705 | 1723 | ( |
| 1706 | - HTTP_BufferedConnection connection, | |
| 1724 | + HTTP_Buffered_Connection connection, | |
| 1707 | 1725 | List(Word8) so_far |
| 1708 | 1726 | ) = |
| 1709 | 1727 | if next_char(connection) is |
| ... | ... | @@ -1718,7 +1736,7 @@ define Result(Error,String) |
| 1718 | 1736 | define Result(Error,One) |
| 1719 | 1737 | skip_colon |
| 1720 | 1738 | ( |
| 1721 | - HTTP_BufferedConnection connection | |
| 1739 | + HTTP_Buffered_Connection connection | |
| 1722 | 1740 | ) = |
| 1723 | 1741 | //Skip the blank char until ':' |
| 1724 | 1742 | if skip_http_blanks(connection) is |
| ... | ... | @@ -1738,7 +1756,7 @@ define Result(Error,One) |
| 1738 | 1756 | define Result(Error,String) |
| 1739 | 1757 | read_header_value |
| 1740 | 1758 | ( |
| 1741 | - HTTP_BufferedConnection connection, | |
| 1759 | + HTTP_Buffered_Connection connection, | |
| 1742 | 1760 | List(Word8) so_far |
| 1743 | 1761 | ) = |
| 1744 | 1762 | if next_char(connection) is |
| ... | ... | @@ -1770,7 +1788,7 @@ define Result(Error,String) |
| 1770 | 1788 | define Result(Error,Maybe(HTTP_header)) |
| 1771 | 1789 | read_header |
| 1772 | 1790 | ( |
| 1773 | - HTTP_BufferedConnection connection | |
| 1791 | + HTTP_Buffered_Connection connection | |
| 1774 | 1792 | ) = |
| 1775 | 1793 | //Find the name |
| 1776 | 1794 | if read_header_name(connection, []) is |
| ... | ... | @@ -1811,7 +1829,7 @@ define Result(Error,Maybe(HTTP_header)) |
| 1811 | 1829 | public define Result(Error,List(HTTP_header)) |
| 1812 | 1830 | read_http_headers |
| 1813 | 1831 | ( |
| 1814 | - HTTP_BufferedConnection connection | |
| 1832 | + HTTP_Buffered_Connection connection | |
| 1815 | 1833 | ) = |
| 1816 | 1834 | if read_header(connection) is |
| 1817 | 1835 | { |
| ... | ... | @@ -1872,7 +1890,7 @@ public define Result(Error,Int) |
| 1872 | 1890 | public define Result(Error, ByteArray) |
| 1873 | 1891 | read_http_body |
| 1874 | 1892 | ( |
| 1875 | - HTTP_BufferedConnection connection, | |
| 1893 | + HTTP_Buffered_Connection connection, | |
| 1876 | 1894 | Int body_size, |
| 1877 | 1895 | ByteArray so_far, // when calling this function, 'so_far' is the empty byte array |
| 1878 | 1896 | Int retries // this function is called with retries = 10 |
| ... | ... | @@ -2479,8 +2497,8 @@ define One |
| 2479 | 2497 | String host_name, |
| 2480 | 2498 | Web_Site_Description desc, |
| 2481 | 2499 | Connection connection, // with the client |
| 2482 | - Word32 ip_addr, // of the client | |
| 2483 | - HTTP_RequestLine request_line, | |
| 2500 | + Word32 ip_addr, // of the client | |
| 2501 | + HTTP_Request_Line request_line, | |
| 2484 | 2502 | List(HTTP_header) headers, |
| 2485 | 2503 | ByteArray body, |
| 2486 | 2504 | One -> String generate_tt // trust ticket generation |
| ... | ... | @@ -2492,13 +2510,15 @@ define One |
| 2492 | 2510 | http_inf = http_info(ip_addr, host_name, uri, headers, is_SSL(connection)), |
| 2493 | 2511 | (if member(journal_extensions(desc),ext) |
| 2494 | 2512 | then log_journal_msg(desc, |
| 2495 | - format_request(desc,connection,request_line,headers,all_web_args)) | |
| 2513 | + format_request(desc, connection, request_line, headers, all_web_args)) | |
| 2496 | 2514 | else unique); |
| 2497 | - if is_illegal_uri(uri,0) | |
| 2498 | - then log_journal_msg(desc,"Received illegal URI: "+uri+"\n") | |
| 2499 | - else (if (ext = ".awp" | ext = "") | |
| 2515 | + | |
| 2516 | + if is_illegal_uri(uri,0) then | |
| 2517 | + log_journal_msg(desc,"Received illegal URI: "+uri+"\n") | |
| 2518 | + else | |
| 2519 | + (if (ext = ".awp" | ext = "") | |
| 2500 | 2520 | then |
| 2501 | - if awp_handler(desc)(host_name, http_inf, all_web_args, is_SSL(connection)) is | |
| 2521 | + if desc.awp_handler(host_name, http_inf, all_web_args, is_SSL(connection)) is | |
| 2502 | 2522 | { |
| 2503 | 2523 | printable_tree(answer_headers_body) then |
| 2504 | 2524 | forget(reliable_write(connection, answer_headers_body)), |
| ... | ... | @@ -2982,7 +3002,7 @@ define One |
| 2982 | 3002 | Web_Site_Description desc, |
| 2983 | 3003 | Connection connection, |
| 2984 | 3004 | Word32 ip_addr, |
| 2985 | - HTTP_RequestLine request_line, | |
| 3005 | + HTTP_Request_Line request_line, | |
| 2986 | 3006 | List(HTTP_header) headers, |
| 2987 | 3007 | String body_temp_file, |
| 2988 | 3008 | One -> String generate_tt, |
| ... | ... | @@ -3261,7 +3281,7 @@ define One |
| 3261 | 3281 | http_https_handler |
| 3262 | 3282 | ( |
| 3263 | 3283 | List(Web_Site_Description) sites, |
| 3264 | - HTTP_BufferedConnection connection, | |
| 3284 | + HTTP_Buffered_Connection connection, | |
| 3265 | 3285 | Bool is_https, |
| 3266 | 3286 | DenialOfService dos, |
| 3267 | 3287 | SState s, |
| ... | ... | @@ -3295,8 +3315,8 @@ define One |
| 3295 | 3315 | { |
| 3296 | 3316 | error(msg) then log_journal_msg(desc,format(msg)), |
| 3297 | 3317 | ok(body_size) then |
| 3298 | - if rqline is request_line(type, uri, qstring) then | |
| 3299 | - with rqline2 = request_line(type, handle_redirection(redirections(desc), uri, headers), qstring), | |
| 3318 | + if rqline is request_line(method, uri, qstring) then | |
| 3319 | + with rqline2 = request_line(method, handle_redirection(redirections(desc), uri, headers), qstring), | |
| 3300 | 3320 | |
| 3301 | 3321 | //Get the type of encoding which decide if we read the content in ByteArray for www_url or in |
| 3302 | 3322 | //temporary file for multipart. |
| ... | ... | @@ -3309,10 +3329,12 @@ define One |
| 3309 | 3329 | { |
| 3310 | 3330 | error(msg) then log_journal_msg(desc,format(msg)), |
| 3311 | 3331 | ok(body) then |
| 3332 | + //HERE produce the answer of the server | |
| 3312 | 3333 | www_url_answer(host_name, desc, connection.conn, ip_addr, rqline2, headers, body, generate_tt); |
| 3313 | 3334 | //it's HTTP 1.1 keep-alive is default |
| 3314 | 3335 | http_https_handler(sites, connection, is_https, dos, s, shutdown_required) |
| 3315 | 3336 | } |
| 3337 | + | |
| 3316 | 3338 | //MULTIPART_FORM_DATA |
| 3317 | 3339 | multipart_form_data then |
| 3318 | 3340 | ... | ... |
web/CXM_web_action.anubis
web/CXM_web_session.anubis
| ... | ... | @@ -78,6 +78,7 @@ public type WEB_Request_No_Var: |
| 78 | 78 | |
| 79 | 79 | public type WEB_Session: |
| 80 | 80 | web_session( |
| 81 | + String session_id, | |
| 81 | 82 | String language, |
| 82 | 83 | Var(List(WEB_Session_Field)) fields, |
| 83 | 84 | WEB_Request web_request, |
| ... | ... | @@ -86,6 +87,7 @@ public type WEB_Session: |
| 86 | 87 | |
| 87 | 88 | public type WEB_Session_No_Var: |
| 88 | 89 | web_session( |
| 90 | + String session_id, | |
| 89 | 91 | String language, |
| 90 | 92 | List(WEB_Session_Field_No_Var) fields, |
| 91 | 93 | WEB_Request_No_Var web_request, |
| ... | ... | @@ -107,6 +109,14 @@ public define WEB_Session_Field |
| 107 | 109 | |
| 108 | 110 | *----------------------------------------------------------------* |
| 109 | 111 | |
| 112 | +public define String | |
| 113 | + get_new_session_id | |
| 114 | + = | |
| 115 | + with session_id = (now, (Word32)virtual_machine_id), | |
| 116 | + to_ascii(sha1(session_id)) | |
| 117 | +. | |
| 118 | + | |
| 119 | + | |
| 110 | 120 | define Var(List(WEB_Session_Field)) |
| 111 | 121 | to_WEB_Session_Field |
| 112 | 122 | ( |
| ... | ... | @@ -128,8 +138,8 @@ public define WEB_Session |
| 128 | 138 | ( |
| 129 | 139 | WEB_Session_No_Var _session |
| 130 | 140 | )= |
| 131 | - since _session is web_session(language, fields, c_web_request, p_web_request), | |
| 132 | - web_session(language, to_WEB_Session_Field(fields), | |
| 141 | + since _session is web_session(id, language, fields, c_web_request, p_web_request), | |
| 142 | + web_session(id, language, to_WEB_Session_Field(fields), | |
| 133 | 143 | web_request(c_web_request.http_info, var(c_web_request.lwa), c_web_request.is_https), |
| 134 | 144 | web_request(p_web_request.http_info, var(p_web_request.lwa), p_web_request.is_https) |
| 135 | 145 | ) |
| ... | ... | @@ -140,8 +150,8 @@ public define WEB_Session_No_Var |
| 140 | 150 | ( |
| 141 | 151 | WEB_Session _session |
| 142 | 152 | )= |
| 143 | - since _session is web_session(language, fields, c_web_request, p_web_request), | |
| 144 | - web_session(language, to_WEB_Session_Field_No_Var(*fields), | |
| 153 | + since _session is web_session(id, language, fields, c_web_request, p_web_request), | |
| 154 | + web_session(id, language, to_WEB_Session_Field_No_Var(*fields), | |
| 145 | 155 | web_request(c_web_request.http_info, *c_web_request.lwa, c_web_request.is_https), |
| 146 | 156 | web_request(p_web_request.http_info, *p_web_request.lwa, p_web_request.is_https) |
| 147 | 157 | ) |
| ... | ... | @@ -1129,10 +1139,11 @@ public define String |
| 1129 | 1139 | ( |
| 1130 | 1140 | WEB_Session _session |
| 1131 | 1141 | )= |
| 1132 | - since _session is web_session(language, fields, web_request, previous_web_request), | |
| 1142 | + since _session is web_session(id, language, fields, web_request, previous_web_request), | |
| 1133 | 1143 | "WEB Session Dump: \n"+ |
| 1134 | 1144 | "----------------- \n"+ |
| 1135 | - "Language : ["+language+"]\n\n"+ | |
| 1145 | + "Session ID : ["+id+"]\n"+ | |
| 1146 | + "Language : ["+language+"]\n\n"+ | |
| 1136 | 1147 | dump_WEB_Session_Fields(*fields)+ |
| 1137 | 1148 | "-----------------------------------------------------------------------------\n"+ |
| 1138 | 1149 | "Current WEB REQUEST:\n"+ | ... | ... |
web/jQuery/CXM_jquery_dialog.anubis
| ... | ... | @@ -8,7 +8,7 @@ |
| 8 | 8 | |
| 9 | 9 | read system/convert.anubis |
| 10 | 10 | read calexium_lib/web/CXM_making_a_web_site.anubis |
| 11 | -read calexium_lib/web/CXM_jquery.anubis | |
| 11 | +transmit calexium_lib/web/CXM_jquery.anubis | |
| 12 | 12 | |
| 13 | 13 | public type JQuery_dialog_id: |
| 14 | 14 | dialog_id(String id). |
| ... | ... | @@ -66,9 +66,9 @@ $( \"#"+dlg_id+"\" ).dialog({ |
| 66 | 66 | { |
| 67 | 67 | p_content(pc) then |
| 68 | 68 | if pc is partial_content(tags, html) then |
| 69 | - partial_content( [js . tags ], html), //html code of the dialog | |
| 69 | + partial_content( [js . tags ], div([id(dlg_id)], html)), //html code of the dialog | |
| 70 | 70 | off_form(html) then |
| 71 | - partial_content( [js], html), //html code of the dialog | |
| 71 | + partial_content( [js], div([id(dlg_id)], html)), //html code of the dialog | |
| 72 | 72 | ajax(_url) then |
| 73 | 73 | with url = format_web_action_name(_url), |
| 74 | 74 | //println("jq_dialog_create : \njs_str ->"+js_str+"\nurl ->"+url); | ... | ... |