[commit] r2621 - freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php
Author: docelmo Date: Sun Sep 10 09:10:06 2006 New Revision: 2621 Modified: freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php/classFreeswitch.php freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php/mod_php.c Log: PHP doesnt crash freeswitch now Modified: freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php/classFreeswitch.php ============================================================================== --- freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php/classFreeswitch.php (original) +++ freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php/classFreeswitch.php Sun Sep 10 09:10:06 2006 @@ -34,11 +34,11 @@ global $sessn; class fs_class_api { function fs_class_api() { - /* if($sessn = $this->fs_getsessn($uuid)){} + if($sessn = $this->fs_getsessn($uuid)){} else{ echo "Couldnt get sessn!\n"; } - */ + } function fs_start() { Modified: freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php/mod_php.c ============================================================================== --- freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php/mod_php.c (original) +++ freeswitch/branches/docelmo/trunk/src/mod/languages/mod_php/mod_php.c Sun Sep 10 09:10:06 2006 @@ -44,8 +44,6 @@ const char modname[] = "mod_php"; - - static void php_function(switch_core_session_t *session, char *data) { char *uuid = switch_core_session_get_uuid(session); @@ -55,28 +53,41 @@ int argc; char *argv[5]; char php_code[1024]; - void*** tsrm_ls = NULL; + //void*** tsrm_ls = NULL; + snprintf(mydata, len, "%s %s", uuid, data); - argc = switch_separate_string(mydata, ' ', - argv, - (sizeof(argv) / sizeof(argv[0]))); - + argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))); + sprintf(php_code, "$uuid=\"%s\"; include(\"%s\");\n", argv[0], argv[1]); - if (php_embed_init(argc, argv, &tsrm_ls) == SUCCESS){ - //PHP_EMBED_START_BLOCK(argc, argv); - if (zend_eval_string(php_code, NULL, "Embedded code" TSRMLS_CC) == SUCCESS){ - //PHP_EMBED_END_BLOCK(); - php_embed_shutdown(tsrm_ls); - }else{ - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "There was a problem with the file"); - } - }else{ - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "There was a problem with the file"); - } + zend_file_handle script; + script.type = ZEND_HANDLE_FP; + script.filename = data; + script.opened_path = NULL; + script.free_filename = 0; + script.handle.fp = fopen(script.filename, "rb"); +// if (php_embed_init(argc, argv, &tsrm_ls) == SUCCESS){ + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Starting Script %s\n",data); + + PHP_EMBED_START_BLOCK(argc, argv); + void*** tsrm_ls = NULL; + //zend_error_cb = myapp_php_error_cb; + zend_execute_scripts(ZEND_REQUIRE TSRMLS_CC, NULL, 1, &script); + //if (zend_execute_scripts(ZEND_REQUIRE TSRMLS_CC, NULL, 1, &script) == SUCCESS) + //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "There was a problem with the file\n"); + PHP_EMBED_END_BLOCK(); + //php_embed_shutdown(tsrm_ls); + + + //}else{ + // switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "There was a problem with the file\n"); + //} + + } static const switch_application_interface_t php_application_interface = { @@ -123,3 +134,5 @@ return SWITCH_STATUS_SUCCESS; } */ + +
participants (1)
-
Freeswitch SVN