Changeset 578
- Timestamp:
- 01/03/07 00:03:38 (2 years ago)
- Files:
-
- cherokee/trunk/ChangeLog (modified) (1 diff)
- cherokee/trunk/cherokee/buffer.c (modified) (2 diffs)
- cherokee/trunk/cherokee/buffer.h (modified) (1 diff)
- cherokee/trunk/cherokee/handler_dirlist.c (modified) (16 diffs)
- cherokee/trunk/cherokee/handler_error.c (modified) (11 diffs)
- cherokee/trunk/cherokee/handler_file.c (modified) (1 diff)
- cherokee/trunk/cherokee/thread.c (modified) (2 diffs)
- cherokee/trunk/cherokee/thread.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cherokee/trunk/ChangeLog
r573 r578 1 2007-01-02 A.D.F <adefacc@tin.it> 2 3 * cherokee/handler_error.c (build_hardcoded_response_page): 4 - added a cherokee_buffer_ensure_addlen(buffer, 1000) 5 to avoid too many reallocations; 6 - replaced cherokee_buffer_add_va() for equivalent 7 cherokee_buffer_add_*() calls; 8 9 * cherokee/buffer.c: 10 - added cherokee_buffer_substitute_string() 11 which takes an additional parameter (destination buffer) 12 and so does not need to reallocate memory unless 13 this is really needed (cherokee_buffer_replace_string()) 14 has not been touched); 15 16 * cherokee/thread.h, cherokee/thread.c: 17 - added a second temporary buffer to cherokee_thread_t 18 because the need for two temporary buffers is not uncommon; 19 20 * cherokee/handler_file.c: 21 - changed macro from THREAD_TMP_BUF() to THREAD_TMP_BUF1(); 22 23 * cherokee/handler_dirlist.c: 24 - changed code to use cherokee_buffer_substitute_string() 25 by using two temporary buffers (coming from the current thread) 26 and alternating the substitutions from one temporary 27 buffer to the other (stuff is copied from source to destination 28 if cherokee_buffer_substitute_string() returns ret_ok; 29 - changed name to the token macro, 30 from: replace_token(); 31 to: substitute_token(). 32 1 33 2007-01-01 Alvaro Lopez Ortega <alvaro@alobbs.com> 2 34 cherokee/trunk/cherokee/buffer.c
r550 r578 1507 1507 } 1508 1508 1509 /* If no substring ha vebeen found, then return now.1509 /* If no substring has been found, then return now. 1510 1510 */ 1511 1511 if (p == buf->buf) … … 1559 1559 1560 1560 1561 /* Returns: 1562 * ret_ok bufdst has been written with the substitution string(s) 1563 * ret_not_found substring not found in bufsrc 1564 * ret_deny bad formal parameters 1565 * ret_xxx fatal error (failed allocation, etc.) 1566 */ 1567 ret_t 1568 cherokee_buffer_substitute_string (cherokee_buffer_t *bufsrc, 1569 cherokee_buffer_t *bufdst, 1570 char *substring, int substring_length, 1571 char *replacement, int replacement_length) 1572 { 1573 ret_t ret; 1574 int remaining_length; 1575 int result_length; 1576 char *result_position; 1577 const char *p; 1578 const char *substring_position; 1579 1580 /* Verify formal parameters 1581 * (those which are not tested would raise a segment violation). 1582 */ 1583 if (bufsrc->buf == NULL || 1584 bufdst->buf == NULL || 1585 substring == NULL || substring_length < 1 || 1586 replacement == NULL || replacement_length < 0) 1587 return ret_deny; 1588 1589 /* Clean / reset destination buffer. 1590 */ 1591 bufdst->buf[0] = '\0'; 1592 bufdst->len = 0; 1593 1594 /* Calculate the new size 1595 */ 1596 result_length = bufsrc->len; 1597 for (p = bufsrc->buf; ; p = substring_position + substring_length) { 1598 substring_position = strstr (p, substring); 1599 1600 if (substring_position == NULL) 1601 break; 1602 1603 result_length += (replacement_length - substring_length); 1604 } 1605 1606 /* If no substring has been found, then return now. 1607 */ 1608 if (p == bufsrc->buf) 1609 return ret_not_found; 1610 1611 /* If resulting length is zero, then return now. 1612 */ 1613 if (result_length < 1) { 1614 return ret_ok; 1615 } 1616 1617 /* Preset size of destination buffer. 1618 */ 1619 ret = cherokee_buffer_ensure_size(bufdst, result_length + 2); 1620 1621 /* Build the new string 1622 */ 1623 result_position = bufdst->buf; 1624 1625 for (p = bufsrc->buf; ; p = substring_position + substring_length) { 1626 substring_position = strstr (p, substring); 1627 1628 if (substring_position == NULL) { 1629 remaining_length = (int) (&(bufsrc->buf[bufsrc->len]) - p); 1630 memcpy (result_position, p, remaining_length); 1631 result_position += remaining_length; 1632 break; 1633 } 1634 memcpy (result_position, p, substring_position - p); 1635 result_position += (int) (substring_position - p); 1636 1637 memcpy (result_position, replacement, replacement_length); 1638 result_position += replacement_length; 1639 } 1640 1641 /* Terminate the destination buffer 1642 */ 1643 *result_position = '\0'; 1644 bufdst->len = result_length; 1645 1646 return ret_ok; 1647 } 1648 1649 1561 1650 ret_t 1562 1651 cherokee_buffer_add_comma_marks (cherokee_buffer_t *buf) cherokee/trunk/cherokee/buffer.h
r550 r578 96 96 ret_t cherokee_buffer_remove_chunk (cherokee_buffer_t *buf, int from, int len); 97 97 ret_t cherokee_buffer_replace_string (cherokee_buffer_t *buf, char *subs, int subs_len, char *repl, int repl_len); 98 ret_t cherokee_buffer_substitute_string (cherokee_buffer_t *bufsrc, cherokee_buffer_t *bufdst, char *subs, int subs_len, char *repl, int repl_len); 98 99 99 100 ret_t cherokee_buffer_ensure_addlen (cherokee_buffer_t *buf, size_t alen); cherokee/trunk/cherokee/handler_dirlist.c
r541 r578 389 389 if (cherokee_buffer_is_empty (&HDL_DIRLIST_PROP(n)->entry) || 390 390 cherokee_buffer_is_empty (&HDL_DIRLIST_PROP(n)->header) || 391 cherokee_buffer_is_empty (&HDL_DIRLIST_PROP(n)->footer)) 392 { 391 cherokee_buffer_is_empty (&HDL_DIRLIST_PROP(n)->footer)) { 393 392 PRINT_ERROR_S ("The theme is incomplete\n"); 394 393 return ret_error; … … 687 686 688 687 static ret_t 689 replace_token_guts (cherokee_buffer_t *buf, char *token, char token_len, char *replacement)688 substitute_token_guts (cherokee_buffer_t *buf1, cherokee_buffer_t *buf2, char *token, char token_len, char *replacement) 690 689 { 691 690 if (replacement == NULL) { 692 return cherokee_buffer_ replace_string (buf, token, token_len, "", 0);693 } 694 695 return cherokee_buffer_ replace_string (buf, token, token_len, replacement, strlen(replacement));691 return cherokee_buffer_substitute_string (buf1, buf2, token, token_len, "", 0); 692 } 693 694 return cherokee_buffer_substitute_string (buf1, buf2, token, token_len, replacement, strlen(replacement)); 696 695 } 697 696 … … 706 705 cherokee_buffer_t *tmp = &dhdl->header; 707 706 cherokee_handler_dirlist_props_t *props = HDL_DIRLIST_PROP(dhdl); 708 709 #define replace_token(buf,token,val) \ 710 replace_token_guts(buf,token,sizeof(token)-1,val) 707 cherokee_thread_t *thread = HANDLER_THREAD(dhdl); 708 size_t idx_tmp = 0; 709 cherokee_buffer_t *vtmp[2]; 710 711 #define substitute_token(idx, token, val) \ 712 (idx = (substitute_token_guts(vtmp[idx], vtmp[(idx) ^ 1], token, sizeof(token)-1, (val)) == ret_ok ? (idx ^ 1) : (idx & 1))) 713 714 /* Initialize array of tmp buffers 715 */ 716 vtmp[0] = THREAD_TMP_BUF1(thread); 717 vtmp[1] = THREAD_TMP_BUF2(thread); 718 719 /* Clear tmp buffers. 720 */ 721 cherokee_buffer_clean(vtmp[0]); 722 cherokee_buffer_clean(vtmp[1]); 711 723 712 724 /* Add entry text 713 725 */ 714 cherokee_buffer_add_buffer ( buffer, &props->entry);726 cherokee_buffer_add_buffer (vtmp[0], &props->entry); 715 727 716 728 /* Add the icon … … 731 743 #endif 732 744 733 replace_token (buffer, "%icon_alt%", alt);734 replace_token (buffer, "%icon%", icon);745 substitute_token (idx_tmp, "%icon_alt%", alt); 746 substitute_token (idx_tmp, "%icon%", icon); 735 747 736 748 /* File 737 749 */ 738 replace_token (buffer, "%file_name%", name);739 replace_token (buffer, "%file_link%", name);750 substitute_token (idx_tmp, "%file_name%", name); 751 substitute_token (idx_tmp, "%file_link%", name); 740 752 741 753 /* Date … … 746 758 747 759 strftime (tmp->buf, 32, "%d-%b-%Y %H:%M", localtime(&file->stat.st_mtime)); 748 replace_token (buffer, "%date%", tmp->buf);760 substitute_token (idx_tmp, "%date%", tmp->buf); 749 761 } 750 762 … … 753 765 if (props->show_size) { 754 766 if (is_dir) { 755 replace_token (buffer, "%size_unit%", NULL);756 replace_token (buffer, "%size%", "-");767 substitute_token (idx_tmp, "%size_unit%", NULL); 768 substitute_token (idx_tmp, "%size%", "-"); 757 769 } else { 758 770 char *unit; 759 771 760 772 cherokee_buffer_clean (tmp); 761 cherokee_buffer_ensure_size (tmp, 6);773 cherokee_buffer_ensure_size (tmp, 8); 762 774 763 775 cherokee_strfsize (file->stat.st_size, tmp->buf); … … 766 778 while ((*unit >= '0') && (*unit <= '9')) unit++; 767 779 768 replace_token (buffer, "%size_unit%", unit);780 substitute_token (idx_tmp, "%size_unit%", unit); 769 781 *unit = '\0'; 770 replace_token (buffer, "%size%", tmp->buf);782 substitute_token (idx_tmp, "%size%", tmp->buf); 771 783 } 772 784 } … … 781 793 name = (char *) (user->pw_name) ? user->pw_name : "unknown"; 782 794 783 replace_token (buffer, "%user%", name);795 substitute_token (idx_tmp, "%user%", name); 784 796 } 785 797 … … 793 805 group = (char *) (user->gr_name) ? user->gr_name : "unknown"; 794 806 795 replace_token (buffer, "%group%", group); 796 } 807 substitute_token (idx_tmp, "%group%", group); 808 } 809 810 /* Add final result to buffer 811 */ 812 cherokee_buffer_add_buffer (buffer, vtmp[idx_tmp]); 797 813 798 814 return ret_ok; … … 806 822 cherokee_icons_t *icons = HANDLER_SRV(dhdl)->icons; 807 823 cherokee_handler_dirlist_props_t *props = HDL_DIRLIST_PROP(dhdl); 808 809 cherokee_buffer_add_buffer (buffer, &props->entry); 824 cherokee_thread_t *thread = HANDLER_THREAD(dhdl); 825 cherokee_buffer_t *vtmp[2]; 826 size_t idx_tmp = 0; 827 828 /* Initialize array of tmp buffers 829 */ 830 vtmp[0] = THREAD_TMP_BUF1(thread); 831 vtmp[1] = THREAD_TMP_BUF2(thread); 832 833 /* Clear tmp buffers. 834 */ 835 cherokee_buffer_clean(vtmp[0]); 836 cherokee_buffer_clean(vtmp[1]); 837 838 /* Add entry text 839 */ 840 cherokee_buffer_add_buffer (vtmp[0], &props->entry); 810 841 811 842 #ifndef CHEROKEE_EMBEDDED … … 815 846 #endif 816 847 817 replace_token (buffer, "%icon%", icon); 818 replace_token (buffer, "%icon_alt%", "[DIR]"); 819 820 replace_token (buffer, "%file_link%", "../"); 821 replace_token (buffer, "%file_name%", "Parent Directory"); 822 823 replace_token (buffer, "%date%", NULL); 824 replace_token (buffer, "%size_unit%", NULL); 825 replace_token (buffer, "%size%", "-"); 826 replace_token (buffer, "%user%", NULL); 827 replace_token (buffer, "%group%", NULL); 828 829 return ret_ok; 830 } 831 832 833 static ret_t 834 replace_header_footer_vbles (cherokee_handler_dirlist_t *dhdl, cherokee_buffer_t *buffer) 835 { 848 substitute_token (idx_tmp, "%icon%", icon); 849 substitute_token (idx_tmp, "%icon_alt%", "[DIR]"); 850 851 substitute_token (idx_tmp, "%file_link%", "../"); 852 substitute_token (idx_tmp, "%file_name%", "Parent Directory"); 853 854 substitute_token (idx_tmp, "%date%", NULL); 855 substitute_token (idx_tmp, "%size_unit%", NULL); 856 substitute_token (idx_tmp, "%size%", "-"); 857 substitute_token (idx_tmp, "%user%", NULL); 858 substitute_token (idx_tmp, "%group%", NULL); 859 860 /* Add final result to buffer 861 */ 862 cherokee_buffer_add_buffer (buffer, vtmp[idx_tmp]); 863 864 return ret_ok; 865 } 866 867 868 static ret_t 869 render_header_footer_vbles (cherokee_handler_dirlist_t *dhdl, cherokee_buffer_t *buffer, cherokee_buffer_t *bufpattern) 870 { 871 cherokee_thread_t *thread = HANDLER_THREAD(dhdl); 872 cherokee_buffer_t *vtmp[2]; 873 size_t idx_tmp = 0; 874 875 /* Initialize array of tmp buffers 876 */ 877 vtmp[0] = THREAD_TMP_BUF1(thread); 878 vtmp[1] = THREAD_TMP_BUF2(thread); 879 880 /* Clear tmp buffers. 881 */ 882 cherokee_buffer_clean(vtmp[0]); 883 cherokee_buffer_clean(vtmp[1]); 884 885 /* Add entry text 886 */ 887 cherokee_buffer_add_buffer (vtmp[0], bufpattern); 888 836 889 /* Public dir 837 890 */ 838 replace_token (buffer, "%public_dir%", dhdl->public_dir.buf);891 substitute_token (idx_tmp, "%public_dir%", dhdl->public_dir.buf); 839 892 840 893 /* Server software 841 894 */ 842 replace_token (buffer, "%server_software%", dhdl->software_str_ref->buf);895 substitute_token (idx_tmp, "%server_software%", dhdl->software_str_ref->buf); 843 896 844 897 /* Notice 845 898 */ 846 replace_token (buffer, "%notice%", dhdl->header.buf);899 substitute_token (idx_tmp, "%notice%", dhdl->header.buf); 847 900 848 901 /* Orders 849 902 */ 850 replace_token (buffer, "%order_name%",903 substitute_token (idx_tmp, "%order_name%", 851 904 (dhdl->sort == Name_Down) ? "N" : "n"); 852 replace_token (buffer, "%order_size%",905 substitute_token (idx_tmp, "%order_size%", 853 906 (dhdl->sort == Size_Down) ? "S" : "s"); 854 replace_token (buffer, "%order_date%",907 substitute_token (idx_tmp, "%order_date%", 855 908 (dhdl->sort == Date_Down) ? "D" : "d"); 909 910 /* Add final result to buffer 911 */ 912 cherokee_buffer_add_buffer (buffer, vtmp[idx_tmp]); 856 913 857 914 return ret_ok; … … 862 919 cherokee_handler_dirlist_step (cherokee_handler_dirlist_t *dhdl, cherokee_buffer_t *buffer) 863 920 { 864 ret_t ret ;921 ret_t ret = ret_ok; 865 922 cherokee_handler_dirlist_props_t *props = HDL_DIRLIST_PROP(dhdl); 866 923 … … 869 926 /* Add the theme header 870 927 */ 871 cherokee_buffer_add_buffer (buffer, &props->header); 872 873 ret = replace_header_footer_vbles (dhdl, buffer); 928 ret = render_header_footer_vbles (dhdl, buffer, &props->header); 874 929 if (unlikely (ret != ret_ok)) return ret; 875 876 930 if (buffer->len > DEFAULT_READ_SIZE) 877 931 return ret_ok; … … 881 935 ret = render_parent_directory (dhdl, buffer); 882 936 if (unlikely (ret != ret_ok)) return ret; 883 884 937 dhdl->phase = dirlist_phase_add_entries; 885 938 886 939 case dirlist_phase_add_entries: 887 888 940 /* Print the directories first 889 941 */ … … 896 948 dhdl->dir_ptr = dhdl->dir_ptr->next; 897 949 898 /* Maybe it has readed enough t950 /* Maybe it has readed enough data 899 951 */ 900 952 if (buffer->len > DEFAULT_READ_SIZE) … … 912 964 dhdl->file_ptr = dhdl->file_ptr->next; 913 965 914 /* Maybe it has readed enough t966 /* Maybe it has readed enough data 915 967 */ 916 968 if (buffer->len > DEFAULT_READ_SIZE) 917 969 return ret_ok; 918 970 } 919 920 971 dhdl->phase = dirlist_phase_add_footer; 921 972 922 973 case dirlist_phase_add_footer: 923 cherokee_buffer_add_buffer (buffer, &props->footer);924 925 ret = re place_header_footer_vbles (dhdl, buffer);974 /* Add the theme footer 975 */ 976 ret = render_header_footer_vbles (dhdl, buffer, &props->footer); 926 977 if (unlikely (ret != ret_ok)) return ret; 927 928 978 break; 929 979 } cherokee/trunk/cherokee/handler_error.c
r563 r578 63 63 */ 64 64 ret = cherokee_buffer_init (&n->content); 65 if (unlikely(ret < ret_ok)) return ret; 65 if (unlikely(ret < ret_ok)) 66 return ret; 66 67 67 68 /* Return the object … … 85 86 cherokee_buffer_t *escaped = NULL; 86 87 88 /* Avoid too many reallocations. 89 */ 90 cherokee_buffer_ensure_addlen (buffer, 1000); 91 92 /* Build error message. 93 */ 94 95 /* Add document header 96 */ 87 97 cherokee_buffer_add_str (buffer, "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">" CRLF); 88 98 89 99 /* Add page title 90 100 */ 91 cherokee_buffer_add_str (buffer, "<html> <head><title>");101 cherokee_buffer_add_str (buffer, "<html>" CRLF "<head><title>"); 92 102 cherokee_http_code_copy (cnt->error_code, buffer); 93 103 94 104 /* Add big banner 95 105 */ 96 cherokee_buffer_add_str (buffer, "</title></head> <body><h1>");106 cherokee_buffer_add_str (buffer, "</title></head>" CRLF "<body>" CRLF "<h1>"); 97 107 cherokee_http_code_copy (cnt->error_code, buffer); 98 cherokee_buffer_add_str (buffer, "</h1>" );108 cherokee_buffer_add_str (buffer, "</h1>" CRLF); 99 109 100 110 /* Maybe add some info … … 110 120 cherokee_buffer_escape_get_html (cnt->request_escape, &req_html_ref); 111 121 112 cherokee_buffer_ensure_ size (buffer, 18+ req_html_ref->len + 30);122 cherokee_buffer_ensure_addlen (buffer, 19 + req_html_ref->len + 30); 113 123 cherokee_buffer_add_str (buffer, "The requested URL "); 114 124 cherokee_buffer_add_buffer (buffer, req_html_ref); … … 116 126 } 117 127 break; 128 118 129 case http_bad_request: 119 130 cherokee_buffer_add_str (buffer, … … 121 132 122 133 cherokee_buffer_escape_html (cnt->header.input_buffer, &escaped); 123 if (escaped == NULL) 124 cherokee_buffer_add_va (buffer, "<p><pre>%s</pre>", cnt->header.input_buffer->buf); 125 else { 126 cherokee_buffer_add_va (buffer, "<p><pre>%s</pre>", escaped->buf); 134 if (escaped == NULL) { 135 cherokee_buffer_add_str (buffer, "<p><pre>"); 136 cherokee_buffer_add_buffer(buffer, cnt->header.input_buffer); 137 cherokee_buffer_add_str (buffer, "</pre>"); 138 } else { 139 cherokee_buffer_add_str (buffer, "<p><pre>"); 140 cherokee_buffer_add_buffer(buffer, escaped); 141 cherokee_buffer_add_str (buffer, "</pre>"); 127 142 cherokee_buffer_free (escaped); 128 143 escaped = NULL; 129 144 } 130 145 break; 131 case http_access_denied: 146 147 case http_access_denied: 132 148 cherokee_buffer_add_str (buffer, 133 149 "You have no access to the requested URL"); 134 150 break; 151 135 152 case http_request_entity_too_large: 136 153 cherokee_buffer_add_str (buffer, 137 154 "The length of request entity exceeds the capacity limit for this server."); 138 155 break; 156 139 157 case http_request_uri_too_long: 140 158 cherokee_buffer_add_str (buffer, 141 159 "The length of requested URL exceeds the capacity limit for this server."); 142 160 break; 161 143 162 case http_range_not_satisfiable: 144 163 cherokee_buffer_add_str (buffer, 145 164 "The requested range was not satisfiable."); 146 165 break; 166 147 167 case http_moved_permanently: 148 168 case http_moved_temporarily: 149 cherokee_buffer_add_str (buffer, "The document has moved < A HREF=\"");169 cherokee_buffer_add_str (buffer, "The document has moved <a href=\""); 150 170 cherokee_buffer_add_buffer (buffer, &cnt->redirect); 151 cherokee_buffer_add_str (buffer, "\">here</A>."); 152 break; 171 cherokee_buffer_add_str (buffer, "\">here</a>."); 172 break; 173 153 174 case http_unauthorized: 154 175 cherokee_buffer_add_str (buffer, … … 157 178 "or your browser doesn't know how to supply the credentials required."); 158 179 break; 180 159 181 case http_upgrade_required: 160 182 cherokee_buffer_add_str (buffer, … … 164 186 "using https://"); 165 187 break; 188 166 189 default: 167 190 break; 168 191 } 169 192 170 193 /* Add page footer 171 194 */ 172 cherokee_buffer_add_str (buffer, "<p><hr>");195 cherokee_buffer_add_str (buffer, CRLF "<p><hr>" CRLF); 173 196 174 197 if (cnt->socket.is_tls == non_TLS) … … 177 200 cherokee_buffer_add_buffer (buffer, &CONN_SRV(cnt)->ext_server_w_port_tls_string); 178 201 179 cherokee_buffer_add_str (buffer, "</body></html>");202 cherokee_buffer_add_str (buffer, CRLF "</body>" CRLF "</html>" CRLF); 180 203 181 204 return ret_ok; … … 195 218 if (http_code_with_body (conn->error_code)) { 196 219 ret = build_hardcoded_response_page (conn, &hdl->content); 197 if (unlikely(ret < ret_ok)) return ret; 220 if (unlikely(ret < ret_ok)) 221 return ret; 198 222 } 199 223 … … 250 274 251 275 cherokee_buffer_add_str (buffer, "Content-length: "); 252 cherokee_buffer_add_ulong10 (buffer, hdl->content.len);276 cherokee_buffer_add_ulong10 (buffer, (culong_t) hdl->content.len); 253 277 cherokee_buffer_add_str (buffer, CRLF); 254 278 … … 269 293 */ 270 294 ret = cherokee_buffer_add_buffer (buffer, &hdl->content); 271 if (unlikely(ret < ret_ok)) return ret; 295 if (unlikely(ret < ret_ok)) 296 return ret; 272 297 273 298 return ret_eof_have_data; cherokee/trunk/cherokee/handler_file.c
r551 r578 197 197 ret = cherokee_header_get_known (&conn->header, header_if_none_match, &header, &header_len); 198 198 if (ret == ret_ok) { 199 cherokee_buffer_t *tmp = THREAD_TMP_BUF (thread);199 cherokee_buffer_t *tmp = THREAD_TMP_BUF1(thread); 200 200 201 201 /* Temporary buffer has already been pre-allocated, cherokee/trunk/cherokee/thread.c
r551 r578 214 214 /* Temporary buffer used by utility functions 215 215 */ 216 cherokee_buffer_init (&n->tmp_buf); 217 cherokee_buffer_ensure_size (&n->tmp_buf, 4096); 216 cherokee_buffer_init (&n->tmp_buf1); 217 cherokee_buffer_init (&n->tmp_buf2); 218 cherokee_buffer_ensure_size (&n->tmp_buf1, 4096); 219 cherokee_buffer_ensure_size (&n->tmp_buf2, 4096); 218 220 219 221 /* Accepting information … … 1266 1268 1267 1269 cherokee_buffer_mrproper (&thd->bogo_now_string); 1268 cherokee_buffer_mrproper (&thd->tmp_buf); 1270 cherokee_buffer_mrproper (&thd->tmp_buf1); 1271 cherokee_buffer_mrproper (&thd->tmp_buf2); 1269 1272 1270 1273 cherokee_fdpoll_free (thd->fdpoll); cherokee/trunk/cherokee/thread.h
r551 r578 68 68 cherokee_buffer_t bogo_now_string; 69 69 70 cherokee_buffer_t tmp_buf; 70 cherokee_buffer_t tmp_buf1; 71 cherokee_buffer_t tmp_buf2; 71 72 72 73 void *server; … … 96 97 #define THREAD_SRV(t) (SRV(THREAD(t)->server)) 97 98 #define THREAD_IS_REAL(t) (THREAD(t)->real_thread) 98 #define THREAD_TMP_BUF(t) (&THREAD(t)->tmp_buf) 99 #define THREAD_TMP_BUF1(t) (&THREAD(t)->tmp_buf1) 100 #define THREAD_TMP_BUF2(t) (&THREAD(t)->tmp_buf2) 99 101 100 102