29 #include <osl/mutex.hxx>
39 void process_headers( ne_request * req,
41 const std::vector< OUString > & rHeaderNames )
43 void * cursor =
nullptr;
46 #if defined SAL_LOG_INFO
48 for (
const auto& rHeader : rHeaderNames )
50 SAL_INFO(
"ucb.ucp.webdav",
"HEAD - requested header: " << rHeader );
54 while ( ( cursor = ne_response_header_iterate( req, cursor,
55 &name, &value ) ) !=
nullptr ) {
59 OUString aHeaderName( OUString::createFromAscii( name ) );
63 OUString aHeaderValue(value, strlen(value), RTL_TEXTENCODING_ISO_8859_1);
65 SAL_INFO(
"ucb.ucp.webdav",
"HEAD - received header: " << aHeaderName <<
":" << aHeaderValue);
68 bool bIncludeIt = rHeaderNames.empty();
73 auto it = std::find_if(rHeaderNames.begin(), rHeaderNames.end(),
74 [&aHeaderName](
const OUString& rName) {
76 return rName.equalsIgnoreAsciiCase( aHeaderName );
79 if ( it != rHeaderNames.end() )
92 thePropertyValue.
Name = aHeaderName.toAsciiLowerCase();
94 thePropertyValue.
Value <<= aHeaderValue;
97 rResource.
properties.push_back( thePropertyValue );
105 const OUString & inPath,
106 const std::vector< OUString > &
111 ioResource.
uri = inPath;
116 ne_request * req = ne_request_create( inSession,
120 RTL_TEXTENCODING_UTF8 ).getStr() );
124 nError = ne_request_dispatch( req );
127 process_headers( req, ioResource, inHeaderNames );
129 if ( nError == NE_OK && ne_get_status( req )->klass != 2 )
132 ne_request_destroy( req );
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
NeonHeadRequest(HttpSession *inSession, const OUString &inPath, const std::vector< OUString > &inHeaderNames, DAVResource &ioResource, int &nError)
osl::Mutex & getGlobalNeonMutex()
std::vector< DAVPropertyValue > properties
#define SAL_INFO(area, stream)