myserver-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myserver-commit] [SCM] GNU MyServer branch, master, updated. f80f639345


From: Giuseppe Scrivano
Subject: [myserver-commit] [SCM] GNU MyServer branch, master, updated. f80f6393451eb2b218f7d07fbf9427e72bad44a5
Date: Mon, 19 Oct 2009 15:33:15 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU MyServer".

The branch, master has been updated
       via  f80f6393451eb2b218f7d07fbf9427e72bad44a5 (commit)
       via  47095c77016a5bc8fb25a476cc8f8654f8c22fc5 (commit)
      from  20d3c2b838d3dea15910bcd7bfe0a67b51c70982 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------


commit f80f6393451eb2b218f7d07fbf9427e72bad44a5
Author: Giuseppe Scrivano <address@hidden>
Date:   Mon Oct 19 17:33:11 2009 +0200

    Use the MD5 implementation offered by gnulib.

diff --git a/myserver/bootstrap.conf b/myserver/bootstrap.conf
index 758e7aa..5e8643a 100644
--- a/myserver/bootstrap.conf
+++ b/myserver/bootstrap.conf
@@ -24,6 +24,7 @@ SKIP_PO=t
 # gnulib modules used by this package.
 gnulib_modules="
 gettext
+crypto/md5
 nproc
 regex
 "
diff --git a/myserver/include/base/md5/md5.h b/myserver/include/base/md5/md5.h
index 4c48e3a..15989d3 100644
--- a/myserver/include/base/md5/md5.h
+++ b/myserver/include/base/md5/md5.h
@@ -1,42 +1,25 @@
 /* -*- mode: c++ -*- */
 /*
- MyServer
- Copyright (C) 2005-2008 Free Software Foundation, Inc.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
+  MyServer
+  Copyright (C) 2005-2009 Free Software Foundation, Inc.
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 3 of the License, or
+  (at your option) any later version.
 
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
 
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
 
-
-/*
- * Based on a public domain implementation:
- *
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest.  This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * MD5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- */
 #include "stdafx.h"
 
+#include <md5.h>
+
 #ifndef MD5_H
 # define MD5_H
 
@@ -46,14 +29,10 @@ public:
   Md5();
   ~Md5();
   void init ();
-  void update (unsigned char const *buf, unsigned long len);
-  void final (unsigned char digest[16]);
+  void update (char const *buf, unsigned long len);
   char* end (char *buf);
 private:
-  unsigned int buf[4];
-  unsigned int bytes[2];
-  unsigned int in[16];
-  void transform (unsigned int buf[4], unsigned int const in[16]);
+  struct md5_ctx ctx;
 };
 
 #endif
diff --git a/myserver/src/base/md5/md5.cpp b/myserver/src/base/md5/md5.cpp
index 25106f7..58ff70c 100644
--- a/myserver/src/base/md5/md5.cpp
+++ b/myserver/src/base/md5/md5.cpp
@@ -15,283 +15,63 @@
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-
-/*
- * Based on a public domain implementation:
- *
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest.  This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * Md5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- */
-#include <string.h>    /*! for memcpy () */
+#include "stdafx.h"
 #include <include/base/md5/md5.h>
 
-
-#ifdef WORDS_BIGENDIAN
-void
-byteSwap (unsigned int *buf, unsigned int words)
-{
-  unsigned char *p = (unsigned char *)buf;
-
-  do {
-    *buf++ = (unsigned long)((unsigned int)p[3] << 8 | p[2]) << 16 |
-      ((unsigned int)p[1] << 8 | p[0]);
-    p += 4;
-  } while (--words);
-}
-#else
-/*! On the little endian architectures does nothing. */
-# define byteSwap(buf,words)
-#endif
-
 /*!
- *Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
- *initialization constants.
+ * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
+ * initialization constants.
  */
 void Md5::init ()
 {
-  buf[0] = 0x67452301;
-  buf[1] = 0xefcdab89;
-  buf[2] = 0x98badcfe;
-  buf[3] = 0x10325476;
-
-  bytes[0] = 0;
-  bytes[1] = 0;
+  md5_init_ctx (&ctx);
 }
 
 /*!
- *Update context to reflect the concatenation of another buffer full
- *of bytes.
+ * Update context to reflect the concatenation of another buffer full
+ * of bytes.
  */
