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 
32 #include "service.h"
33 #include <openssl/sha.h>
34 #include <openssl/md5.h>
35 #include <openssl/hmac.h>
36 #include <openssl/evp.h>
37 #include <openssl/bio.h>
38 #include <openssl/buffer.h>
39 
40 extern int conf_read(const char*,maps*);
41 
42 #include <libxml/parser.h>
43 #include <libxml/xpath.h>
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49  char *get_uuid();
50  char *base64(const char*,int);
51  char *base64d(const char*,int,int*);
52  void readBase64(map **);
53  char *url_decode(char *);
54  int getVersionId(const char*);
55  void readGeneratedFile(maps*,map*,char*);
56  int getServiceFromYAML(maps*,char*,service**,char *name);
57  char* addDefaultValues(maps**,elements*,maps*,int,map**);
58  char* getEncoding(maps*);
59  void parseIdentifier(maps*,char*,char*,char*);
61  void runDismiss(maps*,char*);
62  void runGetStatus(maps*,char*,char*);
63 
64  int isValidLang(maps*,const char*);
65 
66  char* getLastErrorMessage();
67  int readServiceFile (maps *, char *, service **, char *);
68  int createRegistry (maps*,registry **,char *);
69 
70  int zoo_path_compare(char* path1, char* path2);
71 
72 #ifdef WIN32
73  char* getMapsAsKVP(maps*,int,int);
74 #endif
75 
76 #ifdef __cplusplus
77 }
78 #endif
79 
80 #endif
void parseIdentifier(maps *, char *, char *, char *)
Extract the service identifier from the full service identifier ie:
Definition: server_internal.c:135
int zoo_path_compare(char *path1, char *path2)
Definition: server_internal.c:49
void runDismiss(maps *, char *)
Run Dismiss requests.
Definition: server_internal.c:1072
int createRegistry(maps *, registry **, char *)
Create the profile registry.
Definition: server_internal.c:1180
char * get_uuid()
Generate a UUID.
Definition: server_internal.c:103
int readServiceFile(maps *, char *, service **, char *)
Parse the service file using getServiceFromFile or use getServiceFromYAML if YAML support was activat...
Definition: server_internal.c:1154
linked list of map pointer
Definition: main_conf_read.y:285
void readBase64(map **)
Read Base64 value and split it value by lines of 64 char.
Definition: server_internal.c:557
void runGetStatus(maps *, char *, char *)
Run GetStatus requests.
Definition: server_internal.c:992
KVP linked list.
Definition: service.h:237
char * getLastErrorMessage()
Access the last error message returned by the OS when trying to dynamically load a shared library...
Definition: server_internal.c:896
int getVersionId(const char *)
Detect WPS version used (1.0.0 or 2.0.0).
Definition: server_internal.c:87
Metadata information about a full Service.
Definition: main_conf_read.y:322
char * getEncoding(maps *)
Access the value of the encoding key in a maps.
Definition: server_internal.c:328
char * addDefaultValues(maps **, elements *, maps *, int, map **)
Add the default values defined in the zcfg to a maps.
Definition: server_internal.c:602
char * base64(const char *, int)
Base64 encoding of a char*.
Definition: server_internal.c:502
Profile registry.
Definition: main_conf_read.y:342
char * url_decode(char *)
Decode an URLEncoded url.
Definition: server_internal.c:254
void readGeneratedFile(maps *, map *, char *)
Read a file generated by a service.
Definition: server_internal.c:368
Metadata information about input or output.
Definition: main_conf_read.y:307
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:281
void dumpMapsValuesToFiles(maps **, maps **)
Dump all values in a maps as files.
Definition: server_internal.c:430
int conf_read(const char *, maps *)
Parse the main.cfg file and fill the maps structure.
Definition: main_conf_read.y:147
char * base64d(const char *, int, int *)
Base64 decoding of a char*.
Definition: server_internal.c:533
int getServiceFromYAML(maps *, char *, service **, char *name)
Read and parse a ZCFG file in YAML format.
Definition: service_yaml.c:47