Created
April 16, 2020 15:37
-
-
Save AshoneA/06b863ba435917eef4082149dafe740a to your computer and use it in GitHub Desktop.
etag in Nginx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1803 ngx_int_t | |
1804 ngx_http_set_etag(ngx_http_request_t *r) | |
1805 { | |
1806 ngx_table_elt_t *etag; | |
1807 ngx_http_core_loc_conf_t *clcf; | |
1808 | |
1809 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); | |
1810 | |
1811 if (!clcf->etag) { | |
1812 return NGX_OK; | |
1813 } | |
1814 | |
1815 etag = ngx_list_push(&r->headers_out.headers); | |
1816 if (etag == NULL) { | |
1817 return NGX_ERROR; | |
1818 } | |
1819 | |
1820 etag->hash = 1; | |
1821 ngx_str_set(&etag->key, "ETag"); | |
1822 | |
1823 etag->value.data = ngx_pnalloc(r->pool, NGX_OFF_T_LEN + NGX_TIME_T_LEN + 3); | |
1824 if (etag->value.data == NULL) { | |
1825 etag->hash = 0; | |
1826 return NGX_ERROR; | |
1827 } | |
1828 | |
1829 etag->value.len = ngx_sprintf(etag->value.data, "\"%xT-%xO\"", | |
1830 r->headers_out.last_modified_time, | |
1831 r->headers_out.content_length_n) | |
1832 - etag->value.data; | |
1833 | |
1834 r->headers_out.etag = etag; | |
1835 | |
1836 return NGX_OK; | |
1837 } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment