sas Sun Nov 17 00:29:18 2002 EDT Modified files: /php4/ext/ircg ircg.c php_ircg.h Log: add invite handling Index: php4/ext/ircg/ircg.c diff -u php4/ext/ircg/ircg.c:1.142 php4/ext/ircg/ircg.c:1.143 --- php4/ext/ircg/ircg.c:1.142 Sat Nov 16 08:51:37 2002 +++ php4/ext/ircg/ircg.c Sun Nov 17 00:29:17 2002 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ircg.c,v 1.142 2002/11/16 13:51:37 sas Exp $ */ +/* $Id: ircg.c,v 1.143 2002/11/17 05:29:17 sas Exp $ */ /* {{{ includes */ @@ -106,6 +106,7 @@ FMT_MSG_WHOREPLY1, FMT_MSG_WHOREPLY2, FMT_MSG_ENDOFWHO, + FMT_MSG_INVITE, NO_FMTS }; /* }}} */ @@ -152,6 +153,9 @@ #if IRCG_API_VERSION >= 20021115 PHP_FE(ircg_who, NULL) #endif +#if IRCG_API_VERSION >= 20021117 + PHP_FE(ircg_invite, NULL) +#endif {NULL, NULL, NULL} /* Must be the last line in ircg_functions[] */ }; /* }}} */ @@ -277,6 +281,7 @@ "Nickname %t has ident %f, realname '%m', hostname %c, ", "is on server %t, has flag %f, hopcount %m, and channel %c.<br />", "end of who<br />", + "%f is inviting %t to %c<br />", }; /* }}} */ @@ -1035,6 +1040,30 @@ #endif +#if IRCG_API_VERSION >= 20021117 + +static void invite_handler(irconn_t *c, smart_str *nick, smart_str *chan, int mode, +void *dummy) +{ + php_irconn_t *conn = dummy; + smart_str m = {0}; + smart_str *from, *to, tmp = {0}; + + smart_str_setl(&tmp, conn->conn.username, conn->conn.username_len); + if (mode == 1) { + from = &tmp; + to = nick; + } else { + from = nick; + to = &tmp; + } + + FORMAT_MSG(conn, FMT_MSG_INVITE, chan, to, from, NULL, &m, + conn->conn.username, conn->conn.username_len); + msg_send(conn, &m); +} + +#endif + /* }}} */ /* {{{ Post-connection error-storage */ @@ -1781,6 +1810,34 @@ #endif /* }}} */ +/* {{{ proto bool ircg_invite(int connection, string channel, string nickname) + INVITEs nickname to channel */ +#if IRCG_API_VERSION >= 20021117 +PHP_FUNCTION(ircg_invite) +{ + zval **p1, **p2, **p3; + php_irconn_t *conn; + + if (ZEND_NUM_ARGS() != 3 + || zend_get_parameters_ex(3, &p1, &p2, &p3) == FAILURE) + WRONG_PARAM_COUNT; + + convert_to_long_ex(p1); + convert_to_string_ex(p2); + convert_to_string_ex(p3); + + conn = lookup_irconn(Z_LVAL_PP(p1)); + + if (!conn) RETURN_FALSE; + + irc_handle_command(&conn->conn, "INVITE", 2, Z_STRVAL_PP(p3), + Z_STRVAL_PP(p2)); + + RETVAL_TRUE; +} +#endif +/* }}} */ + /* {{{ proto bool ircg_kick(int connection, string channel, string nick, string reason) Kicks user from channel */ #if IRCG_API_VERSION - 0 >= 20010226 @@ -1983,6 +2040,10 @@ irc_register_hook(conn, IRCG_WHOREPLY, whoreply_handler); } IFMSG(FMT_MSG_ENDOFWHO, IRCG_ENDOFWHO, endofwho_handler); +#endif + +#if IRCG_API_VERSION >= 20021117 + IFMSG(FMT_MSG_INVITE, IRCG_INVITE, invite_handler); #endif } /* }}} */ Index: php4/ext/ircg/php_ircg.h diff -u php4/ext/ircg/php_ircg.h:1.21 php4/ext/ircg/php_ircg.h:1.22 --- php4/ext/ircg/php_ircg.h:1.21 Sat Nov 16 08:51:37 2002 +++ php4/ext/ircg/php_ircg.h Sun Nov 17 00:29:17 2002 @@ -55,6 +55,7 @@ PHP_FUNCTION(ircg_get_username); PHP_FUNCTION(ircg_eval_ecmascript_params); PHP_FUNCTION(ircg_who); +PHP_FUNCTION(ircg_invite); PHP_MINIT_FUNCTION(ircg); PHP_MSHUTDOWN_FUNCTION(ircg);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php