]> sjero.net Git - wget/blobdiff - src/rbuf.c
[svn] Renamed xread/xwrite/xclose to fd_read/fd_write/fd_close. The "x" prefix is
[wget] / src / rbuf.c
index b04c2aeefecc7a48e76bb0ed3453a87b2dfc877a..b50e0e2adeb00fa02fe0d40dde20a1c65345eddc 100644 (file)
@@ -15,35 +15,37 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with Wget; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+In addition, as a special exception, the Free Software Foundation
+gives permission to link the code of its release of Wget with the
+OpenSSL project's "OpenSSL" library (or with modified versions of it
+that use the same license as the "OpenSSL" library), and distribute
+the linked executables.  You must obey the GNU General Public License
+in all respects for all of the code used other than "OpenSSL".  If you
+modify this file, you may extend this exception to your version of the
+file, but you are not obligated to do so.  If you do not wish to do
+so, delete this exception statement from your version.  */
 
 /* This is a simple implementation of buffering IO-read functions.  */
 
 #include <config.h>
 
 #include <stdio.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
 
 #include "wget.h"
 #include "rbuf.h"
 #include "connect.h"
 
-#ifdef HAVE_SSL
-#include <openssl/bio.h>
-#include <openssl/crypto.h>
-#include <openssl/x509.h>
-#include <openssl/ssl.h>
-#include <openssl/err.h>
-#include <openssl/pem.h>
-#endif /* HAVE_SSL */
-
 void
 rbuf_initialize (struct rbuf *rbuf, int fd)
 {
   rbuf->fd = fd;
-#ifdef HAVE_SSL
-/* pointing ssl to NULL results in an unchanged behaviour */
-  rbuf->ssl = NULL;
-#endif /* HAVE_SSL */
   rbuf->buffer_pos = rbuf->buffer;
   rbuf->buffer_left = 0;
 }
@@ -63,12 +65,7 @@ rbuf_uninitialize (struct rbuf *rbuf)
 int
 rbuf_read_bufferful (struct rbuf *rbuf)
 {
-#ifdef HAVE_SSL
-  if (rbuf->ssl)
-    return ssl_iread (rbuf->ssl, rbuf->buffer, sizeof (rbuf->buffer));
-  else
-#endif
-    return iread (rbuf->fd, rbuf->buffer, sizeof (rbuf->buffer));
+  return fd_read (rbuf->fd, rbuf->buffer, sizeof (rbuf->buffer), -1);
 }
 
 /* Currently unused -- see RBUF_READCHAR.  */
@@ -90,15 +87,7 @@ rbuf_peek (struct rbuf *rbuf, char *store)
       int res;
       rbuf->buffer_pos = rbuf->buffer;
       rbuf->buffer_left = 0;
-#ifdef HAVE_SSL
-               if (rbuf->ssl != NULL) {
-               res = ssl_iread (rbuf->ssl, rbuf->buffer, sizeof (rbuf->buffer));
-               } else {
-#endif /* HAVE_SSL */
-               res = iread (rbuf->fd, rbuf->buffer, sizeof (rbuf->buffer));
-#ifdef HAVE_SSL
-      }
-#endif /* HAVE_SSL */
+      res = fd_read (rbuf->fd, rbuf->buffer, sizeof (rbuf->buffer), -1);
       if (res <= 0)
        return res;
       rbuf->buffer_left = res;
@@ -107,6 +96,8 @@ rbuf_peek (struct rbuf *rbuf, char *store)
   return 1;
 }
 
+#define MIN(p,q) (((p) <= (q)) ? (p) : (q))
+
 /* Flush RBUF's buffer to WHERE.  Flush MAXSIZE bytes at most.
    Returns the number of bytes actually copied.  If the buffer is
    empty, 0 is returned.  */
@@ -117,7 +108,7 @@ rbuf_flush (struct rbuf *rbuf, char *where, int maxsize)
     return 0;
   else
     {
-      int howmuch = MINVAL (rbuf->buffer_left, maxsize);
+      int howmuch = MIN (rbuf->buffer_left, maxsize);
 
       if (where)
        memcpy (where, rbuf->buffer_pos, howmuch);