532 | | result = inet_pton(AF_INET6, val, netw_form); |
533 | | switch(result) { |
534 | | case 0 : |
535 | | syslog(LOG_ERR," inet_pton : Invalid IPv6 Address"); |
536 | | exit(1); |
537 | | break; |
538 | | case -1: |
539 | | syslog(LOG_ERR," inet_pton : AF unknown"); |
540 | | exit(1); |
541 | | break; |
542 | | } |
543 | | memcpy(&v6addr, netw_form, sizeof(netw_form)); |
544 | | tmp->valueLength = 16; |
545 | | tmp->stor.tabAdd6[0] = v6addr.s6_addr32[0]; |
546 | | tmp->stor.tabAdd6[1] = v6addr.s6_addr32[1]; |
547 | | tmp->stor.tabAdd6[2] = v6addr.s6_addr32[2]; |
548 | | tmp->stor.tabAdd6[3] = v6addr.s6_addr32[3]; |
549 | | tmp->next = vPtr; |
| 539 | if ( (token=memccpy(value, val, '/', strlen(val)))==NULL) { |
| 540 | /* address case */ |
| 541 | fprintf(stderr,"address case\n"); |
| 542 | result = inet_pton(AF_INET6, val, netw_form); |
| 543 | switch(result) { |
| 544 | case 0 : |
| 545 | syslog(LOG_ERR," inet_pton : Invalid IPv6 Address"); |
| 546 | exit(1); |
| 547 | break; |
| 548 | case -1: |
| 549 | syslog(LOG_ERR," inet_pton : AF unknown"); |
| 550 | exit(1); |
| 551 | break; |
| 552 | } |
| 553 | memcpy(&v6addr, netw_form, sizeof(netw_form)); |
| 554 | tmp->valueLength = 16; |
| 555 | tmp->mask = 128; |
| 556 | tmp->stor.tabAdd6[0] = v6addr.s6_addr32[0]; |
| 557 | tmp->stor.tabAdd6[1] = v6addr.s6_addr32[1]; |
| 558 | tmp->stor.tabAdd6[2] = v6addr.s6_addr32[2]; |
| 559 | tmp->stor.tabAdd6[3] = v6addr.s6_addr32[3]; |
| 560 | tmp->next = vPtr; |
| 561 | } else { |
| 562 | fprintf(stderr,"prefix case\n"); |
| 563 | lg = strlen(value); |
| 564 | lgMask = strlen(token); |
| 565 | value[lg-1-lgMask] = '\0'; |
| 566 | strcpy( mask, strchr(val,'/')+1); |
| 567 | fprintf(stderr,"apres strcpy: %s et %d\n", value, atoi(mask)); |
| 568 | result = inet_pton(AF_INET6, value, netw_form); |
| 569 | switch(result) { |
| 570 | case 0 : |
| 571 | syslog(LOG_ERR," inet_pton : Invalid IPv6 Address"); |
| 572 | exit(1); |
| 573 | break; |
| 574 | case -1: |
| 575 | syslog(LOG_ERR," inet_pton : AF unknown"); |
| 576 | exit(1); |
| 577 | break; |
| 578 | } |
| 579 | memcpy(&v6addr, netw_form, sizeof(netw_form)); |
| 580 | tmp->valueLength = 16; |
| 581 | fprintf(stderr,"ici\n"); |
| 582 | tmp->mask = atoi(mask); |
| 583 | fprintf(stderr,"la %hu\n", tmp->mask); |
| 584 | tmp->stor.tabAdd6[0] = v6addr.s6_addr32[0]; |
| 585 | tmp->stor.tabAdd6[1] = v6addr.s6_addr32[1]; |
| 586 | tmp->stor.tabAdd6[2] = v6addr.s6_addr32[2]; |
| 587 | tmp->stor.tabAdd6[3] = v6addr.s6_addr32[3]; |
| 588 | tmp->next = vPtr; |
| 589 | fprintf(stderr,"plus la\n"); |
| 590 | } |