]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Bye bye readln--you wont be missed.
authormmj <none@none>
Thu, 22 Apr 2004 17:41:20 +0000 (03:41 +1000)
committermmj <none@none>
Thu, 22 Apr 2004 17:41:20 +0000 (03:41 +1000)
include/readln.h [deleted file]
src/Makefile.am
src/Makefile.in
src/mlmmj-unsubscribe.c
src/readln.c [deleted file]
src/subscriberfuncs.c

diff --git a/include/readln.h b/include/readln.h
deleted file mode 100644 (file)
index fb9eea9..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright (C) 2002, 2003 Mads Martin Joergensen <mmj at mmj.dk>
- *
- * $Id$
- *
- * This file is redistributable under version 2 of the GNU General
- * Public License as described at http://www.gnu.org/licenses/gpl.txt
- */
-
-#ifndef READLN_H
-#define READLN_H
-
-#include <sys/types.h>
-
-ssize_t readln(int fd, char *buf, size_t bufsize);
-
-#endif /* READLN_H */
index a19ca56fe8baff5a5626d19276efab09928cf9be..0ca510cfb4dd4881e66350a08b69d31bb1156677 100644 (file)
@@ -30,9 +30,9 @@ mlmmj_process_SOURCES = mlmmj-process.c writen.c find_email_adr.c \
 
 mlmmj_subscribe_SOURCES = mlmmj-subscribe.c writen.c mylocking.c \
                        getlistaddr.c chomp.c random-int.c strgen.c \
-                       subscriberfuncs.c readln.c print-version.c \
-                       log_error.c
+                       subscriberfuncs.c print-version.c \
+                       log_error.c mygetline.c
 
-mlmmj_unsubscribe_SOURCES = mlmmj-unsubscribe.c writen.c readln.c mylocking.c\
+mlmmj_unsubscribe_SOURCES = mlmmj-unsubscribe.c writen.c mylocking.c\
                        getlistaddr.c chomp.c subscriberfuncs.c random-int.c \
-                       strgen.c print-version.c log_error.c
+                       strgen.c print-version.c log_error.c mygetline.c
index 90ef47f1d105d88eba415cdd548d2117761d7c12..50f262fb1e493714fab36fd3c423422fb7c77eac 100644 (file)
@@ -81,15 +81,15 @@ mlmmj_send_LDADD = $(LDADD)
 am_mlmmj_subscribe_OBJECTS = mlmmj-subscribe.$(OBJEXT) \
        writen.$(OBJEXT) mylocking.$(OBJEXT) getlistaddr.$(OBJEXT) \
        chomp.$(OBJEXT) random-int.$(OBJEXT) strgen.$(OBJEXT) \
-       subscriberfuncs.$(OBJEXT) readln.$(OBJEXT) \
-       print-version.$(OBJEXT) log_error.$(OBJEXT)
+       subscriberfuncs.$(OBJEXT) print-version.$(OBJEXT) \
+       log_error.$(OBJEXT) mygetline.$(OBJEXT)
 mlmmj_subscribe_OBJECTS = $(am_mlmmj_subscribe_OBJECTS)
 mlmmj_subscribe_LDADD = $(LDADD)
 am_mlmmj_unsubscribe_OBJECTS = mlmmj-unsubscribe.$(OBJEXT) \
-       writen.$(OBJEXT) readln.$(OBJEXT) mylocking.$(OBJEXT) \
-       getlistaddr.$(OBJEXT) chomp.$(OBJEXT) \
-       subscriberfuncs.$(OBJEXT) random-int.$(OBJEXT) \
-       strgen.$(OBJEXT) print-version.$(OBJEXT) log_error.$(OBJEXT)
+       writen.$(OBJEXT) mylocking.$(OBJEXT) getlistaddr.$(OBJEXT) \
+       chomp.$(OBJEXT) subscriberfuncs.$(OBJEXT) random-int.$(OBJEXT) \
+       strgen.$(OBJEXT) print-version.$(OBJEXT) log_error.$(OBJEXT) \
+       mygetline.$(OBJEXT)
 mlmmj_unsubscribe_OBJECTS = $(am_mlmmj_unsubscribe_OBJECTS)
 mlmmj_unsubscribe_LDADD = $(LDADD)
 binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
@@ -116,8 +116,8 @@ am__depfiles_maybe = depfiles
 @AMDEP_TRUE@   ./$(DEPDIR)/mlmmj-unsubscribe.Po \
 @AMDEP_TRUE@   ./$(DEPDIR)/mygetline.Po ./$(DEPDIR)/mylocking.Po \
 @AMDEP_TRUE@   ./$(DEPDIR)/print-version.Po \
-@AMDEP_TRUE@   ./$(DEPDIR)/random-int.Po ./$(DEPDIR)/readln.Po \
-@AMDEP_TRUE@   ./$(DEPDIR)/send_help.Po ./$(DEPDIR)/strgen.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/random-int.Po ./$(DEPDIR)/send_help.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/strgen.Po \
 @AMDEP_TRUE@   ./$(DEPDIR)/subscriberfuncs.Po \
 @AMDEP_TRUE@   ./$(DEPDIR)/writen.Po
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
@@ -224,12 +224,12 @@ mlmmj_process_SOURCES = mlmmj-process.c writen.c find_email_adr.c \
 
 mlmmj_subscribe_SOURCES = mlmmj-subscribe.c writen.c mylocking.c \
                        getlistaddr.c chomp.c random-int.c strgen.c \
