Il Tue, 13 Dec 2011 02:22:23 +0100, Flavio Bosio ha scritto:
> Il problema è che se anziché il suddetto script utilizzo openssl per
> qualche motivo che al momento non comprendo si impalla dopo l'invio
> dell'header come se aspettasse una risposta dal server (che in genere
> può essere una stringa tipo HTTP/1.0 200 OK) ma dato che la
> comunicazione tra client e server è stata sniffata con tcpdump e non
> presenta nessuna risposta tra l'invio dell'header ed il body del file
> che si fa?
Parto dalla tua conclusione.
Si fa che si parla del problema che, se non è lato client, è lato server
(che non hai descritto, mi pare).
Che cosa usi lato server ?
L'hai scritto tu o è un prodotto di pubblico dominio ?
Perchè se l'hai scritto tu, allora sono tutti "ricchi cazzi tuoi" e senza
esempi è difficile aiutarti.
Se è un prodotto di pubblico dominio o un server HTTP tradizionale
dovresti studiare.
> print $server "POST / HTTP/1.0\n";
> print $server "Content-Type: application/ocsp-request\n"; print $server
> "Content-Length: 105\n"; print $server "\r\n";
Devi *Sempre* usare, da specifica HTTP, \r\n come "a capo".
Non devi usarlo solo per il terminatore degli headers.
> open FILE, "<req.pem" or die "Can't open: $!";
> binmode FILE;
> while (<FILE>) {
> print $server $_;
> }
> close FILE;
>
> close($server);
Qui non si capisce cosa stai facendo.
>
> ===============
>
> lato server vedo correttamente come ci si aspetterebbe
>
> POST / HTTP/1.0
> Content-Type: application/ocsp-request Content-Length: 105
>
> MGcwZTA+MDwwOjAJBgUrDgMCGgUABBT58QaHJAzeUXAn9g6XtGiy2IsVuQQUcVGA
> mhc0nIWGagB2xD/OqnMd9xECAQOiIzAhMB8GCSsGAQUFBzABAgQSBBD9AtP24ybs
> eYRCb8ilwDV4
Qui invece si capisce che non stai facendo correttamente.
Come ti era stato segnalato, il content-length ha una sua importanza,
altrimenti non ci sarebbe.
DEVI e sottolineo DEVI impostarlo pari alla lunghezza del payload che
stai inviando.
*SICURAMENTE* 105 non è corretto come valore perchè stai inviando molti
più dati.
> ovvero l'header che ho inviato seguito dal contenuto del file req.pem,
> ora, che ci sia un *Content-Length* nel mezzo a Perl dubito che importi
> qualcosa, quello serve a me poi, ma per lui è una semplice sequenza di
> caratteri ASCII che invia al server..
Visto che il problema te lo hanno evidenziato e visto che continui a dire
che non ti interessa, il mio consiglio è di andarti a studiare qualche RFC
giusto perchè procedere a tastoni di solito fa perdere tempo.
Poi se usi il tuo di server, allora il discorso, come ti ho detto, cambia.
Ed in particolare:
- se usi come trasporto il protocollo HTTP, allora studiatelo ed
implementalo correttamente
- se usi come trasporto qualcosa di tua invenzione che è simile all'http,
allora senza capire cosa vuoi fare c'è poco da aiutarti.
Ah, dimenticavo.
icol.sys può non essere il NG Adatto.
Qualcosa sul perl o sulla programmazione lo è di più.