From: Stephan Bosch Date: Tue, 8 Oct 2019 16:56:54 +0000 (+0200) Subject: plugins: fts-solr: Move solr_xml_parse() from solr-connection.c to solr-response.c. X-Git-Tag: 2.3.10~161 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d35f3e51e0d3247367d5f1270e518c74f4c11e90;p=thirdparty%2Fdovecot%2Fcore.git plugins: fts-solr: Move solr_xml_parse() from solr-connection.c to solr-response.c. --- diff --git a/src/plugins/fts-solr/solr-connection.c b/src/plugins/fts-solr/solr-connection.c index cf5b82e45e..98bc61288f 100644 --- a/src/plugins/fts-solr/solr-connection.c +++ b/src/plugins/fts-solr/solr-connection.c @@ -45,32 +45,6 @@ struct solr_connection { #include "solr-response.c" -static int -solr_xml_parse(struct solr_connection *conn, - const void *data, size_t size, bool done) -{ - enum XML_Error err; - int line, col; - - if (conn->xml_failed) - return -1; - - if (XML_Parse(conn->xml_parser, data, size, done ? 1 : 0) != 0) - return 0; - - err = XML_GetErrorCode(conn->xml_parser); - if (err != XML_ERROR_FINISHED) { - line = XML_GetCurrentLineNumber(conn->xml_parser); - col = XML_GetCurrentColumnNumber(conn->xml_parser); - i_error("fts_solr: Invalid XML input at %d:%d: %s " - "(near: %.*s)", line, col, XML_ErrorString(err), - (int)I_MIN(size, 128), (const char *)data); - conn->xml_failed = TRUE; - return -1; - } - return 0; -} - /* Regardless of the specified URL, make sure path ends in '/' */ static char *solr_connection_create_http_base_url(struct http_url *http_url) { diff --git a/src/plugins/fts-solr/solr-response.c b/src/plugins/fts-solr/solr-response.c index 05abedce70..6fb26d5087 100644 --- a/src/plugins/fts-solr/solr-response.c +++ b/src/plugins/fts-solr/solr-response.c @@ -37,3 +37,29 @@ struct solr_lookup_xml_context { HASH_TABLE(char *, struct solr_result *) mailboxes; ARRAY(struct solr_result *) results; }; + +static int +solr_xml_parse(struct solr_connection *conn, + const void *data, size_t size, bool done) +{ + enum XML_Error err; + int line, col; + + if (conn->xml_failed) + return -1; + + if (XML_Parse(conn->xml_parser, data, size, done ? 1 : 0) != 0) + return 0; + + err = XML_GetErrorCode(conn->xml_parser); + if (err != XML_ERROR_FINISHED) { + line = XML_GetCurrentLineNumber(conn->xml_parser); + col = XML_GetCurrentColumnNumber(conn->xml_parser); + i_error("fts_solr: Invalid XML input at %d:%d: %s " + "(near: %.*s)", line, col, XML_ErrorString(err), + (int)I_MIN(size, 128), (const char *)data); + conn->xml_failed = TRUE; + return -1; + } + return 0; +}