]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2001-09-12 05:37:22 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 12 Sep 2001 05:37:22 +0000 (05:37 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 12 Sep 2001 05:37:22 +0000 (05:37 +0000)
fixed a bug in seti.c (file was never closed, lcd4linux run out of fd's

improved socket debugging

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@147 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

debug.h
mail.c
seti.c
socket.c

diff --git a/debug.h b/debug.h
index 6db001b167dafe52a2228e8d8dc6cbd3a46b83df..9bc452f95e94798ef265a9205016e6ec4a81f81c 100644 (file)
--- a/debug.h
+++ b/debug.h
@@ -1,4 +1,4 @@
-/* $Id: debug.h,v 1.3 2001/03/14 13:19:29 ltoetsch Exp $
+/* $Id: debug.h,v 1.4 2001/09/12 05:37:22 reinelt Exp $
  *
  * debug messages
  *
  *
  *
  * $Log: debug.h,v $
+ * Revision 1.4  2001/09/12 05:37:22  reinelt
+ *
+ * fixed a bug in seti.c (file was never closed, lcd4linux run out of fd's
+ *
+ * improved socket debugging
+ *
  * Revision 1.3  2001/03/14 13:19:29  ltoetsch
  * Added pop3/imap4 mail support
  *
@@ -42,7 +48,6 @@
 
 void message (int level, const char *format, ...);
 
-#define sockdebug(args...) message (3, args)
 #define debug(args...) message (2, __FILE__ ": " args)
 #define info(args...) message (1, args)
 #define error(args...) message (0, args)
diff --git a/mail.c b/mail.c
index 4077c008b232c0b310b18847621df5db0a8e70f5..3e90e3cfd0348fa699f49e8368ec4936ec49342f 100644 (file)
--- a/mail.c
+++ b/mail.c
@@ -1,4 +1,4 @@
-/* $Id: mail.c,v 1.9 2001/08/05 17:13:29 reinelt Exp $
+/* $Id: mail.c,v 1.10 2001/09/12 05:37:22 reinelt Exp $
  *
  * email specific functions
  *
  *
  *
  * $Log: mail.c,v $
+ * Revision 1.10  2001/09/12 05:37:22  reinelt
+ *
+ * fixed a bug in seti.c (file was never closed, lcd4linux run out of fd's
+ *
+ * improved socket debugging
+ *
  * Revision 1.9  2001/08/05 17:13:29  reinelt
  *
  * cleaned up inlude of sys/time.h and time.h
@@ -163,7 +169,6 @@ int Mail (int index, int *num, int *unseen)
           if ( strncmp (txt1, "From ", 5 ) == 0 ) {
             if ( last_line_blank1 == TRUE ) {
               v1++;
-              debug ("mailbox%d found mail %d",index, v1);
               last_line_blank1 = FALSE;
             }
           }
diff --git a/seti.c b/seti.c
index 8832bfc853966453ceb7557c253ab6ad7dbe4e2b..03d094377fc0076d1694fdfe4a9cb6bbac30a1ab 100644 (file)
--- a/seti.c
+++ b/seti.c
@@ -1,4 +1,4 @@
-/* $Id: seti.c,v 1.5 2001/08/05 17:13:29 reinelt Exp $
+/* $Id: seti.c,v 1.6 2001/09/12 05:37:22 reinelt Exp $
  *
  * seti@home specific functions
  *
  *
  *
  * $Log: seti.c,v $
+ * Revision 1.6  2001/09/12 05:37:22  reinelt
+ *
+ * fixed a bug in seti.c (file was never closed, lcd4linux run out of fd's
+ *
+ * improved socket debugging
+ *
  * Revision 1.5  2001/08/05 17:13:29  reinelt
  *
  * cleaned up inlude of sys/time.h and time.h
@@ -112,9 +118,12 @@ int Seti (double *perc, double *cput)
 
   if (read (fd, &buffer, sizeof(buffer)-1)==-1) {
     error ("read(%s) failed: %s", fn, strerror(errno));
+    close (fd);
     fd=-1;
     return -1;
   }
+
+  close (fd);
   
   p=strstr(buffer, "prog=");
   if (p==NULL) {
index cb00033dc638936c94a26d96b89b7f8e70bb2232..ca57f95e075d1e0a6709ee8511d2547138636216 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -1,4 +1,4 @@
-/* $Id: socket.c,v 1.2 2001/03/15 14:25:05 ltoetsch Exp $
+/* $Id: socket.c,v 1.3 2001/09/12 05:37:22 reinelt Exp $
  *
  * simple socket functions
  *
  *
  *
  * $Log: socket.c,v $
+ * Revision 1.3  2001/09/12 05:37:22  reinelt
+ *
+ * fixed a bug in seti.c (file was never closed, lcd4linux run out of fd's
+ *
+ * improved socket debugging
+ *
  * Revision 1.2  2001/03/15 14:25:05  ltoetsch
  * added unread/total news
  *
@@ -63,6 +69,7 @@
 #include <stdio.h>
 #include <errno.h>
 #include <stdlib.h>
+#include <ctype.h>
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/time.h>
 
 #define TIMEOUT 5 /* 5 seconds timeout */
 
+
+static char *quotemeta (char *string)
+{
+  char buffer[256];
+  char *s, *p;
+
+  p=buffer;
+  for (s=string; *s; s++) {
+    if (isprint(*s)) {
+      *p++=*s;
+    } else {
+      switch (*s) {
+      case '\r':
+       *p++='\\';
+       *p++='r';
+       break;
+      case '\n':
+       *p++='\\';
+       *p++='n';
+       break;
+      default:
+       p+=sprintf(p, "<\\%03o>", (int)*s);
+      }
+    }
+    if ((p-buffer)>240) {
+      *p++='.';
+      *p++='.';
+      *p++='.';
+      break;
+    }
+  }
+
+  *p='\0';
+  return buffer;
+}
+
+static char *del_pass(char *s) 
+{
+  char *p;
+  /* del pop3 pass from log */
+  if (memcmp(s, "PASS ", 5) == 0)
+    for (p = s+5; *p && *p != '\r'; p++)
+      *p = '*';
+  /* del imap4 pass from log */
+  else if (memcmp(s, ". LOGIN", 7) == 0)
+    for (p = s + strlen(s)-3 ; p > s && *p != ' '; p--)
+      *p = '*';
+  return s;
+}
+
+
+static void sockdebug (char dir, int len, char *string) {
+
+  // delete passwords from log
+  if (dir=='>') {
+    del_pass (string);
+  }
+  message (3, "%c[%2d] %s", dir, len, quotemeta(string)); 
+}
+
+
 int open_socket(char *machine, int port)
 {
   struct hostent       *addr;
@@ -102,7 +170,7 @@ int read_socket(int fd, char *buf, size_t size)
 {
   fd_set readfds;
   struct timeval tv;
-  int n        = 0;
+  int n;
 
   FD_ZERO(&readfds);
   FD_SET(fd, &readfds);
@@ -111,11 +179,14 @@ int read_socket(int fd, char *buf, size_t size)
 
   if (select(fd+1, &readfds, NULL, NULL, &tv) > 0)
     n = read(fd, buf, size);
+  else
+    n = 0;
+
   if (n >= 0)
     buf[n] = '\0';
   else
     buf[0] = '\0';
-  sockdebug("<(%d),%s", n, buf);
+  sockdebug('<', n, buf);
   return n;
 }
 
@@ -131,24 +202,10 @@ int read_socket_match(int fd, char *buf, size_t size, char *match)
   return 0;
 }
 
-static char *del_pass(char *s) 
-{
-  char *p;
-  /* del pop3 pass from log */
-  if (memcmp(s, "PASS ", 5) == 0)
-    for (p = s+5; *p && *p != '\r'; p++)
-      *p = '*';
-  /* del imap4 pass from log */
-  else if (memcmp(s, ". LOGIN", 7) == 0)
-    for (p = s + strlen(s)-3 ; p > s && *p != ' '; p--)
-      *p = '*';
-  return s;
-}
-  
 int write_socket(int fd, char *buf) 
 {
   int n = write(fd, buf, strlen(buf));
-  sockdebug(">(%d),%s", n, del_pass(buf));
+  sockdebug('>', n, del_pass(buf));
   return n;
 }