wifidog中命令组合代码测试

wifidog中命令组合代码测试,有需要的朋友可以参考下

/*************************************************************************
    > File Name: test.c
    > Author: NULL
    > Mail: 574889524@qq.com
    > Created Time: 2014年11月21日 星期五 20时22分18秒
 ************************************************************************/

#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include<stdio.h>
#define TABLE_WIFIDOG_TRUSTED "WiFiDog_$ID$_Trusted"

int safe_vasprintf(char **strp,const char *fmt,va_list ap)
{
    int retval;
    retval = vasprintf(strp,fmt,ap);
    if(retval == -1){
        printf("FAIL\n");
        exit(-1);
    }
    return retval;
}
int safe_asprintf(char **strp,const char *fmt,...)
{
    va_list ap;
    int retval;
    va_start(ap,fmt);
    retval = safe_vasprintf(strp,fmt,ap);/*这里要给strp分配内存*/
    va_end(ap);
    return retval;
}

int iptables_do_command(const char *format,...)
{
    va_list vlist;
    char *fmt_cmd;
    char *cmd;

    va_start(vlist,format);
    safe_vasprintf(&fmt_cmd,format,vlist);/*将每个参数组合到一起*/
    va_end(vlist);
    safe_asprintf(&cmd,"iptables %s",fmt_cmd);/*格式化输入到cmd*/
    printf("%s\n",cmd);
    free(fmt_cmd);/*释放两次分配的空间*/
    free(cmd);
    return 0;
}
int main()
{
    iptables_do_command("-t mangle -N " TABLE_WIFIDOG_TRUSTED);
    /*两个字符串合并,组成一个字符串*/
    return 0;
}

输出:

iptables -t mangle -N WiFiDog_$ID$_Trusted

本文章由 http://www.wifidog.pro/2015/01/19/wifidog%E5%91%BD%E4%BB%A4.html 整理编辑,转载请注明出处

标签: wifidog认证 wifidog安装 wifidog原理 wifidog分析 wifidog配置 wifidog流程 wifidog服务器 wifidog-ddwrt wifidog openwrt