phanto Sat Nov 30 20:17:42 2002 EDT
Modified files:
/php4/sapi/milter php_milter.c
Log:
added remaining functions, still untested, still having problems with config.m4
Index: php4/sapi/milter/php_milter.c
diff -u php4/sapi/milter/php_milter.c:1.1 php4/sapi/milter/php_milter.c:1.2
--- php4/sapi/milter/php_milter.c:1.1 Sat Nov 30 19:21:10 2002
+++ php4/sapi/milter/php_milter.c Sat Nov 30 20:17:42 2002
@@ -139,7 +139,7 @@
params[0] = &host;
- call_user_function(CG(function_table), NULL, function_name, retval, 1, param
TSRMLS_CC);
+ call_user_function(CG(function_table), NULL, function_name, retval, 1, params
+TSRMLS_CC);
if (Z_TYPE_P(retval) == IS_LONG) {
return Z_LONG_P(retval);
@@ -151,7 +151,7 @@
/* envelope sender filter */
static sfsistat mlfi_envfrom(SMFICTX *ctx, char **argv)
{
- zval *function_name, *retval;
+ zval *function_name, *retval, *v, **params[1];
TSRMLS_FETCH();
/* set the milter context for possible use in API functions */
@@ -159,8 +159,19 @@
/* call userland */
ZVAL_INIT(function_name);
+ ZVAL_INIT(v);
+
ZVAL_STRING(function_name, "milter_envelope_from", 1);
- call_user_function(CG(function_table), NULL, function_name, retval, 0, NULL
TSRMLS_CC);
+ array_init(v);
+
+ while (*argv) {
+ add_next_index_string(v, *argv, 1);
+ argv++;
+ }
+
+ params[0] = v;
+
+ call_user_function(CG(function_table), NULL, function_name, retval, 1, params
+TSRMLS_CC);
if (Z_TYPE_P(retval) == IS_LONG) {
return Z_LONG_P(retval);
@@ -172,7 +183,7 @@
/* envelope recipient filter */
static sfsistat mlfi_envrcpt(SMFICTX *ctx, char **argv)
{
- zval *function_name, *retval;
+ zval *function_name, *retval, *v, **params[1];
TSRMLS_FETCH();
/* set the milter context for possible use in API functions */
@@ -180,8 +191,19 @@
/* call userland */
ZVAL_INIT(function_name);
+ ZVAL_INIT(v);
+
ZVAL_STRING(function_name, "milter_envelope_recipient", 1);
- call_user_function(CG(function_table), NULL, function_name, retval, 0, NULL
TSRMLS_CC);
+ array_init(v);
+
+ while (*argv) {
+ add_next_index_string(v, *argv, 1);
+ argv++;
+ }
+
+ params[0] = v;
+
+ call_user_function(CG(function_table), NULL, function_name, retval, 1, params
+TSRMLS_CC);
if (Z_TYPE_P(retval) == IS_LONG) {
return Z_LONG_P(retval);
@@ -193,7 +215,7 @@
/* header filter */
static sfsistat mlfi_header(SMFICTX *ctx, char *headerf, char *headerv)
{
- zval *function_name, *retval;
+ zval *function_name, *retval, *f, *v, **params[2];
TSRMLS_FETCH();
/* set the milter context for possible use in API functions */
@@ -201,8 +223,17 @@
/* call userland */
ZVAL_INIT(function_name);
+ ZVAL_INIT(f);
+ ZVAL_INIT(v);
+
ZVAL_STRING(function_name, "milter_header", 1);
- call_user_function(CG(function_table), NULL, function_name, retval, 0, NULL
TSRMLS_CC);
+ ZVAL_STRING(f, headerf, 1);
+ ZVAL_STRING(v, headerv, 1);
+
+ params[0] = f;
+ params[1] = v;
+
+ call_user_function(CG(function_table), NULL, function_name, retval, 2, params
+TSRMLS_CC);
if (Z_TYPE_P(retval) == IS_LONG) {
return Z_LONG_P(retval);
@@ -235,7 +266,7 @@
/* body block */
static sfsistat mlfi_body(SMFICTX *ctx, u_char *bodyp, size_t len)
{
- zval *function_name, *retval;
+ zval *function_name, *retval, *p, **params[1];;
TSRMLS_FETCH();
/* set the milter context for possible use in API functions */
@@ -243,7 +274,13 @@
/* call userland */
ZVAL_INIT(function_name);
+ ZVAL_INIT(p);
+
ZVAL_STRING(function_name, "milter_body", 1);
+ ZVAL_STRINGL(p, bodyp, len, 1);
+
+ params[0] = p;
+
call_user_function(CG(function_table), NULL, function_name, retval, 0, NULL
TSRMLS_CC);
if (Z_TYPE_P(retval) == IS_LONG) {
@@ -342,37 +379,101 @@
*/
PHP_FUNCTION(smfi_getsymval)
{
- // smfi_getsymval();
+ char *symname, *ret;
+ int len;
+
+ if (zend_parse_parameters(1 TSRMLS_CC, "s", &symname, &len) == SUCCESS) {
+ if ((ret = smfi_getsymval(MG(ctx), symname)) != NULL) {
+ RETVAL_STRING(ret);
+ }
+ }
+
+ RETVAL_NULL();
}
PHP_FUNCTION(smfi_setreply)
{
- // smfi_setreply();
+ char *rcode, *xcode, *message;
+ int len;
+
+ if (zend_parse_parameters(3 TSRMLS_CC, "sss", &rcode, &len, &xcode, &len,
+&message, &len) == SUCCESS) {
+ if (smfi_setreply(MG(ctx), rcode, xcode, message) == MI_SUCCESS) {
+ RETVAL_TRUE();
+ }
+ }
+
+ RETVAL_FALSE();
}
PHP_FUNCTION(smfi_addheader)
{
- // smfi_addheader();
+ char *f, *v;
+ int len;
+
+ if (zend_parse_parameters(2 TSRMLS_CC, "ss", &f, &len, &v, &len) == SUCCESS) {
+ if (smfi_addheader(MG(ctx), f, v) == MI_SUCCESS) {
+ RETVAL_TRUE();
+ }
+ }
+
+ RETVAL_FALSE();
}
PHP_FUNCTION(smfi_chgheader)
{
- // smfi_chgheader();
+ char *f, *v;
+ long idx;
+ int len;
+
+ if (zend_parse_parameters(3 TSRMLS_CC, "sls", &f, &len, &idx, &v, &len) ==
+SUCCESS) {
+ if (smfi_chgheader(MG(ctx), f, idx, v) == MI_SUCCESS) {
+ RETVAL_TRUE();
+ }
+ }
+
+ RETVAL_FALSE();
}
PHP_FUNCTION(smfi_addrcpt)
{
- // smfi_addrcpt();
+ char *rcpt;
+ int len;
+
+ if (zend_parse_parameters(1 TSRMLS_CC, "s", &rcpt, &len) == SUCCESS) {
+ if (smfi_addrcpt(MG(ctx), rcpt) == MI_SUCCESS) {
+ RETVAL_TRUE();
+ }
+ }
+
+ RETVAL_FALSE();
}
PHP_FUNCTION(smfi_delrcpt)
{
- // smfi_delrcpt();
+ char *rcpt;
+ int len;
+
+ if (zend_parse_parameters(1 TSRMLS_CC, "s", &rcpt, &len) == SUCCESS) {
+ if (smfi_delrcpt(MG(ctx), rcpt) == MI_SUCCESS) {
+ RETVAL_TRUE();
+ }
+ }
+
+ RETVAL_FALSE();
}
PHP_FUNCTION(smfi_replacebody)
{
- // smfi_replacebody();
+ char *body;
+ int len;
+
+ if (zend_parse_parameters(1 TSRMLS_CC, "s", &rcpt, &len) == SUCCESS) {
+ if (smfi_replacebody(MG(ctx), body, len) == MI_SUCCESS) {
+ RETVAL_TRUE();
+ }
+ }
+
+ RETVAL_FALSE();
}
PHP_MINIT_FUNCTION(milter)
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php