|
@@ -325,48 +325,39 @@ void free_server_opt(void)
|
325
|
325
|
}
|
326
|
326
|
|
327
|
327
|
void exclude_interface(void) {
|
328
|
|
- printf("optarg: %s\n", optarg);
|
329
|
328
|
char *a_ifs;
|
|
329
|
+ char *old_tmp;
|
330
|
330
|
struct ifaddrs *addrs,*tmp;
|
331
|
331
|
getifaddrs(&addrs);
|
332
|
332
|
tmp = addrs;
|
333
|
|
- int i;
|
334
|
|
- if(tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_PACKET)
|
335
|
|
- a_ifs = tmp->ifa_name;
|
336
|
|
- char *first_tmp = tmp;
|
337
|
|
- tmp->ifa_next;
|
338
|
|
- int ifs_c = 1;
|
339
|
|
- while(tmp != first_tmp){
|
340
|
|
- //if(tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_PACKET)
|
341
|
|
- //tmp->ifa_name;
|
342
|
|
- tmp->ifa_next;
|
343
|
|
- ifs_c++;
|
344
|
|
- }
|
345
|
|
- ifs_c += 1;
|
346
|
|
- if(ifs_c > MAX_INTERFACES){
|
347
|
|
- printf("ERROR: Max Number of interfaces is: %i", MAX_INTERFACES);
|
348
|
|
- exit(1);
|
349
|
|
- }
|
350
|
|
- printf("ifs_c is: %i\n", ifs_c);
|
351
|
|
- for(i=0; i<ifs_c; i++) {
|
352
|
|
- //if(tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_PACKET)
|
353
|
|
- //a_ifs = tmp->ifa_name;
|
354
|
|
-
|
|
333
|
+ int run_c = 1;
|
|
334
|
+ printf("omg\n");
|
|
335
|
+ while(tmp) {
|
|
336
|
+ old_tmp = a_ifs;
|
|
337
|
+
|
|
338
|
+ if(tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_PACKET)
|
|
339
|
+ a_ifs = tmp->ifa_name;
|
|
340
|
+
|
|
341
|
+ printf("wtf\n");
|
|
342
|
+
|
355
|
343
|
if(strncmp(a_ifs, "lo", 2) == 0 || strncmp(a_ifs, "tunl0", 5) == 0 || strncmp(a_ifs, "tunl1", 5) == 0 || strcmp(a_ifs, optarg) == 0) {
|
356
|
|
- a_ifs = tmp->ifa_next;
|
357
|
|
- printf("Bad Case Interface Name Increment: %s\n", a_ifs);
|
358
|
|
- //if(tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_PACKET)
|
359
|
|
- //a_ifs = tmp->ifa_name;
|
|
344
|
+ tmp = tmp->ifa_next;
|
|
345
|
+ if(tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_PACKET)
|
|
346
|
+ a_ifs = tmp->ifa_name;
|
|
347
|
+ printf("dun be meanie\n");
|
360
|
348
|
}
|
361
|
|
- else {
|
362
|
|
- //tmp = tmp->ifa_next;
|
363
|
|
- printf("Normal Interface Name Increment: %s\n", a_ifs);
|
364
|
|
- }
|
365
|
|
- printf("a_ifs is: %s\n", a_ifs);
|
366
|
|
- server_opt.ifs[server_opt.ifs_n++]=xstrndup(a_ifs, IFNAMSIZ-1);
|
367
|
|
- a_ifs = tmp->ifa_next;
|
368
|
|
- }
|
369
|
|
- freeifaddrs(addrs);
|
|
349
|
+ printf("weirdness\n");
|
|
350
|
+ tmp = tmp->ifa_next;
|
|
351
|
+ run_c++;
|
|
352
|
+ if(strcmp(old_tmp, a_ifs) == 0) {
|
|
353
|
+ printf("True\n");
|
|
354
|
+ break;
|
|
355
|
+ }
|
|
356
|
+ printf("why so mean? D:\n");
|
|
357
|
+ server_opt.ifs[server_opt.ifs_n++]=xstrndup(a_ifs, IFNAMSIZ-1);
|
|
358
|
+ }
|
|
359
|
+
|
|
360
|
+freeifaddrs(addrs);
|
370
|
361
|
}
|
371
|
362
|
|
372
|
363
|
void parse_options(int argc, char **argv)
|
|
@@ -411,6 +402,7 @@ void parse_options(int argc, char **argv)
|
411
|
402
|
exit(0);
|
412
|
403
|
break;
|
413
|
404
|
case 'e':
|
|
405
|
+ printf("hey\n");
|
414
|
406
|
exclude_interface();
|
415
|
407
|
break;
|
416
|
408
|
case 'k':
|