Sebastian Kuschel reports that pfd_closing can be called for a socket
[u/mdw/putty] / sshcrc.c
index fb0db0c..ed20395 100644 (file)
--- a/sshcrc.c
+++ b/sshcrc.c
 
 #include <stdlib.h>
 
+#include "ssh.h"
+
 /* ----------------------------------------------------------------------
  * Multi-function module. Can be compiled three ways.
  *
  *  - Compile with no special #defines. Will generate a table
  *    that's already initialised at compile time, and one function
- *    crc32(buf,len) that uses it. Normal usage.
+ *    crc32_compute(buf,len) that uses it. Normal usage.
  *
  *  - Compile with INITFUNC defined. Will generate an uninitialised
- *    array as the table, and as well as crc32(buf,len) it will
- *    also generate void crc32_init(void) which sets up the table
- *    at run time. Useful if binary size is important.
+ *    array as the table, and as well as crc32_compute(buf,len) it
+ *    will also generate void crc32_init(void) which sets up the
+ *    table at run time. Useful if binary size is important.
  *
  *  - Compile with GENPROGRAM defined. Will create a standalone
  *    program that does the initialisation and outputs the table as
@@ -211,9 +213,8 @@ int main(void)
 }
 #endif
 
-unsigned long crc32(const void *buf, size_t len)
+unsigned long crc32_update(unsigned long crcword, const void *buf, size_t len)
 {
-    unsigned long crcword = 0L;
     const unsigned char *p = (const unsigned char *) buf;
     while (len--) {
        unsigned long newbyte = *p++;
@@ -222,3 +223,8 @@ unsigned long crc32(const void *buf, size_t len)
     }
     return crcword;
 }
+
+unsigned long crc32_compute(const void *buf, size_t len)
+{
+    return crc32_update(0L, buf, len);
+}