Print this page
8927 sadb_x_kmc_t's KM cookie should be 64-bits (fix improper upstream)


2585             htonl(range->sadb_spirange_min),
2586             htonl(range->sadb_spirange_max));
2587 }
2588 
2589 /*
2590  * Print an SADB_X_EXT_KM_COOKIE extension.
2591  */
2592 
2593 void
2594 print_kmc(FILE *file, char *prefix, struct sadb_x_kmc *kmc)
2595 {
2596         char *cookie_label;
2597 
2598         switch (kmc->sadb_x_kmc_proto) {
2599         case SADB_X_KMP_IKE:
2600                 cookie_label = kmc_lookup_by_cookie(kmc->sadb_x_kmc_cookie);
2601                 if (cookie_label == NULL)
2602                         cookie_label =
2603                             dgettext(TEXT_DOMAIN, "<Label not found.>");
2604                 (void) fprintf(file, dgettext(TEXT_DOMAIN,
2605                     "%sProtocol %u, cookie=\"%s\" (%u)\n"), prefix,
2606                     kmc->sadb_x_kmc_proto, cookie_label,
2607                     kmc->sadb_x_kmc_cookie);
2608                 return;



2609         case SADB_X_KMP_MANUAL:
2610                 cookie_label = dgettext(TEXT_DOMAIN, "Manual SA with cookie");
2611                 break;
2612         /* case SADB_X_KMP_IKEV2: */
2613         default:
2614                 cookie_label =
2615                     dgettext(TEXT_DOMAIN, "<unknown KM protocol>");
2616                 break;
2617         }
2618 
2619         /* XXX KEBE ASKS... htonll() on generic kmc_cookie? */



2620         (void) fprintf(file, dgettext(TEXT_DOMAIN,
2621             "%sProtocol %u, cookie=\"%s\" (0x%"PRIx64"/%"PRIu64")\n"),
2622             prefix, kmc->sadb_x_kmc_proto, cookie_label,
2623             kmc->sadb_x_kmc_cookie64, kmc->sadb_x_kmc_cookie64);
2624 }
2625 
2626 /*
2627  * Print an SADB_X_EXT_REPLAY_CTR extension.
2628  */
2629 
2630 void
2631 print_replay(FILE *file, char *prefix, sadb_x_replay_ctr_t *repl)
2632 {
2633         (void) fprintf(file, dgettext(TEXT_DOMAIN,
2634             "%sReplay Value "), prefix);
2635         if ((repl->sadb_x_rc_replay32 == 0) &&
2636             (repl->sadb_x_rc_replay64 == 0)) {
2637                 (void) fprintf(file, dgettext(TEXT_DOMAIN,
2638                     "<Value not found.>"));
2639         }
2640         /*
2641          * We currently do not support a 64-bit replay value.




2585             htonl(range->sadb_spirange_min),
2586             htonl(range->sadb_spirange_max));
2587 }
2588 
2589 /*
2590  * Print an SADB_X_EXT_KM_COOKIE extension.
2591  */
2592 
2593 void
2594 print_kmc(FILE *file, char *prefix, struct sadb_x_kmc *kmc)
2595 {
2596         char *cookie_label;
2597 
2598         switch (kmc->sadb_x_kmc_proto) {
2599         case SADB_X_KMP_IKE:
2600                 cookie_label = kmc_lookup_by_cookie(kmc->sadb_x_kmc_cookie);
2601                 if (cookie_label == NULL)
2602                         cookie_label =
2603                             dgettext(TEXT_DOMAIN, "<Label not found.>");
2604                 (void) fprintf(file, dgettext(TEXT_DOMAIN,
2605                     "%s Protocol %u, cookie=\"%s\" (%u)\n"), prefix,
2606                     kmc->sadb_x_kmc_proto, cookie_label,
2607                     kmc->sadb_x_kmc_cookie);
2608                 return;
2609         case SADB_X_KMP_KINK:
2610                 cookie_label = dgettext(TEXT_DOMAIN, "KINK:");
2611                 break;
2612         case SADB_X_KMP_MANUAL:
2613                 cookie_label = dgettext(TEXT_DOMAIN, "Manual SA with cookie:");
2614                 break;
2615         /* case SADB_X_KMP_IKEV2: */
2616         default:
2617                 cookie_label =
2618                     dgettext(TEXT_DOMAIN, "<unknown KM protocol>");
2619                 break;
2620         }
2621 
2622         /*
2623          * Assume native-byte-order printing for now.  Exceptions (like
2624          * byte-swapping) should be handled in per-KM-protocol cases above.
2625          */
2626         (void) fprintf(file, dgettext(TEXT_DOMAIN,
2627             "%s Protocol %u, cookie=\"%s\" (0x%"PRIx64"/%"PRIu64")\n"),
2628             prefix, kmc->sadb_x_kmc_proto, cookie_label,
2629             kmc->sadb_x_kmc_cookie64, kmc->sadb_x_kmc_cookie64);
2630 }
2631 
2632 /*
2633  * Print an SADB_X_EXT_REPLAY_CTR extension.
2634  */
2635 
2636 void
2637 print_replay(FILE *file, char *prefix, sadb_x_replay_ctr_t *repl)
2638 {
2639         (void) fprintf(file, dgettext(TEXT_DOMAIN,
2640             "%sReplay Value "), prefix);
2641         if ((repl->sadb_x_rc_replay32 == 0) &&
2642             (repl->sadb_x_rc_replay64 == 0)) {
2643                 (void) fprintf(file, dgettext(TEXT_DOMAIN,
2644                     "<Value not found.>"));
2645         }
2646         /*
2647          * We currently do not support a 64-bit replay value.