/* * Check the vendor ID payload -- return the vendor ID index * if we find a recognized one, or UNKNOWN if we don't. * * gen ... points to Vendor ID payload. */ int check_vendorid(struct isakmp_gen *gen) { vchar_t vid, *vidhash; int i, vidlen; struct vendor_id *current; if (gen == NULL) return (VENDORID_UNKNOWN); vidlen = ntohs(gen->len) - sizeof(*gen); current = lookup_vendor_id_by_hash((char *)(gen + 1)); if (!current) goto unknown; if (current->hash->l < vidlen) plog(LLV_INFO, LOCATION, NULL, "received broken Microsoft ID: %s\n", current->string); else plog(LLV_INFO, LOCATION, NULL, "received Vendor ID: %s\n", current->string); return current->id; unknown: plog(LLV_DEBUG, LOCATION, NULL, "received unknown Vendor ID\n"); return (VENDORID_UNKNOWN); }
/* * Check the vendor ID payload -- return the vendor ID index * if we find a recognized one, or UNKNOWN if we don't. * * gen ... points to Vendor ID payload. */ int check_vendorid(struct isakmp_gen *gen) { int vidlen; struct vendor_id *current; if (gen == NULL) return (VENDORID_UNKNOWN); vidlen = ntohs(gen->len) - sizeof(*gen); current = lookup_vendor_id_by_hash((char *)(gen + 1)); if (!current) goto unknown; if (current->hash->l < vidlen) plog(ASL_LEVEL_INFO, "received broken Microsoft ID: %s\n", current->string); else plog(ASL_LEVEL_INFO, "received Vendor ID: %s\n", current->string); return current->id; unknown: plogdump(ASL_LEVEL_DEBUG, (char *)(gen + 1), vidlen, "received unknown Vendor ID:\n"); return (VENDORID_UNKNOWN); }