cvs: php4 /ext/ircg ircg.c

From: Date: Sat, 24 Feb 2001 20:37:20 +0000
Subject: cvs: php4 /ext/ircg ircg.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-4252@lists.php.net to get a copy of this message
sas Sat Feb 24 12:37:20 2001 EDT Modified files: /php4/ext/ircg ircg.c Log: Replace the sixth and seventh parameter of ircg_pconnect() with a connection-detail array. Currently, you can set realname, password, ident. Those information are used during the connection setup process. Index: php4/ext/ircg/ircg.c diff -u php4/ext/ircg/ircg.c:1.35 php4/ext/ircg/ircg.c:1.36 --- php4/ext/ircg/ircg.c:1.35 Sat Feb 24 04:37:18 2001 +++ php4/ext/ircg/ircg.c Sat Feb 24 12:37:19 2001 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ircg.c,v 1.35 2001/02/24 12:37:18 sas Exp $ */ +/* $Id: ircg.c,v 1.36 2001/02/24 20:37:19 sas Exp $ */ #include "php.h" #include "php_ini.h" @@ -87,7 +87,8 @@ irc_write_buf wb; HashTable ctcp_msgs; char *ident; /* NOT available outside of ircg_pconnect or register_hooks */ - char *password; /* NOT available outside of ircg_pconnect or register_hooks */ + char *password; /* dito */ + char *realname; /* dito */ } php_irconn_t; static char *fmt_msgs_default[] = { @@ -597,6 +598,14 @@ smart_str_sets(&m, irconn->password); irc_set_password(conn, &m); } + +#if defined(IRCG_API_VERSION) && IRCG_API_VERSION >= 20010225 + if (irconn->realname) { + smart_str m; + smart_str_sets(&m, irconn->realname); + irc_set_realname(conn, &m); + } +#endif irc_register_hook(conn, IRCG_MSG, msg_handler); irc_register_hook(conn, IRCG_QUIT, quit_handler); @@ -636,26 +645,19 @@ PHP_FUNCTION(ircg_pconnect) { /* This should become an array very soon */ - zval **p1, **p2, **p3, **p4 = NULL, **p5 = NULL, **p6, **p7; + zval **p1, **p2, **p3, **p4 = NULL, **p5 = NULL, **p6; const char *username; const char *server = "0"; - const char *ident = NULL; - const char *password = NULL; int port = 6667; php_fmt_msgs_t *fmt_msgs = NULL; php_irconn_t *conn; - if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 7 - || zend_get_parameters_ex(ZEND_NUM_ARGS(), &p1, &p2, &p3, &p4, &p5, &p6, &p7) == FAILURE) + if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 6 + || zend_get_parameters_ex(ZEND_NUM_ARGS(), &p1, &p2, &p3, &p4, &p5, &p6) == FAILURE) WRONG_PARAM_COUNT; switch (ZEND_NUM_ARGS()) { - case 7: - convert_to_string_ex(p7); - password = Z_STRVAL_PP(p7); case 6: - convert_to_string_ex(p6); - ident = Z_STRVAL_PP(p6); case 5: case 4: convert_to_string_ex(p4); @@ -677,8 +679,28 @@ */ conn = malloc(sizeof(*conn)); conn->fd = -1; - conn->ident = ident; - conn->password = password; + conn->ident = conn->password = conn->realname = NULL; + if (ZEND_NUM_ARGS() > 5 && Z_TYPE_PP(p6) == IS_ARRAY) { + zval **val; + + if (zend_hash_find(Z_ARRVAL_PP(p6), "ident", sizeof("ident"), + (void **) &val) == SUCCESS) { + convert_to_string_ex(val); + conn->ident = Z_STRVAL_PP(val); + } + + if (zend_hash_find(Z_ARRVAL_PP(p6), "password", sizeof("password"), + (void **) &val) == SUCCESS) { + convert_to_string_ex(val); + conn->password = Z_STRVAL_PP(val); + } + + if (zend_hash_find(Z_ARRVAL_PP(p6), "realname", sizeof("realname"), + (void **) &val) == SUCCESS) { + convert_to_string_ex(val); + conn->realname = Z_STRVAL_PP(val); + } + } zend_hash_init(&conn->ctcp_msgs, 10, NULL, NULL, 1); if (irc_connect(username, register_hooks,

« previous php.cvs (#4252) next »