ZOO-Project
Macros | Functions
server_internal.h File Reference
#include "ulinet.h"
#include "service.h"
#include <openssl/sha.h>
#include <openssl/md5.h>
#include <openssl/hmac.h>
#include <openssl/evp.h>
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <libxml/parser.h>
#include <libxml/xpath.h>

Go to the source code of this file.

Macros

#define IMPORTSERVICE   "include"
 

Functions

int conf_read (const char *, maps *)
 Parse the main.cfg file and fill the maps structure. More...
 
char * get_uuid ()
 Generate a UUID. More...
 
char * base64 (const char *, int)
 Base64 encoding of a char*. More...
 
char * base64d (const char *, int, int *)
 Base64 decoding of a char*. More...
 
void readBase64 (map **)
 Read Base64 value and split it value by lines of 64 char. More...
 
char * url_decode (char *)
 Decode an URLEncoded url. More...
 
int getVersionId (const char *)
 Detect WPS version used (1.0.0 or 2.0.0). More...
 
void readGeneratedFile (maps *, map *, char *)
 Read a file generated by a service. More...
 
int getServiceFromYAML (maps *, char *, service **, char *name)
 Read and parse a ZCFG file in YAML format. More...
 
char * addDefaultValues (maps **, elements *, maps *, int, map **)
 Add the default values defined in the zcfg to a maps. More...
 
char * getEncoding (maps *)
 Access the value of the encoding key in a maps. More...
 
void parseIdentifier (maps *, char *, char *, char *)
 Extract the service identifier from the full service identifier ie: More...
 
void dumpMapsValuesToFiles (maps **, maps **)
 Dump all values in a maps as files. More...
 
void runDismiss (maps *, char *)
 Run Dismiss requests. More...
 
void runGetStatus (maps *, char *, char *)
 Run GetStatus requests. More...
 
int isValidLang (maps *, const char *)
 Verify if a given language is listed in the lang list defined in the [main] section of the main.cfg file. More...
 
char * getLastErrorMessage ()
 Access the last error message returned by the OS when trying to dynamically load a shared library. More...
 
int readServiceFile (maps *, char *, service **, char *)
 Parse the service file using getServiceFromFile or use getServiceFromYAML if YAML support was activated. More...
 
int createRegistry (maps *, registry **, char *)
 Create the profile registry. More...
 
int zoo_path_compare (char *path1, char *path2)
 

Macro Definition Documentation

#define IMPORTSERVICE   "include"

Function Documentation

char* addDefaultValues ( maps **  out,
elements in,
maps m,
int  type,
map **  err 
)

Add the default values defined in the zcfg to a maps.

Parameters
outthe maps containing the inputs or outputs given in the initial HTTP request
inthe description of all inputs or outputs available for a service
mthe maps containing the settings of the main.cfg file
type0 for inputs and 1 for outputs
errthe map to store potential missing mandatory input parameters or wrong output names depending on the type.
Returns
"" if no error was detected, the name of last input or output causing an error.

In case of an Input maps, then add the minOccurs and maxOccurs to the content map.

Parsing BoundingBoxData, fill the following map and then add it to the content map of the Input maps: lowerCorner, upperCorner, srs and dimensions cf. parseBoundingBox

char* base64 ( const char *  input,
int  length 
)

Base64 encoding of a char*.

Parameters
inputthe value to encode
lengththe value length
Returns
the buffer containing the base64 value
Warning
make sure to free the returned value
char* base64d ( const char *  input,
int  length,
int *  red 
)

Base64 decoding of a char*.

Parameters
inputthe value to decode
lengththe value length
redthe value length
Returns
the buffer containing the base64 value
Warning
make sure to free the returned value
int conf_read ( const char *  file,
maps my_map 
)

Parse the main.cfg file and fill the maps structure.

Parameters
filethe filename to parse
my_mapthe maps structure to fill
int createRegistry ( maps m,
registry **  r,
char *  reg_dir 
)

Create the profile registry.

