Discussion:
C vers PHP
(trop ancien pour répondre)
nORKy
2008-06-26 11:27:37 UTC
Permalink
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
2008-06-26 15:27:34 UTC
Permalink
Post by nORKy
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.
Post by nORKy
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
2008-06-27 12:25:59 UTC
Permalink
Post by nORKy
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.
Post by nORKy
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 Michaelishttp://lupusmic.org
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
2008-06-27 16:18:26 UTC
Permalink
Post by nORKy
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'.
- 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
2008-06-30 14:52:00 UTC
Permalink
Post by Antoine Polatouche
Post by nORKy
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'.
- 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é ?
Si, c'est possible.
Mais justement, le but était de ne pas faire un appel système à une
fonction de type execv..
Antoine Polatouche
2008-07-01 08:08:37 UTC
Permalink
Post by nORKy
Post by Antoine Polatouche
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é ?
Si, c'est possible.
Mais justement, le but était de ne pas faire un appel système à une
fonction de type execv..
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
2008-07-01 10:20:48 UTC
Permalink
Post by Antoine Polatouche
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>
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
nORKy
2008-07-01 13:49:24 UTC
Permalink
Post by Antoine Polatouche
Post by nORKy
Post by Antoine Polatouche
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é ?
Si, c'est possible.
Mais justement, le but était de ne pas faire un appel système à une
fonction de type execv..
Avec un serveur local, il n'y a pas besoin de faire un appel à execv,
juste ouvrir une URL servie par un script php...
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)
Antoine Polatouche
2008-07-02 13:16:08 UTC
Permalink
Post by nORKy
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)
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
2008-07-08 20:52:18 UTC
Permalink
Post by nORKy
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
2008-07-09 09:50:01 UTC
Permalink
Post by BertrandB
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.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Bruno Baguette
2008-07-01 22:11:17 UTC
Permalink
Post by nORKy
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
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
Continuer la lecture sur narkive:
Loading...