1/* 2 bwdpi.c for TrendMicro DPI engine / iQoS / WRS / APP partol 3 4 DPI engine : applications and devices identify engine 5 iQoS : tc control rule and qosd.conf 6 WRS : web protector or web content filter 7 APP partol : apps filter 8 C&C : C&C 9 VP : virtual patch 10 DC : data collection 11*/ 12 13#include <rc.h> 14 15static void show_help(char *base) 16{ 17 printf("%s Usage :\n", base); 18 printf(" bwdpi stat -m [mode] -n [name] -u [dura] -d [date]\n"); 19 printf(" mode: traffic / traffic_wan / app / client_apps / client_web\n"); 20 printf(" name: NULL / MAC / APP_NAME\n"); 21 printf(" dura: realtime / month / week / day\n"); 22 printf(" date: NULL / date\n"); 23} 24 25int bwdpi_main(int argc, char **argv) 26{ 27 //dbg("[bwdpi] argc=%d, argv[0]=%s, argv[1]=%s, argv[2]=%s\n", argc, argv[0], argv[1], argv[2]); 28 int c; 29 char *mode = NULL, *name = NULL, *dura = NULL, *date = NULL; 30 char *MAC = NULL; 31 char *page = NULL; 32 int clean_flag = 0; 33 34 if (argc == 1){ 35 printf("Usage :\n"); 36 printf(" bwdpi [iqos/qosd/wrs] [start/stop/restart]\n"); 37 printf(" bwdpi dc [start/stop/restart] [ptah]\n"); 38 printf(" bwdpi stat -m [mode] -n [name] -u [dura] -d [date]\n"); 39 printf(" bwpdi history -m [MAC] -z -p [page]\n"); 40 printf(" bwpdi app [0/1]\n"); 41 printf(" bwpdi cc [0/1]\n"); 42 printf(" bwpdi vp [0/1]\n"); 43 printf(" bwpdi device -m [MAC]\n"); 44 printf(" bwpdi device_info -m [MAC]\n"); 45 printf(" bwpdi get_vp [0/2]\n"); 46 printf(" bwpdi wrs_url\n"); 47 printf(" bwpdi rewrite path1 path2 path3\n"); 48 printf(" bwpdi checksize path size\n"); 49 printf(" bwpdi extract path\n"); 50 printf(" bwpdi get_app_patrol\n"); 51 printf(" bwpdi get_anomaly [0/2]\n"); 52 return 0; 53 } 54 55 if (!strcmp(argv[1], "iqos")){ 56 if(argc != 3) 57 { 58 printf(" bwdpi iqos [start/stop/restart]\n"); 59 return 0; 60 } 61 else 62 { 63 return tm_qos_main(argv[2]); 64 } 65 } 66 else if (!strcmp(argv[1], "qosd")){ 67 if(argc != 3) 68 { 69 printf(" bwdpi qosd [start/stop/restart]\n"); 70 return 0; 71 } 72 else 73 { 74 return qosd_main(argv[2]); 75 } 76 } 77 else if (!strcmp(argv[1], "wrs")){ 78 if(argc != 3) 79 { 80 printf(" bwdpi wrs [start/stop/restart]\n"); 81 return 0; 82 } 83 else 84 { 85 return wrs_main(argv[2]); 86 } 87 88 } 89 else if (!strcmp(argv[1], "stat")){ 90 while ((c = getopt(argc, argv, "m:n:u:d:h")) != -1) 91 { 92 switch(c) 93 { 94 case 'm': 95 mode = optarg; 96 break; 97 case 'n': 98 name = optarg; 99 break; 100 case 'u': 101 dura = optarg; 102 break; 103 case 'd': 104 date = optarg; 105 break; 106 case 'h': 107 show_help(argv[1]); 108 break; 109 default: 110 printf("ERROR: unknown option %c\n", c); 111 break; 112 } 113 } 114 //dbg("[bwdpi] mode=%s, name=%s, dura=%s, date=%s\n", mode, name, dura, date); 115 return stat_main(mode, name, dura, date); 116 } 117 else if (!strcmp(argv[1], "history")){ 118 while ((c = getopt(argc, argv, "m:zp:")) != -1) 119 { 120 switch(c) 121 { 122 case 'm': 123 MAC = optarg; 124 clean_flag = 0; 125 break; 126 case 'z': 127 printf("clear web history\n"); 128 clean_flag = 1; 129 break; 130 case 'p': 131 page = optarg; 132 break; 133 default: 134 printf(" bwpdi history -m [MAC] -z -p [page]\n"); 135 break; 136 } 137 } 138 139 if(clean_flag) 140 { 141 return clear_user_domain(); 142 } 143 else 144 { 145 return web_history_main(MAC, page); 146 } 147 } 148 else if (!strcmp(argv[1], "app")){ 149 if(argc != 3) 150 { 151 printf(" bwpdi app [0/1]\n"); 152 return 0; 153 } 154 else 155 { 156 return wrs_app_main(argv[2]); 157 } 158 } 159 else if (!strcmp(argv[1], "cc")){ 160 if(argc != 3) 161 { 162 printf(" bwpdi cc [0/1]\n"); 163 return 0; 164 } 165 else 166 { 167 return set_cc(argv[2]); 168 } 169 } 170 else if (!strcmp(argv[1], "vp")){ 171 if(argc != 3) 172 { 173 printf(" bwpdi vp [0/1]\n"); 174 return 0; 175 } 176 else 177 { 178 return set_vp(argv[2]); 179 } 180 } 181 else if (!strcmp(argv[1], "dc")){ 182 if(argc == 3) 183 { 184 return data_collect_main(argv[2], NULL); 185 } 186 else if(argc == 4) 187 { 188 return data_collect_main(argv[2], argv[3]); 189 } 190 else 191 { 192 printf(" bwpdi dc [start/stop/restart] [path]\n"); 193 return 0; 194 } 195 } 196 else if (!strcmp(argv[1], "device")){ 197 while ((c = getopt(argc, argv, "m:")) != -1) 198 { 199 switch(c) 200 { 201 case 'm': 202 name = optarg; 203 break; 204 default: 205 printf(" bwpdi device -m [MAC]\n"); 206 break; 207 } 208 } 209 return device_main(name); 210 } 211 else if (!strcmp(argv[1], "device_info")){ 212 while ((c = getopt(argc, argv, "m:")) != -1) 213 { 214 switch(c) 215 { 216 case 'm': 217 name = optarg; 218 break; 219 default: 220 printf(" bwpdi device_info -m [MAC]\n"); 221 break; 222 } 223 } 224 return device_info_main(name); 225 } 226 else if (!strcmp(argv[1], "get_vp")){ 227 if(argc != 3) 228 { 229 printf(" bwpdi get_vp [0/2]\n"); 230 return 0; 231 } 232 else 233 { 234 return get_vp(argv[2]); 235 } 236 } 237 else if (!strcmp(argv[1], "wrs_url")){ 238 if(argc != 2) 239 { 240 printf(" bwpdi wrs_url\n"); 241 return 0; 242 } 243 else 244 { 245 return wrs_url_main(); 246 } 247 } 248 else if (!strcmp(argv[1], "rewrite")){ 249 if(argc != 5) 250 { 251 printf(" bwpdi rewrite path1 path2 path3\n"); 252 return 0; 253 } 254 else 255 { 256 return rewrite_main(argv[2], argv[3], argv[4]); 257 } 258 } 259 else if (!strcmp(argv[1], "checksize")){ 260 if(argc != 4) 261 { 262 printf(" bwpdi checksize path size\n"); 263 return 0; 264 } 265 else 266 { 267 return check_filesize_main(argv[2], argv[3]); 268 } 269 } 270 else if (!strcmp(argv[1], "extract")){ 271 if(argc != 3) 272 { 273 printf(" bwpdi extract path\n"); 274 return 0; 275 } 276 else 277 { 278 return extract_data_main(argv[2]); 279 } 280 } 281 else if (!strcmp(argv[1], "get_app_patrol")){ 282 if(argc != 2) 283 { 284 printf(" bwpdi get_app_patrol\n"); 285 return 0; 286 } 287 else 288 { 289 return get_app_patrol_main(); 290 } 291 } 292 else if (!strcmp(argv[1], "get_anomaly")){ 293 if(argc != 3) 294 { 295 printf(" bwpdi get_anomaly [0/2]\n"); 296 return 0; 297 } 298 else 299 { 300 return get_anomaly_main(argv[2]); 301 } 302 } 303 else{ 304 printf("Usage :\n"); 305 printf(" bwdpi [iqos/qosd/wrs] [start/stop/restart]\n"); 306 printf(" bwdpi dc [start/stop/restart] [ptah]\n"); 307 printf(" bwdpi stat -m [mode] -n [name] -u [dura] -d [date]\n"); 308 printf(" bwpdi history -m [MAC] -z -p [page]\n"); 309 printf(" bwpdi app [0/1]\n"); 310 printf(" bwpdi cc [0/1]\n"); 311 printf(" bwpdi vp [0/1]\n"); 312 printf(" bwpdi device -m [MAC]\n"); 313 printf(" bwpdi device_info -m [MAC]\n"); 314 printf(" bwpdi get_vp [0/2]\n"); 315 printf(" bwpdi wrs_url\n"); 316 printf(" bwpdi rewrite path1 path2 path3\n"); 317 printf(" bwpdi checksize path size\n"); 318 printf(" bwpdi extract path\n"); 319 printf(" bwpdi get_app_patrol\n"); 320 printf(" bwpdi get_anomaly [0/2]\n"); 321 return 0; 322 } 323 324 return 1; 325} 326