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  int isRunning(maps*,char*);
63  void runGetStatus(maps*,char*,char*);
64  void readFinalRes(maps*,char*,map*);
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  char* produceErrorMessage(maps*);
72 
73  int zoo_path_compare(char* path1, char* path2);
74 
75 #ifdef WIN32
76  char* getMapsAsKVP(maps*,int,int);
77 #endif
78 
79 #ifdef __cplusplus
80 }
81 #endif
82 
83 #endif
char * produceErrorMessage(maps *)
Create a string containing the basic error message.
Definition: server_internal.c:1315
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 readFinalRes(maps *, char *, map *)
Read the Result file (.res).
Definition: server_internal.c:933
void runDismiss(maps *, char *)
Run Dismiss requests.
Definition: server_internal.c:1098
int isRunning(maps *, char *)
Check if a service is running.
Definition: server_internal.c:965
int createRegistry(maps *, registry **, char *)
Create the profile registry.
Definition: server_internal.c:1238
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:1212
linked list of map pointer
Definition: main_conf_read.y:292
void readBase64(map **)
Read Base64 value and split it value by lines of 64 char.
Definition: server_internal.c:554
void runGetStatus(maps *, char *, char *)
Run GetStatus requests.
Definition: server_internal.c:991
KVP linked list.
Definition: service.h:244
char * getLastErrorMessage()
Access the last error message returned by the OS when trying to dynamically load a shared library...
Definition: server_internal.c:893
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:329
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:599
char * base64(const char *, int)
Base64 encoding of a char*.
Definition: server_internal.c:499
Profile registry.
Definition: main_conf_read.y:349
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:314
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:427
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:530
int getServiceFromYAML(maps *, char *, service **, char *name)
Read and parse a ZCFG file in YAML format.
Definition: service_yaml.c:47