36
3 2.3 编写 I CGI 处理函数
CGI 处理函数需要完成对 CGI 参数的处理,控制插件程序完成用户请求的操
作,最后返回操作结果。
CGI 处理程序的原型是:
typedef int (*IGD_CGI_HANDLER)(struct httpd * hp, struct httpform * form,
char** filetext);
第一个参数:不再使用
第二个参数定义是:
struct httpform {
node* head; /* 参数链表头 */
structin_addr user_ip; /* 用户的地址*/
};
其中 node定义为:
typedef struct _node
{
entrytype entry; /* 其中一个参数 */
struct _node* next; /* 下一个参数 */
} node;
typedef struct
{
char *name; /* 请求参数名称 */
char *value; /* 参数的值 */
} entrytype;
第三个参数:不再使用
返回值:FP_OK:成功
FP_ERR:失败
♦取得 CGI 参数
通过函数的第二个参数,可以取得客户的 IP 地址和CGI 参数。开发者
可以调用 get_form_value 函数来取得某一个参数的值:
char * get_form_value(struct httpform * form, char* name)
/* form [in]: CGI 函数的第二个参数
name[in]: 需要获取的参数名称
RETURN: 指向参数值的指针,返回 NULL 为未找到相应参数 */