]> arthur.barton.de Git - netatalk.git/blobdiff - bin/megatron/macbin.c
megatron, fix errors introduced in Sun Feb 6 10:16:00 2005 commit, 'replace a wrong...
[netatalk.git] / bin / megatron / macbin.c
index 1b2dd197a665efeba762772576fe600a0c35ca0d..349a7e1efc8725875dd4503d0bd3a46656ccb496 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: macbin.c,v 1.14 2009-10-14 01:38:28 didg Exp $
+ * $Id: macbin.c,v 1.15 2010-01-27 21:27:53 didg Exp $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -167,11 +167,11 @@ int bin_close(int keepflag)
  * return zero and no more than that.
  */
 
-int bin_read( int fork, char *buffer, int length)
+ssize_t bin_read( int fork, char *buffer, size_t length)
 {
     char               *buf_ptr;
-    int                        readlen;
-    int                        cc = 1;
+    size_t             readlen;
+    ssize_t            cc = 1;
     off_t              pos;
 
 #if DEBUG >= 3
@@ -179,9 +179,9 @@ int bin_read( int fork, char *buffer, int length)
     fprintf( stderr, "bin_read: remaining length is %d\n", bin.forklen[fork] );
 #endif /* DEBUG >= 3 */
 
-    if (bin.forklen[fork] > length) {
-       fprintf(stderr, "This should never happen, dude! length %d, fork length == %u\n", length, bin.forklen[fork]);
-       return bin.forklen[fork];
+    if (bin.forklen[fork] > 0x7FFFFFFF) {
+       fprintf(stderr, "This should never happen, dude! fork length == %u\n", bin.forklen[fork]);
+       return -1;
     }
 
     if ( bin.forklen[ fork ] == 0 ) {
@@ -236,11 +236,11 @@ int bin_read( int fork, char *buffer, int length)
  * bin_write 
  */
 
-int bin_write(int fork, char *buffer, int length)
+ssize_t bin_write(int fork, char *buffer, size_t length)
 {
     char               *buf_ptr;
-    int                        writelen;
-    int                        cc = 0;
+    size_t             writelen;
+    ssize_t            cc = 0;
     off_t              pos;
     u_char             padchar = 0x7f;
                /* Not sure why, but it seems this must be 0x7f to match
@@ -278,11 +278,6 @@ int bin_write(int fork, char *buffer, int length)
        return( cc );
     }
 
-    if (length > bin.forklen[fork]) {
-       fprintf(stderr, "This should never happen, dude! length %d, fork length %u\n", length, bin.forklen[fork]);
-       return bin.forklen[fork];
-    }
-
     bin.forklen[fork] -= length;
 
 /*