That's unacceptable. you cannot patch a generated swig file. you need to learn what function in php gives you the raw file descriptor number from your socket and pass that to the constructor as required. The whole time your problem is that you don't know how to do this in PHP so you should stop looking in the code and just find the php method of a socket object to product the real file descriptor. On Fri, Jun 18, 2010 at 11:36 AM, Samuel Macedo <macedoslm@gmail.com> wrote:
Helmut,
I've applied the patch and it's working well. Thanks for your help.
Regards, -- Samuel Macedo
On 18 June 2010 13:07, Samuel Macedo <macedoslm@gmail.com> wrote:
Hi Helmut,
Thanks for the patch. I'll try it.
Regards, -- Samuel Macedo
On 18 June 2010 12:42, Helmut Kuper <helmut.kuper@ewetel.de> wrote:
Hello,
I found a solution which seems to works for me so far. At least I can use esl-phpmod now.
Problem is, that php's socket_accept() functions returns a resource instead of a file descriptor. So esl-phpmod has to find out the corresponding file descriptor before "new ESLconnection()" is called.
Here my svn diff for the FS ESL developer to get it reviewed:
Index: php/esl_wrap.cpp =================================================================== --- php/esl_wrap.cpp (Revision 17782) +++ php/esl_wrap.cpp (Arbeitskopie) @@ -1793,7 +1793,7 @@
ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection__SWIG_2) { - int arg1 ; + int arg1, type, *p; ESLconnection *result = 0 ; zval **args[1];
@@ -1806,6 +1806,12 @@ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/ convert_to_long_ex(args[0]); arg1 = (int) Z_LVAL_PP(args[0]); + //Find the needed numeric file descriptor + //First get the Resource object + p=(int*)zend_list_find(arg1, &type); + if (!p) goto fail; + //Second, get the file descriptor + arg1 = *p; /*@SWIG@*/;
result = (ESLconnection *)new ESLconnection(arg1); @@ -1825,9 +1831,7 @@ argc = ZEND_NUM_ARGS(); zend_get_parameters_array_ex(argc,argv); if (argc == 1) { - int _v; - _v = (Z_TYPE_PP(argv[0]) == IS_LONG); - if (_v) { + if (Z_TYPE_PP(argv[0]) == IS_RESOURCE) { return _wrap_new_ESLconnection__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); } }
regards Helmut
On 17.06.2010 09:55, Helmut Kuper wrote:
Hi,
a bit success now. When I use this command:
$con = new ESLconnection(intval($csock));
I got an ESLconnection object, but it is not usable. var_dump($con) shows
object(ESLconnection)#1 (1) { ["_cPtr"]=> resource(7) of type (_p_ESLconnection) }
which looks good to me, but strace still shows "Bad file descriptor":
setsockopt(6, SOL_TCP, TCP_NODELAY, [1], 4) = -1 EBADF (Bad file descriptor) sendto(6, "connect\n\n", 9, 0, NULL, 0) = -1 EBADF (Bad file descriptor)
Calling $con->getINFO() results in NULL ...
regards Helmut
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE: http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
--
Mit freundlichen Grüßen Helmut Kuper Geschäftseinheit FD - Lösungen für Finanzdienstleister Telefax: (0441) 8000-2799 mailto:helmut.kuper@ewetel.de ___________________________________ EWE TEL GmbH Cloppenburger Straße 310 26133 Oldenburg EWE TEL GmbH
Handelsregister Amtsgericht Oldenburg HRB 3723 Vorsitzender des Aufsichtsrates: Dr. Werner Brinker Geschäftsführung: Hans-Joachim Iken (Vorsitzender), Ulf Heggenberger, Dr. Norbert Schulz, Dirk Thole Homepage: http://www.ewetel.de ___________________________________
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:+19193869900