1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
/* *********************************************************************
* This Source Code Form is copyright of 51Degrees Mobile Experts Limited.
* Copyright 2019 51Degrees Mobile Experts Limited, 5 Charlotte Close,
* Caversham, Reading, Berkshire, United Kingdom RG4 7BY
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0.
*
* If a copy of the MPL was not distributed with this file, You can obtain
* one at http://mozilla.org/MPL/2.0/.
*
* This Source Code Form is "Incompatible With Secondary Licenses", as
* defined by the Mozilla Public License, v. 2.0.
* *********************************************************************/
/* *********************************************************************
* Dummy library for HAProxy. This does not function, and is designed
* solely for HAProxy testing purposes.
* *********************************************************************/
#ifndef FIFTYONEDEGREES_H_INCLUDED
#define FIFTYONEDEGREES_H_INCLUDED
#ifndef FIFTYONEDEGREES_H_PATTERN_INCLUDED
#define FIFTYONEDEGREES_H_PATTERN_INCLUDED
#endif
#ifndef FIFTYONEDEGREES_DUMMY_LIB
#define FIFTYONEDEGREES_DUMMY_LIB
#endif
#include <stdint.h>
typedef enum e_fiftyoneDegrees_MatchMethod {
NONE,
EXACT,
NUMERIC,
NEAREST,
CLOSEST
} fiftyoneDegreesMatchMethod;
typedef enum e_fiftyoneDegrees_DataSetInitStatus {
DATA_SET_INIT_STATUS_SUCCESS,
DATA_SET_INIT_STATUS_INSUFFICIENT_MEMORY,
DATA_SET_INIT_STATUS_CORRUPT_DATA,
DATA_SET_INIT_STATUS_INCORRECT_VERSION,
DATA_SET_INIT_STATUS_FILE_NOT_FOUND,
DATA_SET_INIT_STATUS_NOT_SET,
DATA_SET_INIT_STATUS_POINTER_OUT_OF_BOUNDS,
DATA_SET_INIT_STATUS_NULL_POINTER
} fiftyoneDegreesDataSetInitStatus;
typedef struct fiftyoneDegrees_ascii_string_t {
const int16_t length;
const char firstByte;
} fiftyoneDegreesAsciiString;
typedef struct fiftyoneDegrees_dataset_header_t {
} fiftyoneDegreesDataSetHeader;
typedef struct fiftyoneDegrees_workset_pool_t {
} fiftyoneDegreesWorksetPool;
typedef struct fiftyoneDegrees_property_t {
} fiftyoneDegreesProperty;
typedef struct fiftyoneDegrees_value_t {
} fiftyoneDegreesValue;
typedef struct fiftyoneDegrees_resultset_cache_t {
} fiftyoneDegreesResultsetCache;
typedef struct fiftyoneDegrees_http_header_t {
int32_t headerNameOffset;
const char *headerName;
} fiftyoneDegreesHttpHeader;
typedef struct fiftyoneDegrees_http_header_workset_t {
fiftyoneDegreesHttpHeader *header;
const char *headerValue;
int headerValueLength;
} fiftyoneDegreesHttpHeaderWorkset;
typedef struct fiftyoneDegrees_dataset_t {
int32_t httpHeadersCount;
fiftyoneDegreesHttpHeader *httpHeaders;
int32_t requiredPropertyCount;
const fiftyoneDegreesProperty **requiredProperties;
} fiftyoneDegreesDataSet;
typedef struct fiftyoneDegrees_workset_t {
fiftyoneDegreesDataSet *dataSet;
int32_t importantHeadersCount;
fiftyoneDegreesHttpHeaderWorkset *importantHeaders;
fiftyoneDegreesMatchMethod method;
int32_t difference;
const fiftyoneDegreesValue **values;
} fiftyoneDegreesWorkset;
int32_t fiftyoneDegreesGetSignatureRank(fiftyoneDegreesWorkset *ws);
const char* fiftyoneDegreesGetPropertyName(
const fiftyoneDegreesDataSet *dataSet,
const fiftyoneDegreesProperty *property);
int32_t fiftyoneDegreesSetValues(
fiftyoneDegreesWorkset *ws,
int32_t requiredPropertyIndex);
const char* fiftyoneDegreesGetValueName(
const fiftyoneDegreesDataSet *dataSet,
const fiftyoneDegreesValue *value);
fiftyoneDegreesWorkset *fiftyoneDegreesWorksetPoolGet(
fiftyoneDegreesWorksetPool *pool);
void fiftyoneDegreesWorksetPoolRelease(
fiftyoneDegreesWorksetPool *pool,
fiftyoneDegreesWorkset *ws);
void fiftyoneDegreesMatchForHttpHeaders(fiftyoneDegreesWorkset *ws);
void fiftyoneDegreesMatch(
fiftyoneDegreesWorkset *ws,
const char* userAgent);
fiftyoneDegreesDataSetInitStatus fiftyoneDegreesInitWithPropertyArray(
const char *fileName,
fiftyoneDegreesDataSet *dataSet,
const char** properties,
int32_t count);
fiftyoneDegreesWorksetPool *fiftyoneDegreesWorksetPoolCreate(
fiftyoneDegreesDataSet *dataSet,
fiftyoneDegreesResultsetCache *cache,
int32_t size);
void fiftyoneDegreesWorksetPoolFree(
const fiftyoneDegreesWorksetPool *pool);
void fiftyoneDegreesDataSetFree(const fiftyoneDegreesDataSet *dataSet);
const fiftyoneDegreesAsciiString* fiftyoneDegreesGetString(
const fiftyoneDegreesDataSet *dataSet,
int32_t offset);
#endif
|