Firewall-Masquerade avec interface http

crabs_firewall-3.0.1 ©2005-2011 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)

libcgi.a~~ / WWW / CGI / get.cpp
Makefile cgi_var.H cgi_var.cpp cgi.h cgi.cpp env.cpp get.cpp post.cpp post_url.cpp aff.cpp escape_car.cpp
    1 /*
    2 **=============================================================================
    3 ** crabs_firewall-3.0.1 : Firewall-Masquerade avec interface http
    4 ** Copyright (C) 2005-2011 : Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
    5 **
    6 ** Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer
    7 ** et/ou le modifier en respectant les termes de la GNU General Public License
    8 ** version 2 ou (suite a votre propre choix) une version ulterieure.
    9 **
   10 ** Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais
   11 ** sans aucune garantie, meme si il est associe a un produit qui vous en
   12 ** propose une. Conformez-vous a la GNU General Public License pour avoir
   13 ** plus de precisions.
   14 **
   15 ** L'auteur ne peut etre tenu responsable de l'utilisation faite des
   16 ** composantes associees a ce projet (en partie ou dans leur totalite).
   17 **
   18 ** Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC
   19 ** de ce projet sous le nom gnu_gpl.txt
   20 **
   21 **=============================================================================
   22 */
   23 #include <sys/types.h>
   24 #include <string.h>
   25 #include "cgi.h"
   26 #include "cgi_var.H"
   27 // Ici nous faisons un raccourci : on decode QUERY_STRING
   28 // principe
   29 //  recherche les signes = et &
   30 void Cgi::decode_get()
   31     {
   32     //g = new CgiVar ;
   33     const char* qs = env( "QUERY_STRING" ) ;
   34     if ( !qs ) return ;
   35     size_t len = strlen( qs ) ;
   36     char var[1024]; char val[1024]; *var=*val=0 ;
   37     bool in_var = true; bool in_val = false ; size_t j=0 ;
   38     for( size_t i=0; i<len;i++)
   39         {
   40         if ( qs[i] == '=' ) // fin de variable
   41             {
   42             if ( in_var )
   43                 {
   44                 var[j] = 0 ;
   45                 in_val = true; in_var = false; j=0 ;
   46                 continue ;
   47                 }
   48             }
   49         if ( qs[i] == '&' ) // fin de valeur ou de variable
   50             {
   51             if ( in_var )
   52                 var[j] = 0 , *val = 0 ;
   53             else
   54                 val[j] = 0 ;
   55             in_var = true ; in_val = false ; j = 0 ;
   56             if ( !g ) g = new CgiVar ;
   57             escape_caracteres( val ) ; g->ajouter( var, val ) ;
   58             continue ;
   59             }
   60         if ( in_var ) var[j++] = qs[i] ;
   61         if ( in_val ) val[j++] = qs[i] ;
   62         }
   63     if ( *var )
   64         {
   65         if ( in_var ) { var[j] = 0; *val = 0 ; }
   66         if ( in_val ) val[j] = 0 ;
   67         if ( !g ) g = new CgiVar ;
   68         escape_caracteres( val ) ; g->ajouter( var, val ) ;
   69         }
   70     }
   71 
   72 const char* Cgi::get( const char* var )
   73     {
   74     if (g) return g->chercher( var ) ;
   75     return 0 ;
   76     }
   77 
Makefile cgi_var.H cgi_var.cpp cgi.h cgi.cpp env.cpp get.cpp post.cpp post_url.cpp aff.cpp escape_car.cpp
libcgi.a~~ / WWW / CGI / get.cpp

Haut de page

Contacter crabs

Date de génération : 22/09/2011 21:48