| OLD | NEW |
| 1 /* | 1 /* |
| 2 * xmlIO.c : implementation of the I/O interfaces used by the parser | 2 * xmlIO.c : implementation of the I/O interfaces used by the parser |
| 3 * | 3 * |
| 4 * See Copyright for the status of this software. | 4 * See Copyright for the status of this software. |
| 5 * | 5 * |
| 6 * daniel@veillard.com | 6 * daniel@veillard.com |
| 7 * | 7 * |
| 8 * 14 Nov 2000 ht - for VMS, truncated name of long functions to under 32 char | 8 * 14 Nov 2000 ht - for VMS, truncated name of long functions to under 32 char |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 1586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1597 return ( NULL ); | 1597 return ( NULL ); |
| 1598 } | 1598 } |
| 1599 | 1599 |
| 1600 z_err = deflateInit2( &buff->zctrl, compression, Z_DEFLATED, | 1600 z_err = deflateInit2( &buff->zctrl, compression, Z_DEFLATED, |
| 1601 DFLT_WBITS, DFLT_MEM_LVL, Z_DEFAULT_STRATEGY ); | 1601 DFLT_WBITS, DFLT_MEM_LVL, Z_DEFAULT_STRATEGY ); |
| 1602 if ( z_err != Z_OK ) { | 1602 if ( z_err != Z_OK ) { |
| 1603 xmlChar msg[500]; | 1603 xmlChar msg[500]; |
| 1604 xmlFreeZMemBuff( buff ); | 1604 xmlFreeZMemBuff( buff ); |
| 1605 buff = NULL; | 1605 buff = NULL; |
| 1606 xmlStrPrintf(msg, 500, | 1606 xmlStrPrintf(msg, 500, |
| 1607 » » (const xmlChar *) "xmlCreateZMemBuff: %s %d\n", | 1607 » » "xmlCreateZMemBuff: %s %d\n", |
| 1608 "Error initializing compression context. ZLIB error:", | 1608 "Error initializing compression context. ZLIB error:", |
| 1609 z_err ); | 1609 z_err ); |
| 1610 xmlIOErr(XML_IO_WRITE, (const char *) msg); | 1610 xmlIOErr(XML_IO_WRITE, (const char *) msg); |
| 1611 return ( NULL ); | 1611 return ( NULL ); |
| 1612 } | 1612 } |
| 1613 | 1613 |
| 1614 /* Set the header data. The CRC will be needed for the trailer */ | 1614 /* Set the header data. The CRC will be needed for the trailer */ |
| 1615 buff->crc = crc32( 0L, NULL, 0 ); | 1615 buff->crc = crc32( 0L, NULL, 0 ); |
| 1616 hdr_lgth = snprintf( (char *)buff->zbuff, buff->size, | 1616 hdr_lgth = snprintf( (char *)buff->zbuff, buff->size, |
| 1617 "%c%c%c%c%c%c%c%c%c%c", | 1617 "%c%c%c%c%c%c%c%c%c%c", |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1665 if ( tmp_ptr != NULL ) { | 1665 if ( tmp_ptr != NULL ) { |
| 1666 rc = 0; | 1666 rc = 0; |
| 1667 buff->size = new_size; | 1667 buff->size = new_size; |
| 1668 buff->zbuff = tmp_ptr; | 1668 buff->zbuff = tmp_ptr; |
| 1669 buff->zctrl.next_out = tmp_ptr + cur_used; | 1669 buff->zctrl.next_out = tmp_ptr + cur_used; |
| 1670 buff->zctrl.avail_out = new_size - cur_used; | 1670 buff->zctrl.avail_out = new_size - cur_used; |
| 1671 } | 1671 } |
| 1672 else { | 1672 else { |
| 1673 xmlChar msg[500]; | 1673 xmlChar msg[500]; |
| 1674 xmlStrPrintf(msg, 500, | 1674 xmlStrPrintf(msg, 500, |
| 1675 » » (const xmlChar *) "xmlZMemBuffExtend: %s %lu bytes.\n", | 1675 » » "xmlZMemBuffExtend: %s %lu bytes.\n", |
| 1676 "Allocation failure extending output buffer to", | 1676 "Allocation failure extending output buffer to", |
| 1677 new_size ); | 1677 new_size ); |
| 1678 xmlIOErr(XML_IO_WRITE, (const char *) msg); | 1678 xmlIOErr(XML_IO_WRITE, (const char *) msg); |
| 1679 } | 1679 } |
| 1680 | 1680 |
| 1681 return ( rc ); | 1681 return ( rc ); |
| 1682 } | 1682 } |
| 1683 | 1683 |
| 1684 /** | 1684 /** |
| 1685 * xmlZMemBuffAppend | 1685 * xmlZMemBuffAppend |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1711 min_accept = buff->zctrl.avail_in / DFLT_ZLIB_RATIO; | 1711 min_accept = buff->zctrl.avail_in / DFLT_ZLIB_RATIO; |
| 1712 if ( buff->zctrl.avail_out <= min_accept ) { | 1712 if ( buff->zctrl.avail_out <= min_accept ) { |
| 1713 if ( xmlZMemBuffExtend( buff, buff->size ) == -1 ) | 1713 if ( xmlZMemBuffExtend( buff, buff->size ) == -1 ) |
| 1714 return ( -1 ); | 1714 return ( -1 ); |
| 1715 } | 1715 } |
| 1716 | 1716 |
| 1717 z_err = deflate( &buff->zctrl, Z_NO_FLUSH ); | 1717 z_err = deflate( &buff->zctrl, Z_NO_FLUSH ); |
| 1718 if ( z_err != Z_OK ) { | 1718 if ( z_err != Z_OK ) { |
| 1719 xmlChar msg[500]; | 1719 xmlChar msg[500]; |
| 1720 xmlStrPrintf(msg, 500, | 1720 xmlStrPrintf(msg, 500, |
| 1721 » » » (const xmlChar *) "xmlZMemBuffAppend: %s %d %s - %d", | 1721 » » » "xmlZMemBuffAppend: %s %d %s - %d", |
| 1722 "Compression error while appending", | 1722 "Compression error while appending", |
| 1723 len, "bytes to buffer. ZLIB error", z_err ); | 1723 len, "bytes to buffer. ZLIB error", z_err ); |
| 1724 xmlIOErr(XML_IO_WRITE, (const char *) msg); | 1724 xmlIOErr(XML_IO_WRITE, (const char *) msg); |
| 1725 return ( -1 ); | 1725 return ( -1 ); |
| 1726 } | 1726 } |
| 1727 } | 1727 } |
| 1728 | 1728 |
| 1729 buff->crc = crc32( buff->crc, (unsigned char *)src, len ); | 1729 buff->crc = crc32( buff->crc, (unsigned char *)src, len ); |
| 1730 | 1730 |
| 1731 return ( len ); | 1731 return ( len ); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1784 append_reverse_ulong( buff, buff->crc ); | 1784 append_reverse_ulong( buff, buff->crc ); |
| 1785 append_reverse_ulong( buff, buff->zctrl.total_in ); | 1785 append_reverse_ulong( buff, buff->zctrl.total_in ); |
| 1786 | 1786 |
| 1787 zlgth = buff->zctrl.next_out - buff->zbuff; | 1787 zlgth = buff->zctrl.next_out - buff->zbuff; |
| 1788 *data_ref = (char *)buff->zbuff; | 1788 *data_ref = (char *)buff->zbuff; |
| 1789 } | 1789 } |
| 1790 | 1790 |
| 1791 else { | 1791 else { |
| 1792 xmlChar msg[500]; | 1792 xmlChar msg[500]; |
| 1793 xmlStrPrintf(msg, 500, | 1793 xmlStrPrintf(msg, 500, |
| 1794 » » (const xmlChar *) "xmlZMemBuffGetContent: %s - %d\n", | 1794 » » "xmlZMemBuffGetContent: %s - %d\n", |
| 1795 "Error flushing zlib buffers. Error code", z_err ); | 1795 "Error flushing zlib buffers. Error code", z_err ); |
| 1796 xmlIOErr(XML_IO_WRITE, (const char *) msg); | 1796 xmlIOErr(XML_IO_WRITE, (const char *) msg); |
| 1797 } | 1797 } |
| 1798 | 1798 |
| 1799 return ( zlgth ); | 1799 return ( zlgth ); |
| 1800 } | 1800 } |
| 1801 #endif /* LIBXML_OUTPUT_ENABLED */ | 1801 #endif /* LIBXML_OUTPUT_ENABLED */ |
| 1802 #endif /* HAVE_ZLIB_H */ | 1802 #endif /* HAVE_ZLIB_H */ |
| 1803 | 1803 |
| 1804 #ifdef LIBXML_OUTPUT_ENABLED | 1804 #ifdef LIBXML_OUTPUT_ENABLED |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1989 if ( ctxt->compression > 0 ) | 1989 if ( ctxt->compression > 0 ) |
| 1990 len = xmlZMemBuffAppend( ctxt->doc_buff, buffer, len ); | 1990 len = xmlZMemBuffAppend( ctxt->doc_buff, buffer, len ); |
| 1991 | 1991 |
| 1992 else | 1992 else |
| 1993 #endif | 1993 #endif |
| 1994 len = xmlOutputBufferWrite( ctxt->doc_buff, len, buffer ); | 1994 len = xmlOutputBufferWrite( ctxt->doc_buff, len, buffer ); |
| 1995 | 1995 |
| 1996 if ( len < 0 ) { | 1996 if ( len < 0 ) { |
| 1997 xmlChar msg[500]; | 1997 xmlChar msg[500]; |
| 1998 xmlStrPrintf(msg, 500, | 1998 xmlStrPrintf(msg, 500, |
| 1999 » » » (const xmlChar *) "xmlIOHTTPWrite: %s\n%s '%s'.\n", | 1999 » » » "xmlIOHTTPWrite: %s\n%s '%s'.\n", |
| 2000 "Error appending to internal buffer.", | 2000 "Error appending to internal buffer.", |
| 2001 "Error sending document to URI", | 2001 "Error sending document to URI", |
| 2002 ctxt->uri ); | 2002 ctxt->uri ); |
| 2003 xmlIOErr(XML_IO_WRITE, (const char *) msg); | 2003 xmlIOErr(XML_IO_WRITE, (const char *) msg); |
| 2004 } | 2004 } |
| 2005 } | 2005 } |
| 2006 | 2006 |
| 2007 return ( len ); | 2007 return ( len ); |
| 2008 } | 2008 } |
| 2009 #endif /* LIBXML_OUTPUT_ENABLED */ | 2009 #endif /* LIBXML_OUTPUT_ENABLED */ |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2061 /* Pull the data out of the memory output buffer */ | 2061 /* Pull the data out of the memory output buffer */ |
| 2062 | 2062 |
| 2063 xmlOutputBufferPtr dctxt = ctxt->doc_buff; | 2063 xmlOutputBufferPtr dctxt = ctxt->doc_buff; |
| 2064 http_content = (char *) xmlBufContent(dctxt->buffer); | 2064 http_content = (char *) xmlBufContent(dctxt->buffer); |
| 2065 content_lgth = xmlBufUse(dctxt->buffer); | 2065 content_lgth = xmlBufUse(dctxt->buffer); |
| 2066 } | 2066 } |
| 2067 | 2067 |
| 2068 if ( http_content == NULL ) { | 2068 if ( http_content == NULL ) { |
| 2069 xmlChar msg[500]; | 2069 xmlChar msg[500]; |
| 2070 xmlStrPrintf(msg, 500, | 2070 xmlStrPrintf(msg, 500, |
| 2071 » » (const xmlChar *) "xmlIOHTTPCloseWrite: %s '%s' %s '%s'.\n
", | 2071 » » "xmlIOHTTPCloseWrite: %s '%s' %s '%s'.\n", |
| 2072 "Error retrieving content.\nUnable to", | 2072 "Error retrieving content.\nUnable to", |
| 2073 http_mthd, "data to URI", ctxt->uri ); | 2073 http_mthd, "data to URI", ctxt->uri ); |
| 2074 xmlIOErr(XML_IO_WRITE, (const char *) msg); | 2074 xmlIOErr(XML_IO_WRITE, (const char *) msg); |
| 2075 } | 2075 } |
| 2076 | 2076 |
| 2077 else { | 2077 else { |
| 2078 | 2078 |
| 2079 http_ctxt = xmlNanoHTTPMethod( ctxt->uri, http_mthd, http_content, | 2079 http_ctxt = xmlNanoHTTPMethod( ctxt->uri, http_mthd, http_content, |
| 2080 &content_type, content_encoding, | 2080 &content_type, content_encoding, |
| 2081 content_lgth ); | 2081 content_lgth ); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2133 free( dump_name ); | 2133 free( dump_name ); |
| 2134 } | 2134 } |
| 2135 #endif /* DEBUG_HTTP */ | 2135 #endif /* DEBUG_HTTP */ |
| 2136 | 2136 |
| 2137 http_rtn = xmlNanoHTTPReturnCode( http_ctxt ); | 2137 http_rtn = xmlNanoHTTPReturnCode( http_ctxt ); |
| 2138 if ( ( http_rtn >= 200 ) && ( http_rtn < 300 ) ) | 2138 if ( ( http_rtn >= 200 ) && ( http_rtn < 300 ) ) |
| 2139 close_rc = 0; | 2139 close_rc = 0; |
| 2140 else { | 2140 else { |
| 2141 xmlChar msg[500]; | 2141 xmlChar msg[500]; |
| 2142 xmlStrPrintf(msg, 500, | 2142 xmlStrPrintf(msg, 500, |
| 2143 (const xmlChar *) "xmlIOHTTPCloseWrite: HTTP '%s' of %d %s\n'%s' %s %d\n", | 2143 "xmlIOHTTPCloseWrite: HTTP '%s' of %d %s\n'%s' %s %d\n", |
| 2144 http_mthd, content_lgth, | 2144 http_mthd, content_lgth, |
| 2145 "bytes to URI", ctxt->uri, | 2145 "bytes to URI", ctxt->uri, |
| 2146 "failed. HTTP return code:", http_rtn ); | 2146 "failed. HTTP return code:", http_rtn ); |
| 2147 xmlIOErr(XML_IO_WRITE, (const char *) msg); | 2147 xmlIOErr(XML_IO_WRITE, (const char *) msg); |
| 2148 } | 2148 } |
| 2149 | 2149 |
| 2150 xmlNanoHTTPClose( http_ctxt ); | 2150 xmlNanoHTTPClose( http_ctxt ); |
| 2151 xmlFree( content_type ); | 2151 xmlFree( content_type ); |
| 2152 } | 2152 } |
| 2153 } | 2153 } |
| (...skipping 2023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4177 } | 4177 } |
| 4178 } | 4178 } |
| 4179 input = xmlDefaultExternalEntityLoader((const char *) resource, ID, ctxt); | 4179 input = xmlDefaultExternalEntityLoader((const char *) resource, ID, ctxt); |
| 4180 if (resource != (xmlChar *) URL) | 4180 if (resource != (xmlChar *) URL) |
| 4181 xmlFree(resource); | 4181 xmlFree(resource); |
| 4182 return(input); | 4182 return(input); |
| 4183 } | 4183 } |
| 4184 | 4184 |
| 4185 #define bottom_xmlIO | 4185 #define bottom_xmlIO |
| 4186 #include "elfgcchack.h" | 4186 #include "elfgcchack.h" |
| OLD | NEW |