cvs: php4 /ext/ircg ircg.c

From: Date: Wed, 10 Jan 2001 13:50:26 +0000
Subject: cvs: php4 /ext/ircg ircg.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-3539@lists.php.net to get a copy of this message
sas Wed Jan 10 05:50:26 2001 EDT Modified files: /php4/ext/ircg ircg.c Log: Remove unused channel element from the php_irconn structure. Remove unnecessary check when freeing custom format messages. Improve handling, if send(2) fails. Index: php4/ext/ircg/ircg.c diff -u php4/ext/ircg/ircg.c:1.10 php4/ext/ircg/ircg.c:1.11 --- php4/ext/ircg/ircg.c:1.10 Tue Jan 9 00:00:23 2001 +++ php4/ext/ircg/ircg.c Wed Jan 10 05:50:25 2001 @@ -65,7 +65,6 @@ typedef struct { irconn_t conn; const char *username; - const char *channel; zend_llist buffer; int fd; int irconn_id; @@ -89,7 +88,7 @@ php_irconn_t *lookup_irconn(int id) { - php_irconn_t **ret = NULL; + php_irconn_t **ret; if (zend_hash_index_find(&h_irconn, id, (void **) &ret) == FAILURE) return NULL; @@ -109,17 +108,19 @@ smart_str_free_ex(msg, 1); } + static void quit_handler(irconn_t *c, void *dummy) { php_irconn_t *conn = dummy; int i; - if (conn->fd != -1) + if (conn->fd > -1) zend_hash_index_del(&h_fd2irconn, conn->fd); + conn->fd = -2; zend_hash_index_del(&h_irconn, conn->irconn_id); for (i = 0; i < NO_FMTS; i++) { - if (conn->fmt_msgs[i] && conn->fmt_msgs[i] != fmt_msgs_default[i]) free(conn->fmt_msgs[i]); + if (conn->fmt_msgs[i]) free(conn->fmt_msgs[i]); } free((char *) conn->username); @@ -282,11 +283,21 @@ { zend_llist_clean(&conn->buffer); } + +static void http_closed_connection(int fd); static void msg_send(php_irconn_t *conn, smart_str *msg) { if (conn->fd != -1) { - send(conn->fd, msg->c, msg->len, 0); + int n; + + n = send(conn->fd, msg->c, msg->len, 0); + + if ((n == -1 && errno == EPIPE) || n == 0) { + http_closed_connection(conn->fd); + } + } else if (conn->fd == -2) { + /* do nothing */ } else { smart_str msg2 = {0}; @@ -519,7 +530,6 @@ */ conn = malloc(sizeof(*conn)); conn->username = strdup(username); - conn->channel = NULL, conn->fd = -1; if (p4) { HashTable *h;

« previous php.cvs (#3539) next »