Open SCAP Library
|
00001 00015 /* 00016 * Copyright 2009 Red Hat Inc., Durham, North Carolina. 00017 * All Rights Reserved. 00018 * 00019 * This library is free software; you can redistribute it and/or 00020 * modify it under the terms of the GNU Lesser General Public 00021 * License as published by the Free Software Foundation; either 00022 * version 2.1 of the License, or (at your option) any later version. 00023 * 00024 * This library is distributed in the hope that it will be useful, 00025 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00026 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00027 * Lesser General Public License for more details. 00028 * 00029 * You should have received a copy of the GNU Lesser General Public 00030 * License along with this library; if not, write to the Free Software 00031 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00032 * 00033 * Authors: 00034 * Lukas Kuklinek <lkuklinek@redhat.com> 00035 */ 00036 00037 #ifndef _CPEURI_H_ 00038 #define _CPEURI_H_ 00039 00040 #include <stdbool.h> 00041 #include <stdlib.h> 00042 #include <stdio.h> 00043 00045 typedef enum { 00046 CPE_PART_NONE, 00047 CPE_PART_HW, 00048 CPE_PART_OS, 00049 CPE_PART_APP 00050 } cpe_part_t; 00051 00058 struct cpe_name; 00059 00069 struct cpe_name *cpe_name_new(const char *cpe); 00070 00076 struct cpe_name * cpe_name_clone(struct cpe_name * old_name); 00077 00083 void cpe_name_free(struct cpe_name *cpe); 00084 00085 /************************************************************/ 00097 cpe_part_t cpe_name_get_part(const struct cpe_name *cpe); 00098 00103 const char *cpe_name_get_vendor(const struct cpe_name *cpe); 00104 00109 const char *cpe_name_get_product(const struct cpe_name *cpe); 00110 00115 const char *cpe_name_get_version(const struct cpe_name *cpe); 00116 00121 const char *cpe_name_get_update(const struct cpe_name *cpe); 00122 00127 const char *cpe_name_get_edition(const struct cpe_name *cpe); 00128 00133 const char *cpe_name_get_language(const struct cpe_name *cpe); 00134 00143 char *cpe_name_get_uri(const struct cpe_name *cpe); 00144 00145 /************************************************************/ 00148 /************************************************************/ 00160 bool cpe_name_set_part(struct cpe_name *cpe, cpe_part_t newval); 00161 00166 bool cpe_name_set_vendor(struct cpe_name *cpe, const char *newval); 00167 00172 bool cpe_name_set_product(struct cpe_name *cpe, const char *newval); 00173 00178 bool cpe_name_set_version(struct cpe_name *cpe, const char *newval); 00179 00184 bool cpe_name_set_update(struct cpe_name *cpe, const char *newval); 00185 00190 bool cpe_name_set_edition(struct cpe_name *cpe, const char *newval); 00191 00196 bool cpe_name_set_language(struct cpe_name *cpe, const char *newval); 00197 00198 /************************************************************/ 00201 /************************************************************/ 00212 bool cpe_name_match_one(const struct cpe_name *cpe, const struct cpe_name *against); 00213 00222 bool cpe_name_match_cpes(const struct cpe_name *name, size_t n, struct cpe_name **namelist); 00223 00232 int cpe_name_write(const struct cpe_name *cpe, FILE * f); 00233 00239 bool cpe_name_check(const char *str); 00240 00251 int cpe_name_match_strs(const char *candidate, size_t n, char **targets); 00252 00258 const char * cpe_name_supported(void); 00259 00260 /************************************************************/ 00264 00267 #endif /* _CPEURI_H_ */