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 <libintl.h>
33 #include <locale.h>
34 
38 #define _(String) dgettext ("zoo-kernel",String)
39 
42 #define _ss(String) dgettext ("zoo-services",String)
43 
44 #include "service.h"
45 #include <openssl/sha.h>
46 #include <openssl/md5.h>
47 #include <openssl/hmac.h>
48 #include <openssl/evp.h>
49 #include <openssl/bio.h>
50 #include <openssl/buffer.h>
51 
52 extern int conf_read(const char*,maps*);
53 
54 #include <libxml/parser.h>
55 #include <libxml/xpath.h>
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
61  char *get_uuid();
62  char *base64(const char*,int);
63  char *base64d(const char*,int,int*);
64  void readBase64(map **);
65  char *url_decode(char *);
66  int getVersionId(const char*);
67  void readGeneratedFile(maps*,map*,char*);
68  int getServiceFromYAML(maps*,char*,service**,char *name);
69  char* addDefaultValues(maps**,elements*,maps*,int,map**);
70  char* getEncoding(maps*);
71  void parseIdentifier(maps*,char*,char*,char*);
73  void runDismiss(maps*,char*);
74  int isRunning(maps*,char*);
75  void runGetStatus(maps**,char*,char*);
76  void readFinalRes(maps*,char*,map*);
77 
78  int isValidLang(maps*,const char*);
79 
80  char* getLastErrorMessage();
81  int readServiceFile (maps *, char *, service **, char *);
82  int createRegistry (maps*,registry **,char *);
83  char* produceErrorMessage(maps*);
84 
85  int zoo_path_compare(char* path1, char* path2);
86  int getServicesNamespacePath(maps*,char*,char*,int);
87 #ifdef WIN32
88  char* getMapsAsKVP(maps*,int,int);
89 #endif
90 
91 #ifdef __cplusplus
92 }
93 #endif
94 
95 #endif
zoo_path_compare
int zoo_path_compare(char *path1, char *path2)
Definition: server_internal.c:54
readGeneratedFile
void readGeneratedFile(maps *, map *, char *)
Read a file generated by a service.
Definition: server_internal.c:374
isRunning
int isRunning(maps *, char *)
Check if a service is running.
Definition: server_internal.c:976
service.h
parseIdentifier
void parseIdentifier(maps *, char *, char *, char *)
Extract the service identifier from the full service identifier ie:
Definition: server_internal.c:141
isValidLang
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:287
dumpMapsValuesToFiles
void dumpMapsValuesToFiles(maps **, maps **)
Dump all values in a maps as files.
Definition: server_internal.c:433
service
Metadata information about a full Service.
Definition: service.h:715
elements
Metadata information about input or output.
Definition: service.h:700
getVersionId
int getVersionId(const char *)
Detect WPS version used (1.0.0 or 2.0.0).
Definition: server_internal.c:92
getServiceFromYAML
int getServiceFromYAML(maps *, char *, service **, char *name)
Read and parse a ZCFG file in YAML format.
Definition: service_yaml.c:47
addDefaultValues
char * addDefaultValues(maps **, elements *, maps *, int, map **)
Add the default values defined in the zcfg to a maps.
Definition: server_internal.c:605
getEncoding
char * getEncoding(maps *)
Access the value of the encoding key in a maps.
Definition: server_internal.c:334
base64d
char * base64d(const char *, int, int *)
Base64 decoding of a char*.
Definition: server_internal.c:537
readBase64
void readBase64(map **)
Read Base64 value and split it value by lines of 64 char.
Definition: server_internal.c:560
runDismiss
void runDismiss(maps *, char *)
Run Dismiss requests.
Definition: server_internal.c:1171
runGetStatus
void runGetStatus(maps **, char *, char *)
Run GetStatus requests.
Definition: server_internal.c:1009
produceErrorMessage
char * produceErrorMessage(maps *)
Create a string containing the basic error message.
Definition: server_internal.c:1394
maps
linked list of map pointer
Definition: service.h:678
conf_read
int conf_read(const char *, maps *)
Parse the main.cfg file and fill the maps structure.
Definition: main_conf_read.y:142
map
KVP linked list.
Definition: service.h:657
base64
char * base64(const char *, int)
Base64 encoding of a char*.
Definition: server_internal.c:506
get_uuid
char * get_uuid()
Generate a UUID.
Definition: server_internal.c:108
readFinalRes
void readFinalRes(maps *, char *, map *)
Read the Result file (.res).
Definition: server_internal.c:941
registry
Profile registry.
Definition: service.h:735
url_decode
char * url_decode(char *)
Decode an URLEncoded url.
Definition: server_internal.c:260
readServiceFile
int readServiceFile(maps *, char *, service **, char *)
Parse the service file using getServiceFromFile or use getServiceFromYAML if YAML support was activat...
Definition: server_internal.c:1292
createRegistry
int createRegistry(maps *, registry **, char *)
Create the profile registry.
Definition: server_internal.c:1318
getServicesNamespacePath
int getServicesNamespacePath(maps *, char *, char *, int)
Checks if the zooServicesNamespace map is present in the main map; if it is, the path to the director...
Definition: server_internal.c:1418
getLastErrorMessage
char * getLastErrorMessage()
Access the last error message returned by the OS when trying to dynamically load a shared library.
Definition: server_internal.c:901