Browse Source

Exclude would work, If there wasn't a segmentation fault.

MissValeska 10 years ago
parent
commit
e06db959e8
1 changed files with 28 additions and 36 deletions
  1. 28
    36
      src/netsukuku.c

+ 28
- 36
src/netsukuku.c View File

@@ -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':

Loading…
Cancel
Save