Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

C vers PHP

0 views
Skip to first unread message

nORKy

unread,
Jun 26, 2008, 7:27:37 AM6/26/08
to
Bonjour,

Je voudrais faire une passerelle C vers PHP. Pour réaliser un module
pour freeRadius.
savez-vous comment faire ? Ou trouver une doc ?
Ce que je voudrais faire précisément, c'est, depuis mon code C,
charger un fichier contenant une classe X, et pouvoir appelé une
fonction de cette classe.

Merci

Mickael Wolff

unread,
Jun 26, 2008, 11:27:34 AM6/26/08
to
nORKy a écrit :

> Je voudrais faire une passerelle C vers PHP. Pour réaliser un module
> pour freeRadius.
> savez-vous comment faire ? Ou trouver une doc ?

Il faut regarder dans le source de PHP. Regardes comment le module
DOMDocument est fait, ça te donneras une bonne idée de ce que tu peux faire.

> Ce que je voudrais faire précisément, c'est, depuis mon code C,
> charger un fichier contenant une classe X, et pouvoir appelé une
> fonction de cette classe.

Tu veux aussi accéder à des fonctionnalités de PHP dans ton module C,
c'est ça ?

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

nORKy

unread,
Jun 27, 2008, 8:25:59 AM6/27/08
to

On peut dire ca.
En fait, j'ai une application PHP/Mysql.
J'ajoute à ce projet un FreeRadius/802.1x.
Le but est de pouvoir utiliser des routines PHP (que j'ai codé moi et
utilise déjà dans mon application PHP) pour identifier et autorisés
des utilisateurs s'identifiant en 802.1x à travers un freeRadius.

Donc, tant qu'a faire, j'aurais voulu codé un module pour freeradius
'générique'.
J'aimerais donc en C :
- Chargé un fichier .php (une sorte de include PHP)
- appelé une fonction d'une classe (qui a été chargé par le fichier au
point précédant).
- et récupérer biensur la valeur de retour de la fonction

Antoine Polatouche

unread,
Jun 27, 2008, 12:18:26 PM6/27/08
to
nORKy a écrit :

> En fait, j'ai une application PHP/Mysql.
> J'ajoute à ce projet un FreeRadius/802.1x.
> Le but est de pouvoir utiliser des routines PHP (que j'ai codé moi et
> utilise déjà dans mon application PHP) pour identifier et autorisés
> des utilisateurs s'identifiant en 802.1x à travers un freeRadius.
>
> Donc, tant qu'a faire, j'aurais voulu codé un module pour freeradius
> 'générique'.
> J'aimerais donc en C :
> - Chargé un fichier .php (une sorte de include PHP)
> - appelé une fonction d'une classe (qui a été chargé par le fichier au
> point précédant).
> - et récupérer biensur la valeur de retour de la fonction

Et executer un script php depuis le code C en lançant php.exe ou en
utilisant un serveur http local, tu n'as pas la possibilité ?

nORKy

unread,
Jun 30, 2008, 10:52:00 AM6/30/08
to


Si, c'est possible.
Mais justement, le but était de ne pas faire un appel système à une
fonction de type execv..

Antoine Polatouche

unread,
Jul 1, 2008, 4:08:37 AM7/1/08
to
nORKy a écrit :

Avec un serveur local, il n'y a pas besoin de faire un appel à execv,
juste ouvrir une URL servie par un script php...

Mickael Wolff

unread,
Jul 1, 2008, 6:20:48 AM7/1/08
to
Antoine Polatouche a écrit :

> Avec un serveur local, il n'y a pas besoin de faire un appel à execv,
> juste ouvrir une URL servie par un script php...

C'est tout de suite plus léger, effectivement. </ironie>

nORKy

unread,
Jul 1, 2008, 9:49:24 AM7/1/08
to

euh oui... je fais du C unix.
Pour ouvrir une url, il faut faire des sockets.
Mais si c'est pour faire ca, autant faire un execv (comme le souligne
l'ironie de Mickel)

Bruno Baguette

unread,
Jul 1, 2008, 6:11:17 PM7/1/08
to
nORKy a écrit :

Bonjour !

J'ai du me documenter (en vitesse) récemment pour un client qui a un
projet de ce genre dans l'air, mais dans le sens inverse : Une GUI PHP
pour exécuter certaines opérations sur une application C tournant sur un
mainframe.

J'étais tombé là dessus : <http://gsoap2.sourceforge.net/>

Le site a l'air assez vieux, mais la documentation est (je viens d'y
retourner) mise à jour assez régulièrement.

En espérant que ca aide ! :-)

--
Bruno Baguette

Antoine Polatouche

unread,
Jul 2, 2008, 9:16:08 AM7/2/08
to
nORKy a écrit :

> euh oui... je fais du C unix.
> Pour ouvrir une url, il faut faire des sockets.
> Mais si c'est pour faire ca, autant faire un execv (comme le souligne
> l'ironie de Mickel)

Tout à fait d'accord avec ça, mais c'est toi qui disais:


> Mais justement, le but était de ne pas faire un appel système à une
> fonction de type execv..

Si le "but" change, les réponses doivent changer également ;-)

Pour conclure, si tu peux faire des execv, c'est très certainement la
solution la plus simple!

BertrandB

unread,
Jul 8, 2008, 4:52:18 PM7/8/08
to
nORKy a écrit :

> euh oui... je fais du C unix.
> Pour ouvrir une url, il faut faire des sockets.
> Mais si c'est pour faire ca, autant faire un execv (comme le souligne
> l'ironie de Mickel)

avec libcurl on peut éviter cette complexité.

Mickael Wolff

unread,
Jul 9, 2008, 5:50:01 AM7/9/08
to
BertrandB a écrit :

> avec libcurl on peut éviter cette complexité.

Le problème n'est pas la « compléxité » des sockets, mais bien leur
usage pour faire des appels réseaux alors que le but du jeu est de faire
des appels de fonction.

Mais au final, le mieux à faire est certainement de créer un module de
FreeRadius pour PHP. D'ailleurs, c'est à mon avis le but initial du
thread. Mais vu que n0Rky a débarqué en croyant que tout le monde sait
ce qu'est FreeRadius, on ne peut pas se comprendre.

Avec tout ça, je n'ai toujours pas compris à quoi servait FreeRadius,
malgré la RFC glanée au gré de mes recherches :-D
<http://abcdrfc.free.fr/rfc-vf/rfc2865.html> Bon, je ne suis pas si
bête, j'ai compris que c'était pour faire d el'authentification
centralisée, mais bon, quand même.

0 new messages