vendredi, février 23, 2007

Version Alpha 1

depuis hier : une petite avancé (support partiel du POST)

voici le source :

---- DEBUT ----

proc proxysocket {{port 3128}} {
global serversock
set serversock [socket -server proxyservsetevent $port]
}

proc proxyservsetevent {s i p} {
fconfigure $s -encoding binary
fconfigure $s -translation binary
fconfigure $s -blocking 0
fileevent $s readable "proxyservfirstevent $s"
}


proc proxyservfirstevent {s} {
global in
# on choppe la requette
gets $s in
# test pour chopper la fin
set test [read $s]
# index
set ind [string last "\n" $test]
# on incremente l'index pour ne pas avoir le retour chariot
incr ind 1
# on met la requette post dans une variable
set postquery [string range $test $ind end]
# essai
set l1 [split [lindex [split $in \n] 0] " "]
set command [lindex $l1 0]
set url [lindex $l1 1]
set proto [lindex $l1 2]

# on imprime dans la console tcl
puts "request : $in"
switch $command {
GET {
set h [http::geturl $url -command "proxyfeedpage $s"]
fileevent $s readable "proxyservnextevent $s"
}
POST {
puts "Post value : $postquery"
set h [http::geturl $url -command "proxyfeedpage $s" -query $postquery ]
fileevent $s readable "proxyservnextevent $s"
}
}
}

proc proxyservnextevent {s} {
# set in [read $s]
gets $s in
}

proc proxygeturl {s h} {
}

proc proxyfeedpage {s h} {
puts $s [http::data $h]
flush $s
proxyclosepage $s $h
}

proc proxyclosepage {s h} {
http::cleanup $h
close $s
}


proc proxyinit {} {
package require http
::http::config -useragent "portalmmm/2.0 N500i(c20;TB)"
::http::config -proxyhost 62.201.129.241
::http::config -proxyport 5080
proxysocket 3128

}

console show
proxyinit

---- FIN ----

cependant pour une raison qui m'echappe les appels des midlets plantent (opera mini) pourtant ca appelle bien mon proxy , mais les requettes posts semble etre differentes des requettes standard "variable=valeur&variable2=valeur2" ...

du coup je suis pour le moment dans une impasse , en attendant ce "proxy" est deja une bonne base de developpement

3 commentaires:

Anthony a dit…

Je comprend rien au code mais respet BeBoX pour le défi ;).

Bon courage.

Alain a dit…

Bonjour,
Bravo pour l'initiative.
une question : ce proxy fonctionne-t-il comment le serveur VPN ? Personnellement, je ne peux laisser mon ordinateur allumé 24/7 et je n'ai pas accès à un serveur au bureau.
Donc, est-ce que tu va faire une sorte de lien sur ton portail ?
En clair, comment cela va-t-il marcher en pratique ?
As-tu besoin d'aide de la part de quelqu'un n'y connaissant rien en programmation ?
(J'ai un peu de temps si tu veux faire des tests...)
En tout cas, bon courage!

Cordialement.

Alain

BeBoX a dit…

non, alain
il ne fonctionne pas comme un vpn mais il a pour but d'evityer de changer l'user agent dans les programmes en gros mais dans l'etat actuel il n'est pas tres tres utile.

pour ce qui est du serveur en ligne en effet j'ai toujours besoin de serveurs pour d'autres projets comme:

une radio https (donc accessible en imode)
un "relai" pour apporter les mails depuis une connexion imode (prochain projet a etre mis en place mais j'en parlerais ici bientot vu que j'ai commencé le developpement)

bref oui je suis toujours interessé :) suffit de me contacter par email ou via msn