Open SCAP Library
Loading...
Searching...
No Matches
cpe_name.h
Go to the documentation of this file.
1
15/*
16 * Copyright 2009 Red Hat Inc., Durham, North Carolina.
17 * All Rights Reserved.
18 *
19 * This library is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU Lesser General Public
21 * License as published by the Free Software Foundation; either
22 * version 2.1 of the License, or (at your option) any later version.
23 *
24 * This library is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27 * Lesser General Public License for more details.
28 *
29 * You should have received a copy of the GNU Lesser General Public
30 * License along with this library; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
32 *
33 * Authors:
34 * Lukas Kuklinek <lkuklinek@redhat.com>
35 */
36
37#ifndef _CPEURI_H_
38#define _CPEURI_H_
39
40#include <stdbool.h>
41#include <stdlib.h>
42#include <stdio.h>
43#include "oscap_export.h"
44
52
59
66struct cpe_name;
67
77OSCAP_API struct cpe_name *cpe_name_new(const char *cpe);
78
84OSCAP_API struct cpe_name * cpe_name_clone(struct cpe_name * old_name);
85
91OSCAP_API void cpe_name_free(struct cpe_name *cpe);
92
93/************************************************************/
105OSCAP_API cpe_format_t cpe_name_get_format(const struct cpe_name *cpe);
106
111OSCAP_API cpe_part_t cpe_name_get_part(const struct cpe_name *cpe);
112
117OSCAP_API const char *cpe_name_get_vendor(const struct cpe_name *cpe);
118
123OSCAP_API const char *cpe_name_get_product(const struct cpe_name *cpe);
124
129OSCAP_API const char *cpe_name_get_version(const struct cpe_name *cpe);
130
135OSCAP_API const char *cpe_name_get_update(const struct cpe_name *cpe);
136
141OSCAP_API const char *cpe_name_get_edition(const struct cpe_name *cpe);
142
147OSCAP_API const char *cpe_name_get_language(const struct cpe_name *cpe);
148
153OSCAP_API const char *cpe_name_get_sw_edition(const struct cpe_name *cpe);
154
159OSCAP_API const char *cpe_name_get_target_sw(const struct cpe_name *cpe);
160
165OSCAP_API const char *cpe_name_get_target_hw(const struct cpe_name *cpe);
166
171OSCAP_API const char *cpe_name_get_other(const struct cpe_name *cpe);
172
182OSCAP_API char *cpe_name_get_as_format(const struct cpe_name *cpe, cpe_format_t format);
183
192OSCAP_API char *cpe_name_get_as_str(const struct cpe_name *cpe);
193
194/************************************************************/
197/************************************************************/
209OSCAP_API bool cpe_name_set_format(struct cpe_name *cpe, cpe_format_t newval);
210
215OSCAP_API bool cpe_name_set_part(struct cpe_name *cpe, cpe_part_t newval);
216
221OSCAP_API bool cpe_name_set_vendor(struct cpe_name *cpe, const char *newval);
222
227OSCAP_API bool cpe_name_set_product(struct cpe_name *cpe, const char *newval);
228
233OSCAP_API bool cpe_name_set_version(struct cpe_name *cpe, const char *newval);
234
239OSCAP_API bool cpe_name_set_update(struct cpe_name *cpe, const char *newval);
240
245OSCAP_API bool cpe_name_set_edition(struct cpe_name *cpe, const char *newval);
246
251OSCAP_API bool cpe_name_set_language(struct cpe_name *cpe, const char *newval);
252
257OSCAP_API bool cpe_name_set_sw_edition(struct cpe_name *cpe, const char *newval);
258
263OSCAP_API bool cpe_name_set_target_sw(struct cpe_name *cpe, const char *newval);
264
269OSCAP_API bool cpe_name_set_target_hw(struct cpe_name *cpe, const char *newval);
270
275OSCAP_API bool cpe_name_set_other(struct cpe_name *cpe, const char *newval);
276
277/************************************************************/
280/************************************************************/
291OSCAP_API bool cpe_name_match_one(const struct cpe_name *cpe, const struct cpe_name *against);
292
301OSCAP_API int cpe_name_write(const struct cpe_name *cpe, FILE * f);
302
308OSCAP_API cpe_format_t cpe_name_get_format_of_str(const char *str);
309
315OSCAP_API bool cpe_name_check(const char *str);
316
322OSCAP_API const char * cpe_name_supported(void);
323
324/************************************************************/
341typedef bool (*cpe_check_fn) (const char*, const char*, const char*, void*);
342
350typedef bool (*cpe_dict_fn) (const struct cpe_name*, void*);
351
352#endif /* _CPEURI_H_ */
bool(* cpe_check_fn)(const char *, const char *, const char *, void *)
Shared callback definition used to evaluate checks to perform applicability tests.
Definition cpe_name.h:341
bool(* cpe_dict_fn)(const struct cpe_name *, void *)
Shared callback definition used to match CPE names to perform applicability tests.
Definition cpe_name.h:350
OSCAP_API bool cpe_name_set_product(struct cpe_name *cpe, const char *newval)
Set CPE name product field.
OSCAP_API bool cpe_name_set_format(struct cpe_name *cpe, cpe_format_t newval)
Set how the CPE name was loaded and how it should be saved.
OSCAP_API const char * cpe_name_get_edition(const struct cpe_name *cpe)
Get CPE name edition field.
OSCAP_API bool cpe_name_check(const char *str)
Checks whether str is valid CPE string (in any supported format).
Definition cpename.c:601
OSCAP_API const char * cpe_name_get_update(const struct cpe_name *cpe)
Get CPE name update field.
OSCAP_API char * cpe_name_get_as_str(const struct cpe_name *cpe)
Return CPE URI as a new string in the format in which it was loaded.
Definition cpename.c:695
OSCAP_API const char * cpe_name_get_other(const struct cpe_name *cpe)
Get CPE name other field.
OSCAP_API cpe_format_t cpe_name_get_format(const struct cpe_name *cpe)
Get how the CPE name was loaded and how it should be saved.
OSCAP_API bool cpe_name_set_edition(struct cpe_name *cpe, const char *newval)
Set CPE name edition field.
OSCAP_API bool cpe_name_set_other(struct cpe_name *cpe, const char *newval)
Set CPE name other field.
OSCAP_API bool cpe_name_set_vendor(struct cpe_name *cpe, const char *newval)
Set CPE name vendor field.
OSCAP_API cpe_part_t cpe_name_get_part(const struct cpe_name *cpe)
Get CPE name part type field.
OSCAP_API const char * cpe_name_get_product(const struct cpe_name *cpe)
Get CPE name product field.
cpe_part_t
enumeration of possible CPE parts
Definition cpe_name.h:46
OSCAP_API const char * cpe_name_get_target_sw(const struct cpe_name *cpe)
Get CPE name target_sw field.
OSCAP_API char * cpe_name_get_as_format(const struct cpe_name *cpe, cpe_format_t format)
Return CPE URI as a new string in specified format.
Definition cpename.c:613
OSCAP_API bool cpe_name_set_language(struct cpe_name *cpe, const char *newval)
Set CPE name language field.
OSCAP_API const char * cpe_name_get_sw_edition(const struct cpe_name *cpe)
Get CPE name sw_edition field.
OSCAP_API cpe_format_t cpe_name_get_format_of_str(const char *str)
Looks at given string and returns format it is in.
Definition cpename.c:547
OSCAP_API const char * cpe_name_get_version(const struct cpe_name *cpe)
Get CPE name version field.
OSCAP_API const char * cpe_name_get_target_hw(const struct cpe_name *cpe)
Get CPE name target_hw field.
OSCAP_API struct cpe_name * cpe_name_new(const char *cpe)
Create a new CPE structure from string cpe.
Definition cpename.c:225
OSCAP_API void cpe_name_free(struct cpe_name *cpe)
Destructor.
Definition cpename.c:720
OSCAP_API struct cpe_name * cpe_name_clone(struct cpe_name *old_name)
Clone CPE Name.
Definition cpename.c:313
OSCAP_API const char * cpe_name_get_language(const struct cpe_name *cpe)
Get CPE name language field.
OSCAP_API int cpe_name_write(const struct cpe_name *cpe, FILE *f)
Write CPE URI cpe to file a descriptor f.
Definition cpename.c:702
OSCAP_API bool cpe_name_set_part(struct cpe_name *cpe, cpe_part_t newval)
Set CPE name part type field.
OSCAP_API const char * cpe_name_get_vendor(const struct cpe_name *cpe)
Get CPE name vendor field.
cpe_format_t
Definition cpe_name.h:53
OSCAP_API bool cpe_name_set_target_sw(struct cpe_name *cpe, const char *newval)
Set CPE name target_sw field.
OSCAP_API bool cpe_name_set_version(struct cpe_name *cpe, const char *newval)
Set CPE name version field.
OSCAP_API bool cpe_name_set_update(struct cpe_name *cpe, const char *newval)
Set CPE name update field.
OSCAP_API bool cpe_name_set_target_hw(struct cpe_name *cpe, const char *newval)
Set CPE name target_hw field.
OSCAP_API bool cpe_name_set_sw_edition(struct cpe_name *cpe, const char *newval)
Set CPE name sw_edition field.
OSCAP_API const char * cpe_name_supported(void)
Get supported version of CPE uri XML.
Definition cpename.c:731
OSCAP_API bool cpe_name_match_one(const struct cpe_name *cpe, const struct cpe_name *against)
Check if candidate CPE cpe matches CPE against according to CPE specification v 2....
Definition cpename.c:527
@ CPE_PART_HW
hardware
Definition cpe_name.h:48
@ CPE_PART_NONE
no part specified
Definition cpe_name.h:47
@ CPE_PART_APP
application
Definition cpe_name.h:50
@ CPE_PART_OS
operating system
Definition cpe_name.h:49
@ CPE_FORMAT_WFN
available in CPE 2.3 and newer versions, default in CPE 2.3 and newer
Definition cpe_name.h:57
@ CPE_FORMAT_URI
available in all CPE versions, default in CPE 2.2 and previous
Definition cpe_name.h:55
@ CPE_FORMAT_UNKNOWN
can't be serialized, is usually used to signal errors
Definition cpe_name.h:54
@ CPE_FORMAT_STRING
available in CPE 2.3 and newer
Definition cpe_name.h:56
Structure holding Common Platform Enumeration URI data.
Definition cpename.c:70