-void Md5::update (unsigned char const *buf, unsigned long len)
+void Md5::update (char const *buf, unsigned long len)
 {
-  unsigned int t;
-
-  /* Update byte count */
-
-  t = bytes[0];
-  if ((bytes[0] = t + len) < t)
-    bytes[1]++;  /* Carry from low to high */
-
-  t = 64 - (t & 0x3f);  /* Space available in in (at least 1) */
-  if (t > len)
-  {
-    memcpy ((unsigned char *)in + 64 - t, buf, len);
-    return;
-  }
-  /* First chunk is an odd size */
-  memcpy ((unsigned char *)in + 64 - t, buf, t);
-  byteSwap (in, 16);
-  transform ( this->buf, in);
-  buf += t;
-  len -= t;
-
-  /* Process data in 64-byte chunks */
-  while (len >= 64)
-  {
-    memcpy (in, buf, 64);
-    byteSwap (in, 16);
-    transform (this->buf, in);
-    buf += 64;
-    len -= 64;
-  }
-
-  /* Handle any remaining bytes of data. */
-  memcpy (in, buf, len);
-}
-
-/*!
- *Final wrapup - pad to 64-byte boundary with the bit pattern
- *1 0* (64-bit count of bits processed, MSB-first)
- */
-void Md5::final (unsigned char digest[16])
-{
-  long count = bytes[0] & 0x3f;  /* Number of bytes mod 64. */
-  unsigned char *p = (unsigned char *)in + count;
-  unsigned int i;
-  /* Set the first char of padding to 0x80.  There is always room. */
-  *p++ = 0x80;
-
-  /* Bytes of padding needed to make 56 bytes (-8..55) */
-  count = 56 - 1 - count;
-
-  if (count < 0) {  /* Padding forces an extra block */
-    memset (p, 0, count + 8);
-    byteSwap (in, 16);
-    transform ( buf, in);
-    p = (unsigned char *)in;
-    count = 56;
-  }
-  memset (p, 0, count);
-  byteSwap (in, 14);
-
-  /* Append length in bits and transform */
-  in[14] = bytes[0] << 3;
-  in[15] = bytes[1] << 3 | bytes[0] >> 29;
-  transform (buf, in);
-
-  byteSwap (buf, 4);
-
-  memcpy (digest, buf, 16);
-
-  for (i = 0; i < 4; i++)
-    buf[i] = 0;
-
-  for (i = 0; i < 2; i++)
-    bytes[i] = 0;
-
-  for (i = 0; i < 16; i++)
-    in[i] = 0;
-
+  md5_process_bytes (buf, len, &ctx);
 }
 
-#ifndef ASM_MD5
-
-/* The four core functions - F1 is optimized somewhat */
-
-/* #define F1(x, y, z) (x & y | ~x & z) */
-# define F1(x, y, z) (z ^ (x & (y ^ z)))
-# define F2(x, y, z) F1(z, x, y)
-# define F3(x, y, z) (x ^ y ^ z)
-# define F4(x, y, z) (y ^ (x | ~z))
-
-/* This is the central step in the MD5 algorithm. */
-# define MD5STEP(f,w,x,y,z,in,s) \
-   (w += f (x,y,z) + in, w = (w<<s | w>>(32-s)) + x)
-
 /*!
- *The core of the MD5 algorithm, this alters an existing MD5 hash to
- *reflect the addition of 16 longwords of new data.  update blocks
- *the data and converts bytes longo longwords for this routine.
+ * Initialize the object via a constructor.
  */
