/* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
*/
hits = 0; for (i = 0; i < md1->domains->nelts; ++i) { constchar *name1 = APR_ARRAY_IDX(md1->domains, i, constchar*); if (md_contains(md2, name1, 0)) {
++hits;
}
} return hits;
}
int md_is_covered_by_alt_names(const md_t *md, conststruct apr_array_header_t* alt_names)
{ constchar *name; int i;
if (alt_names) { for (i = 0; i < md->domains->nelts; ++i) {
name = APR_ARRAY_IDX(md->domains, i, constchar *); if (!md_dns_domains_match(alt_names, name)) { return 0;
}
} return 1;
} return 0;
}
int md_equal_domains(const md_t *md1, const md_t *md2, int case_sensitive)
{ int i; if (md1->domains->nelts == md2->domains->nelts) { for (i = 0; i < md1->domains->nelts; ++i) { constchar *name1 = APR_ARRAY_IDX(md1->domains, i, constchar*); if (!md_contains(md2, name1, case_sensitive)) { return 0;
}
} return 1;
} return 0;
}
int md_contains_domains(const md_t *md1, const md_t *md2)
{ int i; if (md1->domains->nelts >= md2->domains->nelts) { for (i = 0; i < md2->domains->nelts; ++i) { constchar *name2 = APR_ARRAY_IDX(md2->domains, i, constchar*); if (!md_contains(md1, name2, 0)) { return 0;
}
} return 1;
} return 0;
}
md_t *md_get_by_name(struct apr_array_header_t *mds, constchar *name)
{ int i; for (i = 0; i < mds->nelts; ++i) {
md_t *md = APR_ARRAY_IDX(mds, i, md_t *); if (!strcmp(name, md->name)) { return md;
}
} return NULL;
}
md_t *md_get_by_domain(struct apr_array_header_t *mds, constchar *domain)
{ int i; for (i = 0; i < mds->nelts; ++i) {
md_t *md = APR_ARRAY_IDX(mds, i, md_t *); if (md_contains(md, domain, 0)) { return md;
}
} return NULL;
}
md_t *md_get_by_dns_overlap(struct apr_array_header_t *mds, const md_t *md)
{ int i; for (i = 0; i < mds->nelts; ++i) {
md_t *o = APR_ARRAY_IDX(mds, i, md_t *); if (strcmp(o->name, md->name) && md_common_name(o, md)) { return o;
}
} return NULL;
}
int md_cert_count(const md_t *md)
{ /* cert are defined as a list of static files or a list of private key specs */ if (md->cert_files && md->cert_files->nelts) { return md->cert_files->nelts;
} return md_pkeys_spec_count(md->pks);
}
*purl = NULL; for (i = 0; i < sizeof(KNOWN_CAs)/sizeof(KNOWN_CAs[0]); ++i) { if (!apr_strnatcasecmp(KNOWN_CAs[i].name, name)) {
*purl = KNOWN_CAs[i].url; goto leave;
}
}
*purl = name;
rv = md_util_abs_uri_check(p, name, &err); if (APR_SUCCESS != rv) {
apr_array_header_t *names;
names = apr_array_make(p, 10, sizeof(constchar*)); for (i = 0; i < sizeof(KNOWN_CAs)/sizeof(KNOWN_CAs[0]); ++i) {
APR_ARRAY_PUSH(names, constchar *) = KNOWN_CAs[i].name;
}
*purl = apr_psprintf(p, "The CA name '%s' is not known and it is not a URL either (%s). " "Known CA names are: %s.",
name, err, apr_array_pstrcat(p, names, ' '));
}
leave: return rv;
}
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.