mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-12-24 11:55:43 +00:00
close pop3/imap sockets
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@811 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
parent
09fda8a54f
commit
4e8212d978
@ -1,5 +1,8 @@
|
|||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
|
2006-12-11
|
||||||
|
* Close pop3/imap sockets.
|
||||||
|
|
||||||
2006-12-10
|
2006-12-10
|
||||||
* Fix peek table bug with new portmon code.
|
* Fix peek table bug with new portmon code.
|
||||||
|
|
||||||
|
15
src/conky.c
15
src/conky.c
@ -38,13 +38,16 @@
|
|||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_ICONV
|
#ifdef HAVE_ICONV
|
||||||
#include <iconv.h>
|
#include <iconv.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "build.h"
|
#include "build.h"
|
||||||
|
|
||||||
|
#ifndef S_ISSOCK
|
||||||
|
#define S_ISSOCK(x) ((x & S_IFMT) == S_IFSOCK)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define CONFIG_FILE "$HOME/.conkyrc"
|
#define CONFIG_FILE "$HOME/.conkyrc"
|
||||||
#define MAIL_FILE "$MAIL"
|
#define MAIL_FILE "$MAIL"
|
||||||
#define MAX_IF_BLOCK_DEPTH 5
|
#define MAX_IF_BLOCK_DEPTH 5
|
||||||
@ -1272,6 +1275,7 @@ void *imap_thread(struct mail_s* mail)
|
|||||||
int fail = 0;
|
int fail = 0;
|
||||||
unsigned int old_unseen = UINT_MAX;
|
unsigned int old_unseen = UINT_MAX;
|
||||||
unsigned int old_messages = UINT_MAX;
|
unsigned int old_messages = UINT_MAX;
|
||||||
|
struct stat stat_buf;
|
||||||
struct hostent *he;
|
struct hostent *he;
|
||||||
struct sockaddr_in their_addr; // connector's address information
|
struct sockaddr_in their_addr; // connector's address information
|
||||||
if ((he = gethostbyname(mail->host)) == NULL) { // get the host info
|
if ((he = gethostbyname(mail->host)) == NULL) { // get the host info
|
||||||
@ -1430,7 +1434,6 @@ void *imap_thread(struct mail_s* mail)
|
|||||||
fail++;
|
fail++;
|
||||||
goto next_iteration;
|
goto next_iteration;
|
||||||
}
|
}
|
||||||
close(sockfd);
|
|
||||||
if (strlen(mail->command) > 1 && (mail->unseen > old_unseen || (mail->messages > old_messages && mail->unseen > 0))) { // new mail goodie
|
if (strlen(mail->command) > 1 && (mail->unseen > old_unseen || (mail->messages > old_messages && mail->unseen > 0))) { // new mail goodie
|
||||||
if (system(mail->command) == -1) {
|
if (system(mail->command) == -1) {
|
||||||
perror("system()");
|
perror("system()");
|
||||||
@ -1440,6 +1443,9 @@ void *imap_thread(struct mail_s* mail)
|
|||||||
old_unseen = mail->unseen;
|
old_unseen = mail->unseen;
|
||||||
old_messages = mail->messages;
|
old_messages = mail->messages;
|
||||||
next_iteration:
|
next_iteration:
|
||||||
|
if ((fstat(sockfd, &stat_buf)==0) && S_ISSOCK(stat_buf.st_mode))
|
||||||
|
/* if a valid socket, close it */
|
||||||
|
close(sockfd);
|
||||||
if (timed_thread_test (mail->p_timed_thread))
|
if (timed_thread_test (mail->p_timed_thread))
|
||||||
timed_thread_exit (mail->p_timed_thread);
|
timed_thread_exit (mail->p_timed_thread);
|
||||||
}
|
}
|
||||||
@ -1454,6 +1460,7 @@ void *pop3_thread(struct mail_s *mail)
|
|||||||
char *reply;
|
char *reply;
|
||||||
int fail = 0;
|
int fail = 0;
|
||||||
unsigned int old_unseen = UINT_MAX;
|
unsigned int old_unseen = UINT_MAX;
|
||||||
|
struct stat stat_buf;
|
||||||
struct hostent *he;
|
struct hostent *he;
|
||||||
struct sockaddr_in their_addr; // connector's address information
|
struct sockaddr_in their_addr; // connector's address information
|
||||||
if ((he = gethostbyname(mail->host)) == NULL) { // get the host info
|
if ((he = gethostbyname(mail->host)) == NULL) { // get the host info
|
||||||
@ -1631,7 +1638,6 @@ void *pop3_thread(struct mail_s *mail)
|
|||||||
fail++;
|
fail++;
|
||||||
goto next_iteration;
|
goto next_iteration;
|
||||||
}
|
}
|
||||||
close(sockfd);
|
|
||||||
if (strlen(mail->command) > 1 && mail->unseen > old_unseen) { // new mail goodie
|
if (strlen(mail->command) > 1 && mail->unseen > old_unseen) { // new mail goodie
|
||||||
if (system(mail->command) == -1) {
|
if (system(mail->command) == -1) {
|
||||||
perror("system()");
|
perror("system()");
|
||||||
@ -1640,6 +1646,9 @@ void *pop3_thread(struct mail_s *mail)
|
|||||||
fail = 0;
|
fail = 0;
|
||||||
old_unseen = mail->unseen;
|
old_unseen = mail->unseen;
|
||||||
next_iteration:
|
next_iteration:
|
||||||
|
if ((fstat(sockfd, &stat_buf)==0) && S_ISSOCK(stat_buf.st_mode))
|
||||||
|
/* if a valid socket, close it */
|
||||||
|
close(sockfd);
|
||||||
if (timed_thread_test (mail->p_timed_thread))
|
if (timed_thread_test (mail->p_timed_thread))
|
||||||
timed_thread_exit (mail->p_timed_thread);
|
timed_thread_exit (mail->p_timed_thread);
|
||||||
}
|
}
|
||||||
|
@ -185,8 +185,8 @@ void show_connection_to_tcp_port_monitor(
|
|||||||
* the monitor's port range of interest. Connections of interest are first
|
* the monitor's port range of interest. Connections of interest are first
|
||||||
* looked up in the hash to see if they are already there. If they are, we
|
* looked up in the hash to see if they are already there. If they are, we
|
||||||
* reset the age of the connection so it is not deleted. If the connection
|
* reset the age of the connection so it is not deleted. If the connection
|
||||||
* is not in the hash, we add it, but only if the hash is not saturated.
|
* is not in the hash, we add it, but only if we haven't exceeded the maximum
|
||||||
* The function takes O(1) time. */
|
* connection limit for the monitor. The function takes O(1) time. */
|
||||||
|
|
||||||
tcp_connection_node_t *p_node;
|
tcp_connection_node_t *p_node;
|
||||||
tcp_connection_t *p_connection, *p_conn_hash;
|
tcp_connection_t *p_connection, *p_conn_hash;
|
||||||
|
Loading…
Reference in New Issue
Block a user