david Sun Jan 14 00:54:00 2001 EDT Added files: /php4/ext/vpopmail .cvsignore CREDITS Makefile.in config.m4 php_vpopmail.c php_vpopmail.h Log: vpopmail extension
Index: php4/ext/vpopmail/.cvsignore +++ php4/ext/vpopmail/.cvsignore Makefile *.lo *.la libs deps libs.mk Index: php4/ext/vpopmail/Makefile.in +++ php4/ext/vpopmail/Makefile.in # $Id: Makefile.in,v 1.1 2001/01/14 08:54:00 david Exp $ LTLIBRARY_NAME = libvpopmail.la LTLIBRARY_SOURCES = php_vpopmail.c LTLIBRARY_SHARED_NAME = vpopmail.la LTLIBRARY_SHARED_LIBADD = $(VPOPMAIL_SHARED_LIBADD) include $(top_srcdir)/build/dynlib.mk Index: php4/ext/vpopmail/config.m4 +++ php4/ext/vpopmail/config.m4 dnl $Id: config.m4,v 1.1 2001/01/14 08:54:00 david Exp $ dnl config.m4 for extension vpopmail PHP_ARG_WITH(vpopmail, whether to include vpopmail support, [ --with-vpopmail[=DIR] Include vpopmail support]) if test "$PHP_VPOPMAIL" != "no"; then for i in /home/vpopmail /home/popmail /var/qmail/vpopmail /var/qmail/popmail $PHP_VPOPMAIL; do if test -r $i/vpopmail.h; then VPOPMAIL_INC_DIR=$i elif test -r $i/include/vpopmail.h; then VPOPMAIL_INC_DIR=$i/include fi if test -r $i/libvpopmail.a; then VPOPMAIL_LIB_DIR=$i elif test -r $i/lib/libvpopmail.a; then VPOPMAIL_LIB_DIR=$i/lib fi done if test -z "$VPOPMAIL_INC_DIR"; then AC_MSG_ERROR(Could not find vpopmail.h. Please make sure you have vpopmail installed. Use ./configure --with-vpopmail=<vpopmail-home-dir> if necessary) fi if test -z "$VPOPMAIL_LIB_DIR"; then AC_MSG_ERROR(Could not find libvpopmail.a. Please make sure you have vpopmail installed. Use ./configure --with-vpopmail=<vpopmail-home-dir> if necessary) fi AC_MSG_RESULT(found in $VPOPMAIL_LIB_DIR) AC_ADD_INCLUDE($VPOPMAIL_INC_DIR) PHP_SUBST(VPOPMAIL_SHARED_LIBADD) AC_ADD_LIBRARY_WITH_PATH(vpopmail, $VPOPMAIL_LIB_DIR, VPOPMAIL_SHARED_LIBADD) AC_DEFINE(HAVE_VPOPMAIL, 1, [ ]) PHP_EXTENSION(vpopmail, $ext_shared) fi Index: php4/ext/vpopmail/php_vpopmail.c +++ php4/ext/vpopmail/php_vpopmail.c /* +----------------------------------------------------------------------+ | PHP version 4.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [EMAIL PROTECTED] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: David Croft <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ /* $Id: php_vpopmail.c,v 1.1 2001/01/14 08:54:00 david Exp $ */ #include "php.h" #include "php_ini.h" #include "php_vpopmail.h" #include "vpopmail.h" #include "ext/standard/php_string.h" #ifdef ZTS int vpopmail_globals_id; #else php_vpopmail_globals vpopmail_globals; #endif /* Function table */ function_entry vpopmail_functions[] = { PHP_FE(vpopmail_auth_user, NULL) PHP_FE(vpopmail_adddomain, NULL) PHP_FE(vpopmail_deldomain, NULL) PHP_FE(vpopmail_adduser, NULL) PHP_FE(vpopmail_deluser, NULL) PHP_FE(vpopmail_passwd, NULL) PHP_FE(vpopmail_setuserquota, NULL) {NULL, NULL, NULL} }; zend_module_entry vpopmail_module_entry = { "vpopmail", vpopmail_functions, PHP_MINIT(vpopmail), PHP_MSHUTDOWN(vpopmail), NULL, NULL, PHP_MINFO(vpopmail), STANDARD_MODULE_PROPERTIES }; #ifdef COMPILE_DL_VPOPMAIL ZEND_GET_MODULE(vpopmail) #endif PHP_INI_BEGIN() /* STD_PHP_INI_ENTRY("pfpro.proxypassword", "", PHP_INI_ALL, OnUpdateString, proxypassword, php_pfpro_globals, pfpro_globals) */ PHP_INI_END() PHP_MINIT_FUNCTION(vpopmail) { REGISTER_INI_ENTRIES(); return SUCCESS; } PHP_MSHUTDOWN_FUNCTION(vpopmail) { UNREGISTER_INI_ENTRIES(); return SUCCESS; } PHP_MINFO_FUNCTION(vpopmail) { php_info_print_table_start(); php_info_print_table_header(2, "vpopmail support", "enabled"); /* php_info_print_table_row(2, "vpopmail version", "Who knows"); */ php_info_print_table_end(); DISPLAY_INI_ENTRIES(); } /* {{{ proto void vpopmail_adddomain($domain, $dir, $uid, $gid) Add a new virtual domain */ PHP_FUNCTION(vpopmail_adddomain) { zval **domain; zval **dir; zval **uid; zval **gid; int retval; if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &domain, &dir, &uid, &gid) == FAILURE) WRONG_PARAM_COUNT; convert_to_string_ex(domain); convert_to_string_ex(dir); convert_to_long_ex(uid); convert_to_long_ex(gid); retval = vadddomain(Z_STRVAL_PP(domain), /* Z_STRVAL_PP(dir), Z_LVAL_PP(uid), */ Z_LVAL_PP(gid)); if (retval == VA_SUCCESS) { RETURN_TRUE; } else { php_error(E_WARNING, "vpopmail error: %s", verror(retval)); RETURN_FALSE; } } /* }}} */ /* {{{ proto void vpopmail_deldomain($domain) Delete a virtual domain */ PHP_FUNCTION(vpopmail_deldomain) { zval **domain; int retval; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &domain) == FAILURE) WRONG_PARAM_COUNT; convert_to_string_ex(domain); retval = vdeldomain(Z_STRVAL_PP(domain)); if (retval == VA_SUCCESS) { RETURN_TRUE; } else { php_error(E_WARNING, "vpopmail error: %s", verror(retval)); RETURN_FALSE; } } /* }}} */ /* {{{ proto void vpopmail_adduser($user, $domain, $password[, $gecos[, $apop]]) Add a new user to the specified virtual domain */ PHP_FUNCTION(vpopmail_adduser) { zval **user; zval **domain; zval **password; zval **gecos; zval **apop; int is_apop = 0; char *the_gecos = ""; int retval; if (ZEND_NUM_ARGS() < 3 || ZEND_NUM_ARGS() > 5 || zend_get_parameters_ex(ZEND_NUM_ARGS(), &user, &domain, &password, &gecos, &apop) == FAILURE) WRONG_PARAM_COUNT; switch (ZEND_NUM_ARGS()) { case 5: convert_to_boolean_ex(apop); is_apop = (Z_BVAL_PP(apop) ? 1 : 0); /* fall through */ case 4: convert_to_string_ex(gecos); the_gecos = Z_STRVAL_PP(gecos); /* fall through */ default: convert_to_string_ex(user); convert_to_string_ex(domain); convert_to_string_ex(password); } retval = vadduser(Z_STRVAL_PP(user), Z_STRVAL_PP(domain), Z_STRVAL_PP(password), the_gecos, is_apop); if (retval == VA_SUCCESS) { RETURN_TRUE; } else { php_error(E_WARNING, "vpopmail error: %s", verror(retval)); RETURN_FALSE; } } /* }}} */ /* {{{ proto void vpopmail_deluser($user, $domain) Delete a user from a virtual domain */ PHP_FUNCTION(vpopmail_deluser) { zval **user; zval **domain; int retval; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &user, &domain) == FAILURE) WRONG_PARAM_COUNT; convert_to_string_ex(user); convert_to_string_ex(domain); retval = vdeluser(Z_STRVAL_PP(user), Z_STRVAL_PP(domain)); if (retval == VA_SUCCESS) { RETURN_TRUE; } else { php_error(E_WARNING, "vpopmail error: %s", verror(retval)); RETURN_FALSE; } } /* }}} */ /* {{{ proto void vpopmail_passwd($user, $domain, $password) Change a virtual user's password */ PHP_FUNCTION(vpopmail_passwd) { zval **user; zval **domain; zval **password; zval **apop; int is_apop = 0; int retval; if (ZEND_NUM_ARGS() < 3 || ZEND_NUM_ARGS() > 4 || zend_get_parameters_ex(ZEND_NUM_ARGS(), &user, &domain, &password, &apop) == FAILURE) WRONG_PARAM_COUNT; if (ZEND_NUM_ARGS() > 3) { convert_to_boolean_ex(apop); is_apop = (Z_BVAL_PP(apop) ? 1 : 0); } convert_to_string_ex(user); convert_to_string_ex(domain); convert_to_string_ex(password); retval = vpasswd(Z_STRVAL_PP(user), Z_STRVAL_PP(domain), Z_STRVAL_PP(password), is_apop); if (retval == VA_SUCCESS) { RETURN_TRUE; } else { php_error(E_WARNING, "vpopmail error: %s", verror(retval)); RETURN_FALSE; } } /* }}} */ /* {{{ proto void vpopmail_setuserquota($user, $domain, $quota) Sets a virtual user's quota */ PHP_FUNCTION(vpopmail_setuserquota) { zval **user; zval **domain; zval **quota; int retval; if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &user, &domain, "a) == FAILURE) WRONG_PARAM_COUNT; convert_to_string_ex(user); convert_to_string_ex(domain); convert_to_string_ex(quota); retval = vsetuserquota(Z_STRVAL_PP(user), Z_STRVAL_PP(domain), Z_STRVAL_PP(quota)); if (retval == VA_SUCCESS) { RETURN_TRUE; } else { php_error(E_WARNING, "vpopmail error: %s", verror(retval)); RETURN_FALSE; } } /* }}} */ /* {{{ proto void vpopmail_auth_user($user, $domain, $password) Attempt to validate a username/domain/password. Returns true/false */ PHP_FUNCTION(vpopmail_auth_user) { zval **user; zval **domain; zval **password; struct passwd *retval; if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &user, &domain, &password) == FAILURE) WRONG_PARAM_COUNT; convert_to_string_ex(user); convert_to_string_ex(domain); convert_to_string_ex(password); retval = vauth_user(Z_STRVAL_PP(user), Z_STRVAL_PP(domain), Z_STRVAL_PP(password)); if (retval == NULL) { RETURN_FALSE; } else { RETURN_TRUE; } } /* }}} */ /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: */ Index: php4/ext/vpopmail/php_vpopmail.h +++ php4/ext/vpopmail/php_vpopmail.h /* +----------------------------------------------------------------------+ | PHP version 4.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997, 1998, 1999, 2000 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [EMAIL PROTECTED] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: David Croft <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ /* $Id: php_vpopmail.h,v 1.1 2001/01/14 08:54:00 david Exp $ */ #ifndef PHP_VPOPMAIL_H #define PHP_VPOPMAIL_H #if HAVE_VPOPMAIL extern zend_module_entry vpopmail_module_entry; #define phpext_vpopmail_ptr &vpopmail_module_entry #ifdef PHP_WIN32 #define PHP_VPOPMAIL_API __declspec(dllexport) #else #define PHP_VPOPMAIL_API #endif PHP_MINIT_FUNCTION(vpopmail); PHP_MSHUTDOWN_FUNCTION(vpopmail); PHP_MINFO_FUNCTION(vpopmail); PHP_FUNCTION(vpopmail_adddomain); PHP_FUNCTION(vpopmail_deldomain); PHP_FUNCTION(vpopmail_adduser); PHP_FUNCTION(vpopmail_deluser); PHP_FUNCTION(vpopmail_passwd); PHP_FUNCTION(vpopmail_setuserquota); PHP_FUNCTION(vpopmail_auth_user); typedef struct { int le_vpopmail; int initialised; char *defaulthost; int defaultport; int defaulttimeout; char *proxyaddress; int proxyport; char *proxylogon; char *proxypassword; } php_vpopmail_globals; #ifdef ZTS #define VPOPMAILG(v) (vpopmail_globals->v) #define VPOPMAILLS_FETCH() php_vpopmail_globals *vpopmail_globals = ts_resource(gd_vpopmail_id) #else #define VPOPMAILG(v) (vpopmail_globals.v) #define VPOPMAILLS_FETCH() #endif #else #define phpext_vpopmail_ptr NULL #endif #endif /* PHP_VPOPMAIL_H */ /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: */
-- 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]