cvs: php4 /ext/ircg ircg.c

From: Date: Fri, 02 Mar 2001 20:32:42 +0000
Subject: cvs: php4 /ext/ircg ircg.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-4353@lists.php.net to get a copy of this message
sas Fri Mar 2 12:32:42 2001 EDT Modified files: /php4/ext/ircg ircg.c Log: Make use of the "zero-copy" write queue feature. Index: php4/ext/ircg/ircg.c diff -u php4/ext/ircg/ircg.c:1.40 php4/ext/ircg/ircg.c:1.41 --- php4/ext/ircg/ircg.c:1.40 Mon Feb 26 15:11:06 2001 +++ php4/ext/ircg/ircg.c Fri Mar 2 12:32:42 2001 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ircg.c,v 1.40 2001/02/26 23:11:06 sas Exp $ */ +/* $Id: ircg.c,v 1.41 2001/03/02 20:32:42 sas Exp $ */ #include "php.h" #include "php_ini.h" @@ -164,13 +164,6 @@ } } -static void buffer_dtor(void *dummy) -{ - smart_str *msg = dummy; - - smart_str_free_ex(msg, 1); -} - static void quit_handler(irconn_t *c, void *dummy) { php_irconn_t *conn = dummy; @@ -272,14 +265,16 @@ if (msg->c == 0) return; if (conn->fd != -1) { +#if defined(IRCG_API_VERSION) && IRCG_API_VERSION >= 20010302 + irc_write_buf_append_ex(&conn->wb, msg, 0); +#else irc_write_buf_append(&conn->wb, msg); + smart_str_free_ex(msg, 1); +#endif } else if (conn->fd == -2) { /* do nothing */ } else { - smart_str msg2 = {0}; - - smart_str_append_ex(&msg2, msg, 1); - zend_llist_add_element(&conn->buffer, &msg2); + zend_llist_add_element(&conn->buffer, msg); } } @@ -336,9 +331,8 @@ smart_str *msg, void *conn_data, void *chan_data) { php_irconn_t *conn = conn_data; - static smart_str m; + smart_str m = {0}; - m.len = 0; if (msg->c[0] == '\001') { handle_ctcp(conn, chan, from, msg, &m); } else if (chan) { @@ -356,9 +350,8 @@ void *dummy) { php_irconn_t *conn = dummy; - static smart_str m; + smart_str m = {0}; - m.len = 0; format_msg(MSG(conn, FMT_MSG_NICK), NULL, newnick->c, oldnick->c, NULL, &m); msg_send(conn, &m); @@ -368,9 +361,8 @@ smart_str *host, smart_str *real_name, void *dummy) { php_irconn_t *conn = dummy; - static smart_str m; + smart_str m = {0}; - m.len = 0; format_msg(MSG(conn, FMT_MSG_WHOIS_USER), host->c, user->c, nick->c, real_name->c, &m); msg_send(conn, &m); @@ -381,9 +373,8 @@ smart_str *server, smart_str *server_info, void *dummy) { php_irconn_t *conn = dummy; - static smart_str m; + smart_str m = {0}; - m.len = 0; format_msg(MSG(conn, FMT_MSG_WHOIS_SERVER), server->c, NULL, nick->c, server_info->c, &m); msg_send(conn, &m); @@ -394,9 +385,8 @@ smart_str *idletime, void *dummy) { php_irconn_t *conn = dummy; - static smart_str m; + smart_str m = {0}; - m.len = 0; format_msg(MSG(conn, FMT_MSG_WHOIS_IDLE), NULL, NULL, nick->c, idletime->c, &m); msg_send(conn, &m); @@ -405,9 +395,8 @@ static void end_of_whois_handler(irconn_t *c, smart_str *nick, void *dummy) { php_irconn_t *conn = dummy; - static smart_str m; + smart_str m = {0}; - m.len = 0; format_msg(MSG(conn, FMT_MSG_WHOIS_END), NULL, NULL, nick->c, NULL, &m); msg_send(conn, &m); } @@ -417,11 +406,9 @@ smart_str *channels, int nr, void *dummy) { php_irconn_t *conn = dummy; - static smart_str m; + smart_str m = {0}; int i; - m.len = 0; - for (i = 0; i < nr; i++) { format_msg(MSG(conn, FMT_MSG_WHOIS_CHANNEL), channels[i].c, NULL, nick->c, NULL, &m); @@ -433,9 +420,8 @@ static void error_handler(irconn_t *ircc, int id, int fatal, smart_str *msg, void *conn_data) { php_irconn_t *conn = conn_data; - static smart_str m; + smart_str m = {0}; - m.len = 0; format_msg(MSG(conn, fatal ? FMT_MSG_FATAL_ERROR : FMT_MSG_ERROR), NULL, ircc->username, "IRC SERVER", msg->c, &m); @@ -447,11 +433,9 @@ { php_irconn_t *conn = dummy; int i; - static smart_str m; + smart_str m = {0}; if (nr > 1) { - m.len = 0; - format_msg(MSG(conn, FMT_MSG_MASS_JOIN_BEGIN), channel, NULL, NULL, "", &m); for (i = 0; i < nr; i++) { @@ -462,7 +446,6 @@ format_msg(MSG(conn, FMT_MSG_MASS_JOIN_END), channel, NULL, NULL, "", &m); } else { - m.len = 0; format_msg(MSG(conn, FMT_MSG_JOIN), channel, NULL, users[0].c, "", &m); format_msg(MSG(conn, FMT_MSG_JOIN_LIST_END), channel, NULL, NULL, @@ -478,15 +461,13 @@ format_msg(MSG(conn, FMT_MSG_TOPIC), channel, NULL, who->c, topic->c, &m); msg_send(conn, &m); - smart_str_free_ex(&m, 1); } static void part_handler(irconn_t *ircc, const char *channel, void *dummy) { php_irconn_t *conn = dummy; - static smart_str m; + smart_str m = {0}; - m.len = 0; format_msg(MSG(conn, FMT_MSG_SELF_PART), channel, NULL, conn->conn.username, "", &m); msg_send(conn, &m); } @@ -498,7 +479,6 @@ format_msg(MSG(conn, FMT_MSG_LEAVE), channel, NULL, user->c, "", &m); msg_send(conn, &m); - smart_str_free_ex(&m, 1); } static void user_quit(irconn_t *ircc, smart_str *user, smart_str *msg, void *dummy) @@ -508,7 +488,6 @@ format_msg(MSG(conn, FMT_MSG_QUIT), NULL, NULL, user->c, msg->c, &m); msg_send(conn, &m); - smart_str_free_ex(&m, 1); } static void user_kick(irconn_t *ircc, const char *channel, smart_str *who, smart_str *kicked_by, smart_str *reason, void *dummy) @@ -518,7 +497,6 @@ format_msg(MSG(conn, FMT_MSG_KICK), channel, who->c, kicked_by->c, reason?reason->c:"", &m); msg_send(conn, &m); - smart_str_free_ex(&m, 1); } static void http_closed_connection(int fd) @@ -884,7 +862,7 @@ irconn_id++; conn->irconn_id = irconn_id; zend_hash_index_update(&h_irconn, irconn_id, &conn, sizeof(conn), NULL); - zend_llist_init(&conn->buffer, sizeof(smart_str), buffer_dtor, 1); + zend_llist_init(&conn->buffer, sizeof(smart_str), NULL, 1); RETVAL_LONG(irconn_id); } @@ -967,7 +945,6 @@ } msg_send(conn, &m); - smart_str_free_ex(&m, 1); RETURN_TRUE; }

« previous php.cvs (#4353) next »