diff -ur ipscromp-2.4/CHANGES ipscromp-2.4.1/CHANGES
--- ipscromp-2.4/CHANGES	Sat Apr 26 13:03:38 2003
+++ ipscromp-2.4.1/CHANGES	Sun May 11 08:59:57 2003
@@ -103,3 +103,7 @@
      Cleanup of a couple of messages
      Added (fairly loose) installation docs (see INSTALL)
        and a make install target
+
+2.4.1 11/05/2003, Cheesy
+     Fixed to compile correctly again with libmd (SHA vs SHA1 stuff)
+     Removed old Cygwin specific workarounds that are now unnecessary
diff -ur ipscromp-2.4/common.c ipscromp-2.4.1/common.c
--- ipscromp-2.4/common.c	Sat Apr 26 13:02:00 2003
+++ ipscromp-2.4.1/common.c	Sun May 11 08:07:08 2003
@@ -20,7 +20,7 @@
 #define SHA1_Final  SHAFinal
 
 #define MD5_DIGEST_LENGTH MD5_HASHBYTES
-#define SHA1_DIGEST_LENGTH SHA1_HASHBYTES
+#define SHA_DIGEST_LENGTH SHA_HASHBYTES
 
 #else
 #include <openssl/md5.h>
@@ -34,14 +34,8 @@
 int debug = 0;
 int debug_to_syslog = 0;
 
-/****************************************************************************\
- * HACK/FIXME/BUGBUG:
- * snprintf() does not exist on cygwin(). I have no idea why not.
- * To work around this, I define snprintf() to be sprintf().
- * This does introduce the possibility of a buffer overflow,
- * but anyone who runs the server on 'doze needs their head seeing to.
-\****************************************************************************/
-#if defined(__CYGWIN__)
+/* This used to be needed on older versions of cygwin */
+#if 0
 #warning Defining snprintf() to sprintf() for Cygnus. This has security implications.
 #define snprintf(str, n, fmt, args...) sprintf(str, fmt, ## args)
 #define vsnprintf(str, n, fmt, args...) vsprintf(str, fmt, ## args)
diff -ur ipscromp-2.4/ipscromp.c ipscromp-2.4.1/ipscromp.c
--- ipscromp-2.4/ipscromp.c	Sat Apr 26 12:08:39 2003
+++ ipscromp-2.4.1/ipscromp.c	Sun May 11 08:09:18 2003
@@ -19,24 +19,9 @@
 
 char *ip_string(char *data)
 {
-  int is_ip = 1;
   struct hostent *he;
 
-#ifdef __CYGWIN__
-  char *tmp = data - 1;
-
-  while (*++tmp != 0 && is_ip)
-  {
-    if (!isdigit(*tmp) && *tmp != '.')
-    {
-      is_ip = 0;
-    }
-  }
-#else
-  is_ip = inet_aton(data, NULL) != 0;
-#endif
-
-  if (is_ip)
+  if (inet_aton(data, NULL) == 1)
   {
     return data;
   }
@@ -58,14 +43,11 @@
 
   memset(&s, 0, sizeof(s));
 
-#ifndef __CYGWIN__
   if (inet_aton(host, &s.sin_addr) != 0)
   {
     /* Do nothing */
   }
-  else
-#endif
-       if ((he = gethostbyname(host)) != NULL)
+  else if ((he = gethostbyname(host)) != NULL)
   {
     memcpy(&s.sin_addr, he->h_addr, he->h_length);
   }