The profile registry is optional (created only if the registry key is available in the [main] section of the main.cfg file) and can be used to store the profiles hierarchy. The registry is a directory which should contain the following sub-directories:

  • concept: direcotry containing .html files describing concept
  • generic: directory containing .zcfg files for wps:GenericProcess
  • implementation: directory containing .zcfg files for wps:Process
Parameters
mthe conf maps containing the main.cfg settings
rthe registry to update
reg_dirthe resgitry
Returns
0 if the resgitry is null or was correctly updated, -1 on failure
void dumpMapsValuesToFiles ( maps **  main_conf,
maps **  in 
)

Dump all values in a maps as files.

Parameters
main_confthe maps containing the settings of the main.cfg file
inthe maps containing values to dump as files
char* get_uuid ( )

Generate a UUID.

ref: https://www.ietf.org/rfc/rfc4122.txt / 4.2

Returns
a new char* containing the UUID, make sure to free the returned resource once used.
char* getEncoding ( maps m)

Access the value of the encoding key in a maps.

Parameters
mthe maps to search for the encoding key
Returns
the value of the encoding key in a maps if encoding key exists, "UTF-8" in other case.
char* getLastErrorMessage ( )

Access the last error message returned by the OS when trying to dynamically load a shared library.

Returns
the last error message
Warning
The character string returned from getLastErrorMessage resides in a static buffer. The application should not write to this buffer or attempt to free() it.
int getServiceFromYAML ( maps conf,
char *  file,
service **  service,
char *  name 
)

Read and parse a ZCFG file in YAML format.

Parameters
confthe conf maps containing the main.cfg settings
filethe file name to read
servicethe service structure to fill
namethe service name
Returns
1 on success, -1 if error occurred
int getVersionId ( const char *  version)

Detect WPS version used (1.0.0 or 2.0.0).

Parameters
versionnumber as char* (1.0.0 or 2.0.0)
Returns
0 in case of version 1.0.0, 1 for 2.0.0, -1 in other case
int isValidLang ( maps conf,
const char *  str 
)

Verify if a given language is listed in the lang list defined in the [main] section of the main.cfg file.

Parameters
confthe map containing the settings from the main.cfg file
strthe specific language
Returns
1 if the specific language is listed, -1 in other case.
void parseIdentifier ( maps conf,
char *  conf_dir,
char *  identifier,
char *  buffer 
)

Extract the service identifier from the full service identifier ie:

  • Full service name: OTB.BandMath
  • Service name: BandMath
Parameters
confthe maps containing the settings of the main.cfg file
conf_dirthe full path to the ZOO-Kernel directory
identifierthe full service name (potentialy including a prefix, ie: Prefix.MyService)
bufferthe resulting service identifier (without any prefix)
void readBase64 ( map **  in)

Read Base64 value and split it value by lines of 64 char.

Parameters
inthe map containing the value to split
void readGeneratedFile ( maps m,
map content,
char *  filename 
)

Read a file generated by a service.

Parameters
mthe conf maps
contentthe output item
filenamethe file to read
int readServiceFile ( maps conf,
char *  file,
service **  service,
char *  name 
)

Parse the service file using getServiceFromFile or use getServiceFromYAML if YAML support was activated.

Parameters
confthe conf maps containing the main.cfg settings
filethe file name to parse
servicethe service to update witht the file content
namethe service name
Returns
true if the file can be parsed or false
See also
getServiceFromFile, getServiceFromYAML
void runDismiss ( maps conf,
char *  pid 
)

Run Dismiss requests.

Parameters
confthe maps containing the setting of the main.cfg file
pidthe service identifier (usid key from the [lenv] section)
void runGetStatus ( maps conf,
char *  pid,
char *  req 
)

Run GetStatus requests.

Parameters
confthe maps containing the setting of the main.cfg file
pidthe service identifier (usid key from the [lenv] section)
reqthe request (GetStatus / GetResult)
char* url_decode ( char *  str)

Decode an URLEncoded url.

Parameters
strthe URLEncoded url to decode
Returns
a url-decoded version of str
Warning
be sure to free() the returned string after use
int zoo_path_compare ( char *  path1,
char *  path2 
)