Class 2 compliant resources will minimally return the values "1" and "2" in the DAV header of all responses to the HTTP OPTIONS method.
So your module begging from line 504 shout actually read:
ngx_str_set(&h->key, "DAV");
h->value.len = 1;
h->value.data = (u_char *) (dlcf->shm_zone ? "1, 2" : "1");
h->hash = 1;
Some clients like for example LibreOffice even require class 1 to be explicitly specified. I had to add a line to the webdav location config file to make it working with LibreOffice:
"more_set_headers -s 200 'dav: 1, 2'; "
With the above modification this would not be neccessary.