Attualmente sto lottando con un piccolo problema:
Voglio creare il binding FastCGI/CGI per lo nekoVM. Questo viene fatto scrivendo un codice Cue C++ che viene caricato dalla VM. Voglio rendere il comportamento del mio binding il più compatibile possibile con l'API neko native (mod_neko, mod_tora). Con mod_neko è possibile ottenere tutte le intestazioni HTTP inviate dal client.
Per quanto ne so, è possibile ottenere intestazioni HTTP con FastCGI solo chiamando getenv('header_name')
. Per utilizzare questa funzione è necessario conoscere il nome di tutte le intestazioni.Ottieni tutte le intestazioni client in FastCGI (C/C++)
La mia domanda: C'è qualche possibilità di ottenere tutte le intestazioni inviate dal client?
Attenzione che "Più campi di intestazione messaggio con lo stesso nome-campo POSSONO essere presenti in un messaggio se e solo se l'intero campo-valore per quel campo di intestazione è definito come un elenco separato da virgole [cioè, # (valori)]." (vedi [RFC2616] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2)). Quindi dovresti usare [std :: unordered_multimap] (http://en.cppreference.com/w/cpp/container/unordered_multimap), come [std :: map] (http://en.cppreference.com/w/ le chiavi cpp/container/map) sono uniche. – Phidelux