Changeset 553


Ignore:
Timestamp:
Feb 3, 2015, 6:38:21 PM (9 years ago)
Author:
david
Message:
  • change user privileges
  • add new parameters in main.cfg
Location:
branches/PublicaMundi_David-devel/zoo-project/zoo-kernel
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/PublicaMundi_David-devel/zoo-project/zoo-kernel/main.cfg

    r465 r553  
    1 [mm]
    2 biLayerAlias=Carte,Ortophoto,Ortophoto 2005,Parcels,Etat Major,Cassini,Elev
    3 editingToolbar=select,add,edit
    4 navName=Authenticate,Permalink,Twitter sharing,Facebook sharing,Scroll,Pan,Geolocate,Track my position,Zoom Box,Zoom To Max Extent,Identify,Identify Circle,Mesure Distance,Mesure Area,Print,Profile
    5 scales=443744273,221872136,110936068,55468034,27734017,13867008,6933504,3466752,1733376,866688,433344,216672,108336,54168,27084,13542,6771,3385,1692
    6 rasterToolbarAlias=Profile,Contour,Shaded Relief,Color Relief,Slope Map,Clip
    7 supportedDbs=PostGIS,MySQL
    8 mapcacheUrl=http://127.0.0.1/cache/
    9 biLayers=GEOGRAPHICALGRIDSYSTEMS.MAPS,ORTHOIMAGERY.ORTHOPHOTOS,ORTHOIMAGERY.ORTHOPHOTOS2000-2005,CADASTRALPARCELS.PARCELS,GEOGRAPHICALGRIDSYSTEMS.ETATMAJOR40,GEOGRAPHICALGRIDSYSTEMS.CASSINI,ELEVATION.SLOPES
    10 bgLayers=google.maps.MapTypeId.TERRAIN,null,google.maps.MapTypeId.SATELLITE,google.maps.MapTypeId.HYBRID
    11 bpDefault=g
    12 bgName=Google
    13 bbLayers=Road,Aerial,AerialWithLabels
    14 navIcon=auth,permalink,tshare,fshare,scroll,pan,geoloc,track,zoom-in,zoomtomaxextent,info,infocircle,dist,area,print,terrain-profile
    15 bbName=Bing
    16 boLayerAlias=OpenStreetMap
    17 bmLayerAlias=Streets,Satelite
    18 toolbars=Vector
    19 navId=authenticate,permalink,tshare,fshare,scroll,control,geolocate,track,zoomin,zoomtomaxextent,getFeature,getFeatureCircle,line,polygon,print,profile
    20 navIdX=authenticate,permalink,tshare,fshare,zoomtomaxextent,print
    21 navIdXX=scroll
    22 navIdF=loadLoginForm,permalink,shareOnTwitter,shareOnFB,gotoMaxExtent,printIntoDocument
    23 nvIID=getFeature,getFeatureCircle
    24 osmApiUrl=http://open.mapquestapi.com/xapi/api/0.6/
    25 vectorToolbar=buffer,spatial-buffer,centroid,boundary,convexhull,simplify,spatial-query
    26 bmLayers=Map,Aerial
    27 boName=OSM
    28 editingToolbarAlias=Select feature,Add feature,Edit feature
    29 boLayers=OSM
    30 address=http://127.0.0.1/mm
    31 bmName=MapQuest
    32 bpList=g,b,i
    33 uomsName=Foot,Meter,Deegree
    34 adminTheme=green
    35 vectorToolbarAlias=Buffer,BufferMask,Centroid,Boundary,ConvexHull,Simplify,SpatialQuery
    36 mapcacheCfg=/Users/djay/Sites/mapcache.xml
    37 dateFormat=%A %d %B %Y
    38 uomsId=english,metric,geographic
    39 oldToolbars=Editing,Raster
    40 rasterToolbar=profile,contour,shaded_relief,color_relief,slope_map,clip
    41 bgLayerAlias=Physical,Streets,Satelite,Hybrid
    42 bbLayerAlias=Streets,Satelite,Hybrid
    43 sizeLimit=100M
    44 biName=IGN
     1[server]
     2req_worker=10
     3async_worker=10
     4max_requests=200
     5listen=/tmp/zoo.sock
     6listen_queue=200
     7listen_owner=81
     8listen_group=81
     9listen_mode=0660
     10uid=65534
     11gid=65534
     12#rootDir=/var/www/zoo-wps/cgi-bin
    4513
    4614[headers]
     
    7341isTrial=true
    7442dataPath=/Users/djay/Sites/data
    75 tmpPath=/Users/djay/Sites/tmp
     43tmpPath=/tmp/
    7644supportedDbs=PostGIS,MySQL,WFS
    77 cacheDir=/Users/djay/Sites/cache
     45cacheDir=/tmp/
    7846rootUrl=/~djay/mm-np/public/
    7947publicationUrl=/~djay/pm-np/
    8048dblink=/Users/djay/Sites/mm.db
    81 mmPath=/Users/djay/Sites/mm-np/
    8249sessPath=/Users/djay/Sites/tmp
    8350version=1.0.0
     
    8855Rpy2=true
    8956applicationAddress=http://127.0.0.1/~djay/mm-np/
    90 mmAddress=/~djay/mm-np/
    9157publicationPath=/Users/djay/Sites/pm-np/
    92 msOgcVersion=1.0.0
    93 serverAddress=http://127.0.0.1/np-bin/zoo_loader.cgi
     58serverAddress=http://127.0.0.1
    9459lang=fr-FR,en-US,ja-JP
    95 mapserverAddress=http://127.0.0.1/np-bin/mapserv.cgi
    9660tmpUrl=http://127.0.0.1/~djay/tmp/
    97 templatesPath=/Users/djay/Sites/mm-np/templates/
    9861templatesAddress=http://127.0.0.1/~djay/pm-np/tmpl/
    99 crs=IGNF:LAMB93
    10062jsCache=dev
    10163cssCache=prod
    10264cookiePrefix=MMID
    10365
    104 [npdb]
    105 host=127.0.0.1
    106 schema=velo
    107 user=postgres
    108 dbname=demogis
    109 port=5432
    110 
    111 [oo]
    112 external=true
    113 path=/Applications/LibreOffice.app/Contents/program/python
    114 ghostscript=/usr/local/bin/gs
  • branches/PublicaMundi_David-devel/zoo-project/zoo-kernel/service_zcfg.c

    r549 r553  
    126126init_services_conf (char *rootDir)
    127127{
    128   maps *m = (maps *) malloc (MAP_SIZE);
     128  maps *m = (maps *) malloc (MAPS_SIZE);
    129129  GList *L = NULL;
    130130  scanServiceCfg (rootDir, &L, 0);
     
    138138      serviceCfgList = g_list_append (serviceCfgList, s1);
    139139    }
    140   freeMaps(&m);
     140
     141  //freeMaps(&m);
    141142}
    142143
  • branches/PublicaMundi_David-devel/zoo-project/zoo-kernel/zoo_loader.c

    r549 r553  
    6262#include <glib.h>
    6363#include <sys/stat.h>
     64#include <ctype.h>
     65
    6466}
    6567
     
    476478main (int argc, char *argv[])
    477479{
    478   maps *main_config;
    479   int max_requests, start_servers;
    480   start_servers = 10;
    481   max_requests= 100;
    482   main_config = (maps *) malloc (MAP_SIZE);
    483   conf_read ("main.cfg", main_config);
    484   char ntmp[1024];
    485 #ifndef WIN32
    486   getcwd (ntmp, 1024);
    487 #else
    488   _getcwd (ntmp, 1024);
    489 #endif
    490   char *rootDir = "/var/www/zoo-wps/cgi-bin";
     480
     481
     482 int debug_flag = 0;
     483 int background_flag = 0;
     484 char *file_value = NULL;
     485 int index;
     486 int c;
     487
     488 opterr = 0;
     489 while ((c = getopt (argc, argv, "dbhf:")) != -1)
     490      switch (c)
     491      {
     492      case 'd':
     493        debug_flag = 1;
     494        break;
     495      case 'b':
     496        background_flag = 1;
     497        break;
     498      case 'h':
     499        fprintf(stderr,"TODO: need to print help\n");
     500        fflush(stderr);
     501        return 0;
     502      case 'f':
     503        file_value = optarg;
     504        break;
     505      case '?':
     506        if (optopt == 'f')
     507          fprintf (stderr, "Option -%c requires an argument.\n", optopt);
     508        else if (isprint (optopt))
     509          fprintf (stderr, "Unknown option `-%c'.\n", optopt);
     510        else
     511          fprintf (stderr,"Unknown option character `\\x%x'.\n",optopt);
     512        return 1;
     513      default:
     514        abort ();
     515      }
     516
     517
     518  maps *conf;
     519  conf = (maps *) malloc (MAPS_SIZE);
     520 
     521  int ret = conf_read (file_value, conf);
     522  if ( ret == 2){
     523    //a verifier mais conf_read ne renvoie jamais 0
     524    fprintf(stderr,"Erreur lors de la lecture de %s\n",file_value);
     525    return 1;
     526  }
     527
     528  char *rootDir;
     529  map *m_rootDir = getMapFromMaps (conf, "server", "rootDir");
     530  if (m_rootDir == NULL){
     531    fprintf(stderr,"Configuration error: rootDir");
     532    return 2;
     533  }
     534  else {
     535   rootDir = (char*)malloc((strlen(m_rootDir->value) +1)*sizeof(char*));
     536   strncpy(rootDir,m_rootDir->value,strlen(m_rootDir->value));
     537   rootDir[strlen(m_rootDir->value)] = '\0';
     538   //freeMap(&m_rootDir);
     539  }
     540
     541  int req_worker;
     542  map *m_req_worker = getMapFromMaps (conf, "server", "req_worker");
     543  if (m_req_worker == NULL){
     544    fprintf(stderr,"Configuration error: req_worker not found");
     545    return 2;
     546  }
     547  else {
     548    req_worker=atoi(m_req_worker->value);
     549    //freeMap(&m_req_worker);
     550    if (req_worker == 0){
     551        fprintf(stderr,"Configuration error: req_worker");
     552        return 2;
     553    }
     554  }
     555 
     556  int async_worker;
     557  map *m_async_worker = getMapFromMaps (conf, "server", "async_worker"); 
     558  if (m_async_worker == NULL){
     559    fprintf(stderr,"Configuration error: async_worker not found");
     560    return 2;
     561  }
     562  else {
     563    async_worker = atoi(m_async_worker->value);
     564    //freeMap(&m_async_worker);
     565    if (async_worker == 0){
     566        fprintf(stderr,"Configuration error: req_worker");
     567        return 2;
     568    }
     569  }
     570
     571  int max_requests;
     572  map *m_max_requests = getMapFromMaps (conf, "server", "max_requests");
     573  if (m_max_requests == NULL){
     574    fprintf(stderr,"Configuration error: max_requests");
     575    return 2;
     576  }
     577  else {
     578    max_requests = atoi(m_max_requests->value);
     579    //freeMap(&m_max_requests);
     580    if (max_requests == 0){
     581        fprintf(stderr,"Configuration error: max_requests");
     582        return 2;
     583    }
     584  }
     585
     586  map *m_listen = getMapFromMaps (conf, "server", "listen");
     587  char *listen;
     588  if (m_listen == NULL){
     589    fprintf(stderr,"Configuration error: listen not found");
     590    return 2;
     591  }
     592  else {
     593    listen = (char *)malloc((strlen(m_listen->value) +1)*sizeof(char*));
     594    strncpy(listen,m_listen->value,strlen(m_listen->value));
     595    listen[strlen(m_listen->value)] = '\0';
     596    //freeMap(&m_listen);
     597  }
     598  int listen_owner;
     599  map *m_listen_owner = getMapFromMaps (conf, "server", "listen_owner");
     600  if (m_listen_owner == NULL){
     601    fprintf(stderr,"Configuration error: listen_owner");
     602    return 2;
     603  }
     604  else {
     605    listen_owner = atoi(m_listen_owner->value);
     606    //freeMap(&m_listen_owner);
     607    if (listen_owner == 0){
     608        fprintf(stderr,"Configuration error: listen_owner");
     609        return 2;
     610    }
     611  }
     612
     613  int listen_group;
     614  map *m_listen_group = getMapFromMaps (conf, "server", "listen_group");
     615  if (m_listen_group == NULL){
     616    fprintf(stderr,"Configuration error: listen_group");
     617    return 2;
     618  }
     619  else {
     620    listen_group = atoi(m_listen_group->value);
     621    //freeMap(&m_listen_group);
     622    if (listen_group == 0){
     623        fprintf(stderr,"Configuration error: listen_group");
     624        return 2;
     625    }
     626  }
     627
     628  char * listen_mode;
     629  map *m_listen_mode = getMapFromMaps (conf, "server", "listen_mode");
     630  if (m_listen_mode == NULL){
     631    fprintf(stderr,"Configuration error: listen_mode");
     632    return 2;
     633  }
     634  else {
     635    listen_mode = (char *)malloc((strlen(m_listen_mode->value) +1)*sizeof(char*));
     636    strncpy(listen_mode,m_listen_mode->value,strlen(m_listen_mode->value));
     637    listen_mode[strlen(m_listen_mode->value)] = '\0';
     638    //freeMap(&m_listen_mode);
     639  }
     640
     641  int listen_queue;
     642  map *m_listen_queue = getMapFromMaps (conf, "server", "listen_queue");
     643  if (m_listen_queue == NULL){
     644    fprintf(stderr,"Configuration error: listen_queue");
     645    return 2;
     646  }
     647  else {
     648    listen_queue = atoi(m_listen_queue->value);
     649    //freeMap(&m_listen_queue);
     650    if (listen_queue == 0){
     651        fprintf(stderr,"Configuration error: listen_queue");
     652        return 2;
     653    }
     654  }
     655
     656  int id_user;
     657  map *m_user = getMapFromMaps (conf, "server", "uid");
     658  if (m_user == NULL){
     659    fprintf(stderr,"Configuration error: id_user");
     660    return 2;
     661  }
     662  else {
     663    id_user = atoi(m_user->value);
     664    //freeMap(&m_user);
     665    if (id_user == 0){
     666        fprintf(stderr,"Configuration error: id_user");
     667        return 2;
     668    }
     669  }
     670
     671
     672  int id_group;
     673  map *m_group = getMapFromMaps (conf, "server", "gid");
     674  if (m_group == NULL){
     675    fprintf(stderr,"Configuration error: gid");
     676    return 2;
     677  }
     678  else {
     679    id_group = atoi(m_group->value);
     680    //freeMap(&m_group);
     681    if (id_group == 0){
     682        fprintf(stderr,"Configuration error: id_group");
     683        return 2;
     684    }
     685  }
     686
     687  int sock = FCGX_OpenSocket(listen, listen_queue);
     688  init_services_conf (rootDir);
     689 
     690  ret = chown(listen, listen_owner, listen_group);
     691  if (ret != 0){
     692    fprintf(stderr,"Change owner error on : %s\n",listen);
     693    return 3;
     694  }
     695 
     696  ret = setgid(id_group);
     697  if (ret != 0){
     698    fprintf(stderr,"Change gid error\n");
     699    return 3;
     700  }
     701
     702  ret = setuid(id_user);
     703  if (ret != 0){
     704    fprintf(stderr,"Change uid error\n");
     705    return 3;
     706  }
     707 
    491708  int fork_status = fork();
    492709  if (fork_status == 0){
    493710    //child
    494711    int forker_pid = getpid();
    495     init_services_conf (rootDir);
    496     int sock = FCGX_OpenSocket(PATH_SOCKET, 1000);
    497712    FCGX_Init();
    498713    FCGX_Request request;
     
    500715    int i;
    501716    int count_request = 0;
    502     for (i = 0; i< start_servers; i++){
     717    for (i = 0; i< req_worker; i++){
    503718        fork_status = fork();
    504719        if (fork_status == 0){
     
    532747  while(1);
    533748
    534 
    535 
    536749  }
    537750 
  • branches/PublicaMundi_David-devel/zoo-project/zoo-kernel/zoo_service_loader.c

    r549 r553  
    212212}
    213213
    214 /**
    215 int
    216 recursReaddirF (maps * m, xmlNodePtr n, char *conf_dir, char *prefix,
    217                 int saved_stdout, int level, void (func) (maps *,
    218                                                           xmlNodePtr,
    219                                                           service *))
    220 {
    221   struct dirent *dp;
    222   int scount = 0;
    223 
    224   if (conf_dir == NULL)
    225     return 1;
    226   DIR *dirp = opendir (conf_dir);
    227   if (dirp == NULL)
    228     {
    229       if (level > 0)
    230         return 1;
    231       else
    232         return -1;
    233     }
    234   char tmp1[25];
    235   sprintf (tmp1, "sprefix_%d", level);
    236   char levels[17];
    237   sprintf (levels, "%d", level);
    238   setMapInMaps (m, "lenv", "level", levels);
    239   while ((dp = readdir (dirp)) != NULL)
    240     if ((dp->d_type == DT_DIR || dp->d_type == DT_LNK)
    241         && dp->d_name[0] != '.' && strstr (dp->d_name, ".") == NULL)
    242       {
    243 
    244         char *tmp =
    245           (char *)
    246           malloc ((strlen (conf_dir) + strlen (dp->d_name) +
    247                    2) * sizeof (char));
    248         sprintf (tmp, "%s/%s", conf_dir, dp->d_name);
    249 
    250         if (prefix != NULL)
    251           {
    252             prefix = NULL;
    253           }
    254         prefix = (char *) malloc ((strlen (dp->d_name) + 2) * sizeof (char));
    255         sprintf (prefix, "%s.", dp->d_name);
    256 
    257         // map* tmpMap=getMapFromMaps(m,"lenv",tmp1);
    258 
    259         int res;
    260         if (prefix != NULL)
    261           {
    262             setMapInMaps (m, "lenv", tmp1, prefix);
    263             char levels1[17];
    264             sprintf (levels1, "%d", level + 1);
    265             setMapInMaps (m, "lenv", "level", levels1);
    266             res =
    267               recursReaddirF (m, n, tmp, prefix, saved_stdout,
    268                               level + 1, func);
    269             sprintf (levels1, "%d", level);
    270             setMapInMaps (m, "lenv", "level", levels1);
    271             free (prefix);
    272             prefix = NULL;
    273           }
    274         else
    275           res = -1;
    276         free (tmp);
    277         if (res < 0)
    278           {
    279             return res;
    280           }
    281       }
    282     else
    283       {
    284         if (dp->d_name[0] != '.' && strstr (dp->d_name, ".zcfg") != 0)
    285           {
    286             int t;
    287             char tmps1[1024];
    288             memset (tmps1, 0, 1024);
    289             snprintf (tmps1, 1024, "%s/%s", conf_dir, dp->d_name);
    290             service *s1 = (service *) malloc (SERVICE_SIZE);
    291             if (s1 == NULL)
    292               {
    293                 dup2 (saved_stdout, fileno (stdout));
    294                 errorException (m, _("Unable to allocate memory."),
    295                                 "InternalError", NULL);
    296                 return -1;
    297               }
    298 #ifdef DEBUG
    299             fprintf (stderr,
    300                      "#################\n%s\n#################\n", tmps1);
    301 #endif
    302             t = readServiceFile (m, tmps1, &s1, dp->d_name);
    303 
    304             if (t < 0)
    305               {
    306                 map *tmp00 = getMapFromMaps (m, "lenv", "message");
    307                 char tmp01[1024];
    308                 if (tmp00 != NULL)
    309                   sprintf (tmp01,
    310                            _
    311                            ("Unable to parse the ZCFG file: %s (%s)"),
    312                            dp->d_name, tmp00->value);
    313                 else
    314                   sprintf (tmp01,
    315                            _
    316                            ("Unable to parse the ZCFG file: %s."),
    317                            dp->d_name);
    318                 dup2 (saved_stdout, fileno (stdout));
    319                 errorException (m, tmp01, "InternalError", NULL);
    320                 freeMaps (&m);
    321                 free (m);
    322                 return -1;
    323               }
    324 #ifdef DEBUG
    325             dumpService (s1);
    326             fflush (stdout);
    327             fflush (stderr);
    328 #endif
    329             func (m, n, s1);
    330             freeService (&s1);
    331             free (s1);
    332             scount++;
    333           }
    334       }
    335   (void) closedir (dirp);
    336   return 1;
    337 }
    338 **/
    339214xmlXPathObjectPtr
    340215extractFromDoc (xmlDocPtr doc, const char *search)
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png