use SSL_peek for sock_gets
authorChristoph Hohmann <reboot@gmx.ch>
Tue, 6 Nov 2001 17:10:40 +0000 (17:10 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Tue, 6 Nov 2001 17:10:40 +0000 (17:10 +0000)
removed unneeded pointer in extracting quoted names implementation

ChangeLog.claws
configure.in
src/socket.c
src/utils.c

index 709a657..5a534e5 100644 (file)
@@ -1,3 +1,11 @@
+2001-11-06 [christoph] 0.6.4claws29
+
+       * src/socket.c
+               use SSL_peek for sock_gets
+       * src/utils.c
+               removed unneeded pointer in extracting quoted
+               names implementation
+
 2001-11-06 [melvin]    0.6.4claws28
 
        * src/gtkspell.c
index e657200..5475634 100644 (file)
@@ -8,7 +8,7 @@ MINOR_VERSION=6
 MICRO_VERSION=4
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws28
+EXTRA_VERSION=claws29
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl
index e0b5f20..d739a71 100644 (file)
@@ -447,20 +447,21 @@ gint fd_gets(gint fd, gchar *buf, gint len)
 #if USE_SSL
 gint ssl_gets(SSL *ssl, gchar *buf, gint len)
 {
-       gchar *bp = buf;
-       gboolean newline = FALSE;
+       gchar *newline, *bp = buf;
        gint n;
 
        if (--len < 1)
                return -1;
-       while (len > 0 && !newline) {
-               *bp = '\0';
-               if ((n = SSL_read(ssl, bp, 1)) <= 0)
+       do {
+               if ((n = SSL_peek(ssl, bp, len)) <= 0)
+                       return -1;
+               if ((newline = memchr(bp, '\n', n)) != NULL)
+                       n = newline - bp + 1;
+               if ((n = SSL_read(ssl, bp, n)) < 0)
                        return -1;
-               if (*bp == '\n')
-                       newline = TRUE;
                bp += n;
-       }
+               len -= n;
+       } while (!newline && len);
 
        *bp = '\0';
        return bp - buf;
index b647739..d0e5e53 100644 (file)
@@ -653,13 +653,13 @@ void eliminate_quote(gchar *str, gchar quote_chr)
 
 void extract_quote(gchar *str, gchar quote_chr)
 {
-       register gchar *p, *p2;
+       register gchar *p;
 
        if ((str = strchr(str, quote_chr))) {
-               p2 = str;
-               while ((p = strchr(p2 + 1, quote_chr)) && (p[-1] == '\\')) {
+               p = str;
+               while ((p = strchr(p + 1, quote_chr)) && (p[-1] == '\\')) {
                        memmove(p - 1, p, strlen(p) + 1);
-                       p2 = p - 1;
+                       p--;
                }
                if(p) {
                        *p = '\0';