ZOO-Project
server_internal.h
Go to the documentation of this file.
1 /*
2  * Author : GĂ©rald Fenoy
3  *
4  * Copyright 2008-2015 GeoLabs SARL. All rights reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  */
24 
25 #ifdef WIN32
26 #pragma comment(lib, "rpcrt4.lib")
27 #endif
28 
29 #ifndef IMPORTSERVICE
30 #define IMPORTSERVICE "include" // default name of [include] block in main.cfg
31 #endif
32 
33 #include "ulinet.h"
34 #include "service.h"
35 #include <openssl/sha.h>
36 #include <openssl/md5.h>
37 #include <openssl/hmac.h>
38 #include <openssl/evp.h>
39 #include <openssl/bio.h>
40 #include <openssl/buffer.h>
41 
42 extern int conf_read(const char*,maps*);
43 
44 #include <libxml/parser.h>
45 #include <libxml/xpath.h>
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
51  char *get_uuid();
52  char *base64(const char*,int);
53  char *base64d(const char*,int,int*);
54  void readBase64(map **);
55  char *url_decode(char *);
56  int getVersionId(const char*);
57  void readGeneratedFile(maps*,map*,char*);
58  int getServiceFromYAML(maps*,char*,service**,char *name);
59  char* addDefaultValues(maps**,elements*,maps*,int,map**);
60  char* getEncoding(maps*);
61  void parseIdentifier(maps*,char*,char*,char*);
63  void runDismiss(maps*,char*);
64  void runGetStatus(maps*,char*,char*);
65 
66  int isValidLang(maps*,const char*);
67 
68  char* getLastErrorMessage();
69  int readServiceFile (maps *, char *, service **, char *);
70  int createRegistry (maps*,registry **,char *);
71 
72  int zoo_path_compare(char* path1, char* path2);
73 
74 #ifdef WIN32
75  char* getMapsAsKVP(maps*,int,int);
76 #endif
77 
78 #ifdef __cplusplus
79 }
80 #endif
void parseIdentifier(maps *, char *, char *, char *)
Extract the service identifier from the full service identifier ie:
Definition: server_internal.c:134
int zoo_path_compare(char *path1, char *path2)
Definition: server_internal.c:48
void runDismiss(maps *, char *)
Run Dismiss requests.
Definition: server_internal.c:1041
int createRegistry(maps *, registry **, char *)
Create the profile registry.
Definition: server_internal.c:1144
char * get_uuid()
Generate a UUID.
Definition: server_internal.c:102
int readServiceFile(maps *, char *, service **, char *)
Parse the service file using getServiceFromFile or use getServiceFromYAML if YAML support was activat...
Definition: server_internal.c:1118
linked list of map pointer
Definition: main_conf_read.y:243
void readBase64(map **)
Read Base64 value and split it value by lines of 64 char.
Definition: server_internal.c:537
void runGetStatus(maps *, char *, char *)
Run GetStatus requests.
Definition: server_internal.c:964
KVP linked list.
Definition: service.h:199
char * getLastErrorMessage()
Access the last error message returned by the OS when trying to dynamically load a shared library...
Definition: server_internal.c:868
int getVersionId(const char *)
Detect WPS version used (1.0.0 or 2.0.0).
Definition: server_internal.c:86
Metadata information about a full Service.
Definition: main_conf_read.y:279
char * getEncoding(maps *)
Access the value of the encoding key in a maps.
Definition: server_internal.c:327
char * addDefaultValues(maps **, elements *, maps *, int, map **)
Add the default values defined in the zcfg to a maps.
Definition: server_internal.c:582
char * base64(const char *, int)
Base64 encoding of a char*.
Definition: server_internal.c:482
Profile registry.
Definition: main_conf_read.y:298
char * url_decode(char *)
Decode an URLEncoded url.
Definition: server_internal.c:253
void readGeneratedFile(maps *, map *, char *)
Read a file generated by a service.
Definition: server_internal.c:367
Metadata information about input or output.
Definition: main_conf_read.y:265
int isValidLang(maps *, const char *)
Verify if a given language is listed in the lang list defined in the [main] section of the main...
Definition: server_internal.c:280
void dumpMapsValuesToFiles(maps **, maps **)
Dump all values in a maps as files.
Definition: server_internal.c:423
int conf_read(const char *, maps *)
Parse the main.cfg file and fill the maps structure.
Definition: main_conf_read.y:146
char * base64d(const char *, int, int *)
Base64 decoding of a char*.
Definition: server_internal.c:513
int getServiceFromYAML(maps *, char *, service **, char *name)
Read and parse a ZCFG file in YAML format.
Definition: service_yaml.c:47