sas Wed Mar 7 12:45:02 2001 EDT
Modified files:
/php4/ext/ircg ircg.c
Log:
Move binary compat check to the module init function;
Add initial support for channel modes.
Index: php4/ext/ircg/ircg.c
diff -u php4/ext/ircg/ircg.c:1.45 php4/ext/ircg/ircg.c:1.46
--- php4/ext/ircg/ircg.c:1.45 Wed Mar 7 12:24:28 2001
+++ php4/ext/ircg/ircg.c Wed Mar 7 12:45:02 2001
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ircg.c,v 1.45 2001/03/07 20:24:28 sas Exp $ */
+/* $Id: ircg.c,v 1.46 2001/03/07 20:45:02 sas Exp $ */
#include "php.h"
#include "php_ini.h"
@@ -64,6 +64,8 @@
FMT_MSG_WHOIS_IDLE,
FMT_MSG_WHOIS_CHANNEL,
FMT_MSG_WHOIS_END,
+ FMT_MSG_MODE_VOICE,
+ FMT_MSG_MODE_OP,
NO_FMTS
};
@@ -518,6 +520,32 @@
msg_send(conn, &m);
}
+#if IRCG_API_VERSION >= 20010307
+static void mode_channel_handler(irconn_t *ircc, smart_str *nick,
+ smart_str *channel, smart_str *who, int mode, int give, void *dummy,
+ void *dummy2)
+{
+ php_irconn_t *conn = dummy;
+ smart_str m = {0};
+ smart_str what;
+
+ if (give)
+ smart_str_setl(&what, "1", 1);
+ else
+ smart_str_setl(&what, "0", 1);
+
+ if (mode & IRCG_MODE_VOICE) {
+ format_msg(MSG(conn, FMT_MSG_MODE_VOICE), channel, nick, who, &what,
+ &m);
+ msg_send(conn, &m);
+ }
+ if (mode & IRCG_MODE_OP) {
+ format_msg(MSG(conn, FMT_MSG_MODE_OP), channel, nick, who, &what, &m);
+ msg_send(conn, &m);
+ }
+}
+#endif
+
static void http_closed_connection(int fd)
{
int *id, stored_id;
@@ -741,15 +769,6 @@
static void register_hooks(irconn_t *conn, void *dummy)
{
php_irconn_t *irconn = dummy;
-
-#if IRCG_API_VERSION >= 20010307
- if (irc_sizeof_irconn() != sizeof(irconn_t)) {
- printf("FATAL: The size of the irconn_t structure has grown "
- "since you compiled PHP. Please rebuild PHP against "
- "the correct IRCG header files.\n");
- exit(1);
- }
-#endif
if (irconn->ident) {
smart_str m;
@@ -792,6 +811,10 @@
irc_register_hook(conn, IRCG_WHOISCHANNELS, whois_channels_handler);
irc_register_hook(conn, IRCG_ENDOFWHOIS, end_of_whois_handler);
#endif
+
+#if IRCG_API_VERSION >= 20010307
+ irc_register_hook(conn, IRCG_MODE_CHANNEL, mode_channel_handler);
+#endif
}
static int ircg_copy_ctcp_msgs(zval **array, php_irconn_t *conn)
@@ -1000,6 +1023,15 @@
/* Remove comments if you have entries in php.ini
REGISTER_INI_ENTRIES();
*/
+
+#if IRCG_API_VERSION >= 20010307
+ if (irc_sizeof_irconn() != sizeof(irconn_t)) {
+ printf("FATAL: The size of the irconn_t structure has grown "
+ "since you compiled PHP. Please rebuild PHP against "
+ "the correct IRCG header files.\n");
+ exit(1);
+ }
+#endif
zend_hash_init(&h_fmt_msgs, 0, NULL, fmt_msgs_dtor, 1);
zend_hash_init(&h_fd2irconn, 0, NULL, NULL, 1);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]