-void Md5::transform (unsigned int buf[4], unsigned int const in[16])
+Md5::Md5 ()
 {
-  register unsigned int a, b, c, d;
-
-  a = buf[0];
-  b = buf[1];
-  c = buf[2];
-  d = buf[3];
-
-  MD5STEP (F1, a, b, c, d, in[0] + 0xd76aa478, 7);
-  MD5STEP (F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
-  MD5STEP (F1, c, d, a, b, in[2] + 0x242070db, 17);
-  MD5STEP (F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
-  MD5STEP (F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
-  MD5STEP (F1, d, a, b, c, in[5] + 0x4787c62a, 12);
-  MD5STEP (F1, c, d, a, b, in[6] + 0xa8304613, 17);
-  MD5STEP (F1, b, c, d, a, in[7] + 0xfd469501, 22);
-  MD5STEP (F1, a, b, c, d, in[8] + 0x698098d8, 7);
-  MD5STEP (F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
-  MD5STEP (F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
-  MD5STEP (F1, b, c, d, a, in[11] + 0x895cd7be, 22);
-  MD5STEP (F1, a, b, c, d, in[12] + 0x6b901122, 7);
-  MD5STEP (F1, d, a, b, c, in[13] + 0xfd987193, 12);
-  MD5STEP (F1, c, d, a, b, in[14] + 0xa679438e, 17);
-  MD5STEP (F1, b, c, d, a, in[15] + 0x49b40821, 22);
-
-  MD5STEP (F2, a, b, c, d, in[1] + 0xf61e2562, 5);
-  MD5STEP (F2, d, a, b, c, in[6] + 0xc040b340, 9);
-  MD5STEP (F2, c, d, a, b, in[11] + 0x265e5a51, 14);
-  MD5STEP (F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
-  MD5STEP (F2, a, b, c, d, in[5] + 0xd62f105d, 5);
-  MD5STEP (F2, d, a, b, c, in[10] + 0x02441453, 9);
-  MD5STEP (F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
-  MD5STEP (F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
-  MD5STEP (F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
-  MD5STEP (F2, d, a, b, c, in[14] + 0xc33707d6, 9);
-  MD5STEP (F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
-  MD5STEP (F2, b, c, d, a, in[8] + 0x455a14ed, 20);
-  MD5STEP (F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
-  MD5STEP (F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
-  MD5STEP (F2, c, d, a, b, in[7] + 0x676f02d9, 14);
-  MD5STEP (F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
-
-  MD5STEP (F3, a, b, c, d, in[5] + 0xfffa3942, 4);
-  MD5STEP (F3, d, a, b, c, in[8] + 0x8771f681, 11);
-  MD5STEP (F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
-  MD5STEP (F3, b, c, d, a, in[14] + 0xfde5380c, 23);
-  MD5STEP (F3, a, b, c, d, in[1] + 0xa4beea44, 4);
-  MD5STEP (F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
-  MD5STEP (F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
-  MD5STEP (F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
-  MD5STEP (F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
-  MD5STEP (F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
-  MD5STEP (F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
-  MD5STEP (F3, b, c, d, a, in[6] + 0x04881d05, 23);
-  MD5STEP (F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
-  MD5STEP (F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
-  MD5STEP (F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
-  MD5STEP (F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
-
-  MD5STEP (F4, a, b, c, d, in[0] + 0xf4292244, 6);
-  MD5STEP (F4, d, a, b, c, in[7] + 0x432aff97, 10);
-  MD5STEP (F4, c, d, a, b, in[14] + 0xab9423a7, 15);
-  MD5STEP (F4, b, c, d, a, in[5] + 0xfc93a039, 21);
-  MD5STEP (F4, a, b, c, d, in[12] + 0x655b59c3, 6);
-  MD5STEP (F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
-  MD5STEP (F4, c, d, a, b, in[10] + 0xffeff47d, 15);
-  MD5STEP (F4, b, c, d, a, in[1] + 0x85845dd1, 21);
-  MD5STEP (F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
-  MD5STEP (F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
-  MD5STEP (F4, c, d, a, b, in[6] + 0xa3014314, 15);
-  MD5STEP (F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
-  MD5STEP (F4, a, b, c, d, in[4] + 0xf7537e82, 6);
-  MD5STEP (F4, d, a, b, c, in[11] + 0xbd3af235, 10);
-  MD5STEP (F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
-  MD5STEP (F4, b, c, d, a, in[9] + 0xeb86d391, 21);
-
-  buf[0] += a;
-  buf[1] += b;
-  buf[2] += c;
-  buf[3] += d;
+  init ();
 }
 
 /*!
- *Initialize the object via a constructor.
+ * Destroy the object.
  */
-Md5::Md5()
+Md5::~Md5 ()
 {
-  init ();
 }
 
 /*!
- *Destroy the object.
- */
-Md5::~Md5()
-{}
-
-/*!
- *Write the final hash to the buffer.
+ * Write the final hash to the buffer.
  */
 char* Md5::end (char *buf)
 {
-  long i;
-  unsigned char digest[16];
-  static const char hex[]="0123456789abcdef";
+  unsigned char tmp[16];
 
   if (!buf)
-    return 0;
-  final (digest);
-  for ( i = 0; i < 16; i++)
-  {
-    buf[(i << 1)] = hex[digest[i] >> 4];
-    buf[(i << 1) + 1] = hex[digest[i] & 0x0f];
-  }
+    return NULL;
+
+  md5_finish_ctx (&ctx, tmp);
+
+  static const char hex[] = "0123456789abcdef";
+
+  for (long i = 0; i < 16; i++)
+    {
+      buf[(i << 1)] = hex[tmp[i] >> 4];
+      buf[(i << 1) + 1] = hex[tmp[i] & 0x0f];
+    }
 
   buf[32] = '\0';
 
   return buf;
 }
-#endif
diff --git a/myserver/src/base/mem_buff/mem_buff.cpp 
b/myserver/src/base/mem_buff/mem_buff.cpp
index 302bc4c..543c5d2 100644
--- a/myserver/src/base/mem_buff/mem_buff.cpp
+++ b/myserver/src/base/mem_buff/mem_buff.cpp
@@ -459,8 +459,8 @@ void MemBuf::hashMD5(const void* pAdr, u_int nSize)
   setLength (16);
 
   md5.init ();
-  md5.update ((unsigned char*) pAdr, nSize);
-  md5.final ((unsigned char*) getBuffer ());
+  md5.update ((char*) pAdr, nSize);
+  md5.end ((char*) getBuffer ());
   m_nSize = 16;
 }
 
diff --git a/myserver/src/protocol/control/control_protocol.cpp 
b/myserver/src/protocol/control/control_protocol.cpp
index 7ccbd11..27d64be 100644
--- a/myserver/src/protocol/control/control_protocol.cpp
+++ b/myserver/src/protocol/control/control_protocol.cpp
@@ -137,7 +137,7 @@ int ControlProtocol::loadProtocol ()
   else
   {
     md5.init ();
-    md5.update ((unsigned char const*)tmpName, (unsigned int)strlen (tmpName) 
);
+    md5.update (tmpName, (unsigned int)strlen (tmpName) );
     md5.end ( adminLogin);
   }
 
@@ -146,7 +146,7 @@ int ControlProtocol::loadProtocol ()
   else
   {
     md5.init ();
-    md5.update ((unsigned char const*)tmpPassword,(unsigned int)strlen 
(tmpPassword) );
+    md5.update (tmpPassword,(unsigned int)strlen (tmpPassword) );
     md5.end (adminPassword);
   }
 
@@ -171,11 +171,11 @@ int ControlProtocol::checkAuth (ControlHeader& header)
   headerPassword = header.getAuthPassword ();
   authLoginHeaderMD5[0] = authPasswordHeaderMD5[0] = '\0';
   md5.init ();
-  md5.update ((unsigned char const*) headerLogin, (unsigned int)strlen ( 
headerLogin ) );
+  md5.update (headerLogin, (unsigned int)strlen ( headerLogin ) );
   md5.end ( authLoginHeaderMD5);
 
   md5.init ();
-  md5.update ((unsigned char const*) headerPassword,(unsigned int)strlen 
(headerPassword) );
+  md5.update (headerPassword, (unsigned int)strlen (headerPassword) );
   md5.end (authPasswordHeaderMD5);
 
   if ((!strcmpi (adminLogin, authLoginHeaderMD5)) &&
diff --git a/myserver/src/protocol/http/http.cpp 
b/myserver/src/protocol/http/http.cpp
index 20a4eb2..04ded38 100644
--- a/myserver/src/protocol/http/http.cpp
+++ b/myserver/src/protocol/http/http.cpp
@@ -543,7 +543,7 @@ u_long Http::checkDigest ()
   *td->secondaryBuffer << td->request.digestUsername << ":" << 
td->request.digestRealm
                        << ":" << td->securityToken.getNeededPassword ();
 
-  md5.update ((unsigned char const*) td->secondaryBuffer->getBuffer (),
+  md5.update ((char const*) td->secondaryBuffer->getBuffer (),
               (unsigned int) td->secondaryBuffer->getLength ());
   md5.end (A1);
 
@@ -556,7 +556,7 @@ u_long Http::checkDigest ()
 
   td->secondaryBuffer->setLength (0);
   *td->secondaryBuffer << td->request.cmd.c_str () << ":" << uri;
-  md5.update ((unsigned char const*) td->secondaryBuffer->getBuffer (),
+  md5.update ((char const*) td->secondaryBuffer->getBuffer (),
               (unsigned int) td->secondaryBuffer->getLength ());
   md5.end (A2);
 
@@ -566,7 +566,7 @@ u_long Http::checkDigest ()
           << ((HttpUserData*) td->connection->protocolBuffer)->nonce << ":"
           << td->request.digestNc << ":" << td->request.digestCnonce << ":"
           << td->request.digestQop << ":" << A2;
-  md5.update ((unsigned char const*) td->secondaryBuffer->getBuffer (),
+  md5.update ((char const*) td->secondaryBuffer->getBuffer (),
               (unsigned int) td->secondaryBuffer->getLength ());
   md5.end (response);
 
@@ -1228,7 +1228,7 @@ void Http::computeDigest (char* out, char* buffer)
   sprintf (buffer, "%i-%u-%s", (int) clock (), (u_int) td->id,
            td->connection->getIpAddr ());
   md5.init ();
-  md5.update ((unsigned char const*) buffer, (unsigned int) strlen (buffer));
+  md5.update ((char const*) buffer, (unsigned int) strlen (buffer));
   md5.end (out);
 }
 
@@ -1281,7 +1281,7 @@ int Http::requestAuthorization ()
       md5Str[4] = (char) (clock () & 0xFF);
       strncpy (&(md5Str[5]), td->request.uri.c_str (), 256 - 5);
       md5.init ();
-      md5.update ((unsigned char const*) md5Str,
+      md5.update ((char const*) md5Str,
                   (unsigned int) strlen (md5Str));
       md5.end (((HttpUserData*) td->connection->protocolBuffer)->opaque);
 
diff --git a/myserver/tests/test_md5.cpp b/myserver/tests/test_md5.cpp
index 45a2694..312b345 100644
--- a/myserver/tests/test_md5.cpp
+++ b/myserver/tests/test_md5.cpp
@@ -15,13 +15,14 @@
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <ctype.h>
+#include <include/base/md5/md5.h>
 
+#include <ctype.h>
 #include <cppunit/CompilerOutputter.h>
 #include <cppunit/extensions/TestFactoryRegistry.h>
 #include <cppunit/ui/text/TestRunner.h>
 #include <cppunit/extensions/HelperMacros.h>
-#include <include/base/md5/md5.h>
+#include <string.h>
 
 class TestMd5 : public CppUnit::TestFixture
 {
@@ -44,15 +45,14 @@ public:
 
   void testHash ()
   {
-    unsigned char out[33];
-    const unsigned char* msg = (unsigned char* ) "hello world!\n";
+    char out[33];
+    const char* msg = "hello world!\n";
 
     char *expected = (char*) "c897d1410af8f2c74fba11b1db511e9e";
 
     md5->init ();
-    md5->update (msg, 13);
-
-    md5->end ((char*)out);
+    md5->update (msg, strlen (msg));
+    md5->end (out);
 
     for (int i = 0; i < 32; i++)
     {



commit 47095c77016a5bc8fb25a476cc8f8654f8c22fc5
Author: Giuseppe Scrivano <address@hidden>
Date:   Mon Oct 19 17:14:11 2009 +0200

    Remove the unused macro REGLIB.

diff --git a/myserver/src/base/regex/myserver_regex.cpp 
b/myserver/src/base/regex/myserver_regex.cpp
index 5d31412..1068b32 100644
--- a/myserver/src/base/regex/myserver_regex.cpp
+++ b/myserver/src/base/regex/myserver_regex.cpp
@@ -48,11 +48,9 @@ int Regex::exec (const char *text, size_t nmatch, regmatch_t 
matchptr [],
  */
 void Regex::free ()
 {
-#ifdef REGLIB
   if (compiled)
     regfree (&compiledRegex);
   compiled = 0;
-#endif
 }
 
 /*!
@@ -60,9 +58,7 @@ void Regex::free ()
  */
 Regex::~Regex ()
 {
-#ifdef REGLIB
   free ();
-#endif
 }
 
 /*!
@@ -70,9 +66,8 @@ Regex::~Regex ()
  */
 Regex::Regex (const char *pattern, int flags)
 {
-#ifdef REGLIB
+  compiled = 0;
   compile (pattern, flags);
-#endif
 }
 /*!
  * Return a nonzero value if the regex was compiled.
@@ -95,7 +90,9 @@ Regex::Regex (Regex& r)
  */
 void Regex::clone (Regex& r)
 {
-#ifdef REGLIB
+  r.compiled = compiled;
+  if (!compiled)
+    return;
+
   compile (r.pattern.c_str (), r.flags);
-#endif
 }

-----------------------------------------------------------------------

Summary of changes:
 myserver/bootstrap.conf                            |    1 +
 myserver/include/base/md5/md5.h                    |   55 ++---
 myserver/src/base/md5/md5.cpp                      |  272 ++------------------
 myserver/src/base/mem_buff/mem_buff.cpp            |    4 +-
 myserver/src/base/regex/myserver_regex.cpp         |   13 +-
 myserver/src/protocol/control/control_protocol.cpp |    8 +-
 myserver/src/protocol/http/http.cpp                |   10 +-
 myserver/tests/test_md5.cpp                        |   14 +-
 8 files changed, 67 insertions(+), 310 deletions(-)


hooks/post-receive
-- 
GNU MyServer




reply via email to

[Prev in Thread] Current Thread [Next in Thread]