Bonjour,

C'est bien la première fois que je poste sur un forum pour avoir de l'aide, surtout en C, mais la je sèche, et je suis sur que la réponse est evidente et que je dois passer à coter de la réponse.. Seulement au bout de 2 jours de googleing, changements des mots clés dans tous les sens, je trouve pas!!

Voici mon problème:
j'ai un cgi en C, qui envoie un fichier (a télécharger, ou en streaming)

Le soucis se situe sur les reprises de téléchargement, ou le client envoie dans les entetes le champ "Range"

Je vois bien la demande client faite dans les logs du serveur (lighthttpd), mais je n'arrive pas a récupérer cet entente.

Plus généralement, je n'arrive pas du tout a récupérer les entetes envoyez par le client.

Je précise que le content-length est bien sur de 0, donc ce que je cherche c'est à récuperer le resultat brut envoyé par le client, afin de pouvoir parser cette fameuse ligne indispensable pour moi.

En clair dans une requete http, on à:
HEAD\r\n
\r\n
les données

dans mon cas, je dois avoir:
GET /url/fichier_en_question\r\n
Host: host.domain.com\r\n
User-Agent: ...\r\n
.....\r\n
....\r\n
...\r\n
Range: bytes=11584935-739954865\r\n
\r\n


donc moi j'ai besoin de recuperer cette partie la, qui n'est pas récupérable via les getenv

Et vu dans le sens ou je dois le récuperer, je peux pas faire une ouverture de socket sur le client, comme on le fait par exemple pour avoir des informations sur un fichier présent sur un serveur distant, vu que c'est moi qui suit le serveur!!

Donc en résumé:
Le client (firefox) envoie une demande à mon serveur pour prendre un fichier, de l'octet X à Y
Le serveur affiche dans les logs (debug) la demande dans les entetes via Range
Mon script, a part choper ce qui est dans getenv, arrive pas a choper les entetes pour resortir ma fameuse ligne Range


Une idée?


réponse: le problème venait pas du C