Keil™, An ARM® Company

RL-ARM User's Guide

Technical Support

On-Line Manuals

RL-ARM User's Guide

RL-RTX
RL-FlashFS
RL-TCPnet
RL-CAN
Example Programs
Library Reference
Data Types
BIT
BOOL
CAN_ERROR
CAN_msg
FILE
S8
S16
S32
S64
U8
U16
U32
U64
Include Files
can_cfg.h
can_error.h
file_config.h
net_config.h
rtl.h
rtx_can.h
rtx_config.h
stdio.h
Reference
_alloc_box
_calloc_box
_declare_box
_declare_box8
_free_box
_init_box
_init_box8
arp_cache_ip
CAN_init
CAN_receive
CAN_request
CAN_rx_object
CAN_send
CAN_set
CAN_start
CAN_tx_object
cgi_func
cgi_process_data
cgi_process_var
com_getchar
com_putchar
com_tx_active
dhcp_disable
fanalyse
fcheck
fclose
fdefrag
fdelete
feof
ferror
ffind
fflush
fformat
ffree
fgetc
fgets
finit
fopen
fprintf
fputc
fputs
fread
frename
fs_EraseSector
fs_get_date
fs_get_time
fs_Init
fs_ProgramPage
fs_spi_EraseSector
fs_spi_Init
fs_spi_ProgramPage
fs_spi_ReadData
fscanf
fseek
ftell
fwrite
get_host_by_name
http_get_info
http_get_lang
http_get_session
http_get_var
igmp_join
igmp_leave
init_ethernet
init_modem
init_serial
init_TcpNet
int_disable_eth
int_enable_eth
interrupt_ethernet
isr_evt_set
isr_mbx_check
isr_mbx_receive
isr_mbx_send
isr_sem_send
main_TcpNet
mci_init
mci_read_config
mci_read_sect
mci_write_sect
modem_dial
modem_hangup
modem_listen
modem_online
modem_process
modem_run
os_dly_wait
os_evt_clr
os_evt_get
os_evt_set
os_evt_wait_and
os_evt_wait_or
os_itv_set
os_itv_wait
os_mbx_check
os_mbx_declare
os_mbx_init
os_mbx_send
os_mbx_wait
os_mut_init
os_mut_release
os_mut_wait
os_sem_init
os_sem_send
os_sem_wait
os_sys_init
os_sys_init_prio
os_sys_init_user
os_tmr_call
os_tmr_create
os_tmr_kill
os_tsk_create
os_tsk_create_ex
os_tsk_create_user
os_tsk_create_user_ex
os_tsk_delete
os_tsk_delete_self
os_tsk_pass
os_tsk_prio
os_tsk_prio_self
os_tsk_self
poll_ethernet
ppp_close
ppp_connect
ppp_is_up
ppp_listen
rewind
send_frame
slip_close
slip_connect
slip_is_up
slip_listen
smtp_cbfunc
smtp_connect
spi_hi_speed
spi_init
spi_send
spi_ss
tcp_abort
tcp_check_send
tcp_close
tcp_connect
tcp_get_buf
tcp_get_socket
tcp_get_state
tcp_listen
tcp_max_dsize
tcp_release_socket
tcp_reset_window
tcp_send
tftp_fclose
tftp_fopen
tftp_fread
tftp_fwrite
timer_tick
tnet_cbfunc
tnet_ccmp
tnet_get_info
tnet_msg_poll
tnet_process_cmd
tnet_set_delay
tsk_lock
tsk_unlock
udp_close
udp_get_buf
udp_get_socket
udp_mcast_ttl
udp_open
udp_release_socket
udp_send
ungetc
Library Files
Appendix

cgi_process_var

Summary 
#include <net_config.h>

void cgi_process_var (
    U8* qs );    /* Pointer to QUERY_STRING returned from the GET method. */
Description 

The cgi_process_var function processes the environmental variable QUERY_STRING that is returned from the CGI form GET method. The HTTP server calls this function when a user presses the SUBMIT button on the input form, using a web browser.

The argument qs points to the QUERY_STRING that is returned from the GET method.

The cgi_process_var function is part of RL-TCPnet. The prototype is defined in net_config.h. You can customize the function in http_cgi.c.

note

  • The querry string qs is terminated by the space character.
  • The HTTP server calls the cgi_process_var function only if the input form, in HTML source, is created with attribute METHOD=GET. For example:
    <FORM ACTION=index.htm METHOD=GET NAME=CGI>
     .
     .
    </FORM>
    
Return Value The cgi_process_var function does not return any value.
See Also cgi_func, cgi_process_data
Example 
void cgi_process_var (U8 *qs) {
   U8 var[40];

   do {
      /* Loop through all the parameters. */
      qs = http_get_var (qs, var, 40);
      /* Check the returned string, 'qs' now points to the next. */
      if (var[0] != 0) {
         /* Returned string is non 0-length. */
         if (str_scomp (var, "ip=") == __TRUE) {
            /* My IP address parameter. */
            sscanf (&var[3], "%bd.%bd.%bd.%bd",&LocM.IpAdr[0],&LocM.IpAdr[1],
                                               &LocM.IpAdr[2],&LocM.IpAdr[3]);
         }
         else if (str_Scomp (var, "msk=") == __TRUE) {
            /* Net mask parameter. */
            sscanf (&var[4], "%bd.%bd.%bd.%bd",&LocM.NetMask[0],&LocM.NetMask[1],
                                               &LocM.NetMask[2],&LocM.NetMask[3]);
         }
         else if (str_scomp (var, "gw=") == __TRUE) {
          .
          .
         }
      }
   }while (qs);
}