| 912 | | { |
|---|
| 913 | | ret_t ret; |
|---|
| 914 | | |
|---|
| 915 | | /* Encode |
|---|
| 916 | | */ |
|---|
| 917 | | switch (step_ret) { |
|---|
| 918 | | case ret_eof: |
|---|
| 919 | | case ret_eof_have_data: |
|---|
| 920 | | ret = cherokee_encoder_flush (conn->encoder, &conn->buffer, &conn->encoder_buffer); |
|---|
| 921 | | step_ret = (conn->encoder_buffer.len == 0) ? ret_eof : ret_eof_have_data; |
|---|
| 922 | | break; |
|---|
| 923 | | default: |
|---|
| 924 | | ret = cherokee_encoder_encode (conn->encoder, &conn->buffer, &conn->encoder_buffer); |
|---|
| 925 | | break; |
|---|
| 926 | | } |
|---|
| 927 | | if (ret < ret_ok) return ret; |
|---|
| 928 | | |
|---|
| 929 | | /* Swap buffers |
|---|
| 930 | | */ |
|---|
| 931 | | cherokee_buffer_swap_buffers (&conn->buffer, &conn->encoder_buffer); |
|---|
| 932 | | cherokee_buffer_clean (&conn->encoder_buffer); |
|---|
| 933 | | } |
|---|
| | 913 | switch (step_ret) { |
|---|
| | 914 | case ret_eof: |
|---|
| | 915 | case ret_eof_have_data: |
|---|
| | 916 | ret = cherokee_encoder_flush (conn->encoder, &conn->buffer, &conn->encoder_buffer); |
|---|
| | 917 | step_ret = (conn->encoder_buffer.len == 0) ? ret_eof : ret_eof_have_data; |
|---|
| | 918 | break; |
|---|
| | 919 | default: |
|---|
| | 920 | ret = cherokee_encoder_encode (conn->encoder, &conn->buffer, &conn->encoder_buffer); |
|---|
| | 921 | break; |
|---|
| | 922 | } |
|---|
| | 923 | if (ret < ret_ok) return ret; |
|---|
| | 924 | |
|---|
| | 925 | /* Swap buffers |
|---|
| | 926 | */ |
|---|
| | 927 | cherokee_buffer_swap_buffers (&conn->buffer, &conn->encoder_buffer); |
|---|
| | 928 | cherokee_buffer_clean (&conn->encoder_buffer); |
|---|