-                       subscriberfuncs.c readln.c print-version.c \
-                       log_error.c
+                       subscriberfuncs.c print-version.c \
+                       log_error.c mygetline.c
 
-mlmmj_unsubscribe_SOURCES = mlmmj-unsubscribe.c writen.c readln.c mylocking.c\
+mlmmj_unsubscribe_SOURCES = mlmmj-unsubscribe.c writen.c mylocking.c\
                        getlistaddr.c chomp.c subscriberfuncs.c random-int.c \
-                       strgen.c print-version.c log_error.c
+                       strgen.c print-version.c log_error.c mygetline.c
 
 all: all-am
 
@@ -350,7 +350,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mylocking.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print-version.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/random-int.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readln.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send_help.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strgen.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/subscriberfuncs.Po@am__quote@
index dc82eb690a1fc5d3403189b84a0d55d0c3f41055..8c32e9114c18826884ba17f5490da82cb02335c7 100644 (file)
@@ -20,7 +20,7 @@
 #include "mlmmj-subscribe.h"
 #include "mylocking.h"
 #include "wrappers.h"
-#include "readln.h"
+#include "mygetline.h"
 #include "getlistaddr.h"
 #include "subscriberfuncs.h"
 #include "strgen.h"
@@ -233,18 +233,22 @@ void generate_unsubconfirm(const char *listdir, const char *listaddr,
 
 void unsubscribe(int subreadfd, int subwritefd, const char *address)
 {
-       char buf[4096];
+       char *buf;
+       FILE *subfile;
 
        lseek(subreadfd, 0, SEEK_SET);
        lseek(subwritefd, 0, SEEK_SET);
 
-       /* XXX: readln only guarantees to have read a complete line
-        * when the last char is a newline, so a check should be made
-        */
-       while(readln(subreadfd, buf, sizeof(buf)) > 0)
+       if((subfile = fdopen(subreadfd, "r")) == NULL) {
+               log_error("could not fdopen subfilefd");
+               exit(EXIT_FAILURE);
+       }
+
+       while((buf = mygetline(subfile))) {
                if(strncasecmp(buf, address, strlen(address)) != 0)
                        writen(subwritefd, buf, strlen(buf));
-       
+               free(buf);
+       }
        ftruncate(subwritefd, lseek(subwritefd, 0, SEEK_CUR));
 }
 
diff --git a/src/readln.c b/src/readln.c
deleted file mode 100644 (file)
index 3c25d85..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 2002, 2003 Mads Martin Joergensen <mmj at mmj.dk>
- *
- * $Id$
- *
- * This file is redistributable under version 2 of the GNU General
- * Public License as described at http://www.gnu.org/licenses/gpl.txt
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-#include "readln.h"
-
-/*! Read a line from filedescriptor fd. If bufsize-1 have been read and no
- * newline was found, zero terminate it and return. We can only guarantee to
- * have finished reading a line if there's a newline as the last char in the
- * buffer 'buf
- */
-ssize_t readln(int fd, char *buf, size_t bufsize)
-{
-       ssize_t len = 0, rlen = 0;
-
-       do {
-               rlen = read(fd, buf + len, bufsize - len - 1);
-               if(rlen < 0) {
-                       if(errno == EINTR)
-                               continue;
-                       else
-                               return -1;
-               } else {
-                       if(rlen == 0) {
-                               buf[len] = '\0';
-                               return len;
-                       }
-               }
-               len += rlen;
-       } while(buf[len - 1] != '\n');
-
-       buf[len] = '\0';
-
-       return len;
-}
index a5630fcabf8546bda29afb9db724d842a743cd9d..c71e4b4befe2910506c64542decf9db08ac6b9d0 100644 (file)
@@ -9,21 +9,35 @@
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
+#include <stdlib.h>
 
 #include "mlmmj.h"
 #include "subscriberfuncs.h"
-#include "readln.h"
+#include "mygetline.h"
+#include "log_error.h"
 
 int find_subscriber(int subfilefd, const char *address)
 {
-       char buf[READ_BUFSIZE];
+       char *buf;
+       FILE *subfile;
 
-       while (readln(subfilefd, buf, sizeof(buf))) {
+       if((subfile = fdopen(subfilefd, "r")) == NULL) {
+               log_error("could not fdopen subfilefd");
+               exit(EXIT_FAILURE);
+       }
+       
+       while ((buf = mygetline(subfile))) {
                while (buf[0] && isspace(buf[strlen(buf)-1]))
                        buf[strlen(buf)-1] = '\0';
-               if (strcasecmp(buf, address) == 0)
+               if (strcasecmp(buf, address) == 0) {
+                       free(buf);
                        return 0;
+               }
+               free(buf);
        }
+
+       free(buf);
+       
        return 1;
 }