| |
| ngx_uint_t |
| ndk_http_count_phase_handlers (ngx_http_core_main_conf_t *cmcf) |
| { |
| ngx_http_phase_handler_t *ph; |
| ngx_uint_t i; |
| |
| ph = cmcf->phase_engine.handlers; |
| |
| for (i=0; ph[i].checker; i++) /* void */; |
| |
| return i; |
| } |
| |
| |
| ngx_uint_t |
| ndk_http_parse_request_method (ngx_str_t *m) |
| { |
| switch (m->len) { |
| |
| case 3: |
| |
| #if (NGX_HAVE_LITTLE_ENDIAN && NGX_HAVE_NONALIGNED) |
| { |
| u_char t[4]; |
| |
| ngx_memcpy (t, m->data, 3); |
| t[3] = ' '; |
| |
| if (ndk_str3_cmp (t, 'G', 'E', 'T', ' ')) { |
| return NGX_HTTP_GET; |
| } |
| |
| if (ndk_str3_cmp (t, 'P', 'U', 'T', ' ')) { |
| return NGX_HTTP_PUT; |
| } |
| } |
| |
| #else |
| |
| if (ndk_str3_cmp (m->data, 'G', 'E', 'T', ' ')) { |
| return NGX_HTTP_GET; |
| } |
| |
| if (ndk_str3_cmp (m->data, 'P', 'U', 'T', ' ')) { |
| return NGX_HTTP_PUT; |
| } |
| |
| #endif |
| break; |
| |
| case 4: |
| |
| if (m->data[1] == 'O') { |
| |
| if (ndk_str3Ocmp (m->data, 'P', 'O', 'S', 'T')) { |
| return NGX_HTTP_POST; |
| } |
| |
| if (ndk_str3Ocmp (m->data, 'C', 'O', 'P', 'Y')) { |
| return NGX_HTTP_COPY; |
| } |
| |
| if (ndk_str3Ocmp (m->data, 'M', 'O', 'V', 'E')) { |
| return NGX_HTTP_MOVE; |
| } |
| |
| if (ndk_str3Ocmp (m->data, 'L', 'O', 'C', 'K')) { |
| return NGX_HTTP_LOCK; |
| } |
| |
| } else { |
| |
| if (ndk_str4cmp (m->data, 'H', 'E', 'A', 'D')) { |
| return NGX_HTTP_HEAD; |
| } |
| } |
| |
| break; |
| |
| case 5: |
| |
| if (ndk_str5cmp (m->data, 'M', 'K', 'C', 'O', 'L')) { |
| return NGX_HTTP_MKCOL; |
| } |
| |
| if (ndk_str5cmp (m->data, 'P', 'A', 'T', 'C', 'H')) { |
| return NGX_HTTP_PATCH; |
| } |
| |
| if (ndk_str5cmp (m->data, 'T', 'R', 'A', 'C', 'E')) { |
| return NGX_HTTP_TRACE; |
| } |
| |
| break; |
| |
| case 6: |
| |
| if (ndk_str6cmp (m->data, 'D', 'E', 'L', 'E', 'T', 'E')) { |
| return NGX_HTTP_DELETE; |
| } |
| |
| if (ndk_str6cmp (m->data, 'U', 'N', 'L', 'O', 'C', 'K')) { |
| return NGX_HTTP_UNLOCK; |
| } |
| |
| break; |
| |
| case 7: |
| |
| if (ndk_str7_cmp (m->data, 'O', 'P', 'T', 'I', 'O', 'N', 'S', ' ')) |
| { |
| return NGX_HTTP_OPTIONS; |
| } |
| |
| break; |
| |
| case 8: |
| |
| if (ndk_str8cmp (m->data, 'P', 'R', 'O', 'P', 'F', 'I', 'N', 'D')) |
| { |
| return NGX_HTTP_PROPFIND; |
| } |
| |
| break; |
| |
| case 9: |
| |
| if (ndk_str9cmp (m->data, 'P', 'R', 'O', 'P', 'P', 'A', 'T', 'C', 'H')) |
| { |
| return NGX_HTTP_PROPPATCH; |
| } |
| |
| break; |
| } |
| |
| return 0; |
| } |