@@ -803,25 +803,26 @@ int main(int argc, char **argv)
803803
804804 g_logger (G_LOG_LEVEL_INFO , "Rendering daemon started (version %s)" , VERSION );
805805
806+ g_logger (G_LOG_LEVEL_INFO , "Initialising request queue" );
806807 render_request_queue = request_queue_init ();
807808
808809 if (render_request_queue == NULL ) {
809810 g_logger (G_LOG_LEVEL_CRITICAL , "Failed to initialise request queue" );
810811 exit (1 );
811812 }
812813
813- g_logger (G_LOG_LEVEL_INFO , "Initialising request_queue" );
814-
815814 xmlconfigitem maps [XMLCONFIGS_MAX ];
816815 bzero (maps , sizeof (xmlconfigitem ) * XMLCONFIGS_MAX );
817816
818817 renderd_config config_slaves [MAX_SLAVES ];
819818 bzero (config_slaves , sizeof (renderd_config ) * MAX_SLAVES );
820819 bzero (& config , sizeof (renderd_config ));
821820
821+ g_logger (G_LOG_LEVEL_INFO , "Parsing config file: %s" , config_file_name );
822822 dictionary * ini = iniparser_load (config_file_name );
823823
824- if (! ini ) {
824+ if (!ini ) {
825+ g_logger (G_LOG_LEVEL_CRITICAL , "Failed to load config file: %s" , config_file_name );
825826 exit (1 );
826827 }
827828
@@ -830,19 +831,86 @@ int main(int argc, char **argv)
830831 int iconf = -1 ;
831832 char buffer [PATH_MAX ];
832833
834+ g_logger (G_LOG_LEVEL_DEBUG , "Parsing renderd config section(s)" );
835+
836+ for (int section = 0 ; section < iniparser_getnsec (ini ); section ++ ) {
837+ const char * name = iniparser_getsecname (ini , section );
838+
839+ if (strncmp (name , "renderd" , 7 ) == 0 ) {
840+ /* this is a renderd config section */
841+ int render_sec = 0 ;
842+
843+ if (sscanf (name , "renderd%i" , & render_sec ) != 1 ) {
844+ render_sec = 0 ;
845+ }
846+
847+ g_logger (G_LOG_LEVEL_DEBUG , "Parsing renderd config section %i: %s" , render_sec , name );
848+
849+ if (render_sec >= MAX_SLAVES ) {
850+ g_logger (G_LOG_LEVEL_CRITICAL , "Can't handle more than %i renderd config sections" ,
851+ MAX_SLAVES );
852+ exit (7 );
853+ }
854+
855+ snprintf (buffer , sizeof (buffer ), "%s:socketname" , name );
856+ config_slaves [render_sec ].socketname = iniparser_getstring (ini ,
857+ buffer , (char * ) RENDER_SOCKET );
858+ snprintf (buffer , sizeof (buffer ), "%s:iphostname" , name );
859+ config_slaves [render_sec ].iphostname = iniparser_getstring (ini ,
860+ buffer , "" );
861+ snprintf (buffer , sizeof (buffer ), "%s:ipport" , name );
862+ config_slaves [render_sec ].ipport = iniparser_getint (ini , buffer , 0 );
863+ snprintf (buffer , sizeof (buffer ), "%s:num_threads" , name );
864+ config_slaves [render_sec ].num_threads = iniparser_getint (ini ,
865+ buffer , NUM_THREADS );
866+ snprintf (buffer , sizeof (buffer ), "%s:tile_dir" , name );
867+ config_slaves [render_sec ].tile_dir = iniparser_getstring (ini ,
868+ buffer , (char * ) HASH_PATH );
869+ snprintf (buffer , sizeof (buffer ), "%s:stats_file" , name );
870+ config_slaves [render_sec ].stats_filename = iniparser_getstring (ini ,
871+ buffer , NULL );
872+ snprintf (buffer , sizeof (buffer ), "%s:pid_file" , name );
873+ config_slaves [render_sec ].pid_filename = iniparser_getstring (ini ,
874+ buffer , (char * ) PIDFILE );
875+
876+ if (render_sec == active_slave ) {
877+ config .socketname = config_slaves [render_sec ].socketname ;
878+ config .iphostname = config_slaves [render_sec ].iphostname ;
879+ config .ipport = config_slaves [render_sec ].ipport ;
880+ config .num_threads = config_slaves [render_sec ].num_threads ;
881+ config .tile_dir = config_slaves [render_sec ].tile_dir ;
882+ config .stats_filename
883+ = config_slaves [render_sec ].stats_filename ;
884+ config .pid_filename
885+ = config_slaves [render_sec ].pid_filename ;
886+ config .mapnik_plugins_dir = iniparser_getstring (ini ,
887+ "mapnik:plugins_dir" , (char * ) MAPNIK_PLUGINS );
888+ config .mapnik_font_dir = iniparser_getstring (ini ,
889+ "mapnik:font_dir" , (char * ) FONT_DIR );
890+ config .mapnik_font_dir_recurse = iniparser_getboolean (ini ,
891+ "mapnik:font_dir_recurse" , FONT_RECURSE );
892+ } else {
893+ noSlaveRenders += config_slaves [render_sec ].num_threads ;
894+ }
895+ }
896+ }
897+
898+ g_logger (G_LOG_LEVEL_DEBUG , "Parsing map config section(s)" );
899+
833900 for (int section = 0 ; section < iniparser_getnsec (ini ); section ++ ) {
834901 const char * name = iniparser_getsecname (ini , section );
835- g_logger (G_LOG_LEVEL_INFO , "Parsing section %s" , name );
836902
837903 if (strncmp (name , "renderd" , 7 ) && strcmp (name , "mapnik" )) {
838- if (config .tile_dir == NULL ) {
904+ /* this is a map config section */
905+ if (config .num_threads == NULL || config .tile_dir == NULL ) {
839906 g_logger (G_LOG_LEVEL_CRITICAL , "No valid (active) renderd config section available" );
840907 exit (7 );
841908 }
842909
843- /* this is a map section */
844910 iconf ++ ;
845911
912+ g_logger (G_LOG_LEVEL_DEBUG , "Parsing map config section %i: %s" , iconf , name );
913+
846914 if (iconf >= XMLCONFIGS_MAX ) {
847915 g_logger (G_LOG_LEVEL_CRITICAL , "Config: more than %d configurations found" , XMLCONFIGS_MAX );
848916 exit (7 );
@@ -960,62 +1028,6 @@ int main(int argc, char **argv)
9601028 * as it is needed to configure mapniks number of connections
9611029 */
9621030 maps [iconf ].num_threads = config .num_threads ;
963-
964- } else if (strncmp (name , "renderd" , 7 ) == 0 ) {
965- int render_sec = 0 ;
966-
967- if (sscanf (name , "renderd%i" , & render_sec ) != 1 ) {
968- render_sec = 0 ;
969- }
970-
971- g_logger (G_LOG_LEVEL_INFO , "Parsing render section %i" , render_sec );
972-
973- if (render_sec >= MAX_SLAVES ) {
974- g_logger (G_LOG_LEVEL_CRITICAL , "Can't handle more than %i render sections" ,
975- MAX_SLAVES );
976- exit (7 );
977- }
978-
979- snprintf (buffer , sizeof (buffer ), "%s:socketname" , name );
980- config_slaves [render_sec ].socketname = iniparser_getstring (ini ,
981- buffer , (char * ) RENDER_SOCKET );
982- snprintf (buffer , sizeof (buffer ), "%s:iphostname" , name );
983- config_slaves [render_sec ].iphostname = iniparser_getstring (ini ,
984- buffer , "" );
985- snprintf (buffer , sizeof (buffer ), "%s:ipport" , name );
986- config_slaves [render_sec ].ipport = iniparser_getint (ini , buffer , 0 );
987- snprintf (buffer , sizeof (buffer ), "%s:num_threads" , name );
988- config_slaves [render_sec ].num_threads = iniparser_getint (ini ,
989- buffer , NUM_THREADS );
990- snprintf (buffer , sizeof (buffer ), "%s:tile_dir" , name );
991- config_slaves [render_sec ].tile_dir = iniparser_getstring (ini ,
992- buffer , (char * ) HASH_PATH );
993- snprintf (buffer , sizeof (buffer ), "%s:stats_file" , name );
994- config_slaves [render_sec ].stats_filename = iniparser_getstring (ini ,
995- buffer , NULL );
996- snprintf (buffer , sizeof (buffer ), "%s:pid_file" , name );
997- config_slaves [render_sec ].pid_filename = iniparser_getstring (ini ,
998- buffer , (char * ) PIDFILE );
999-
1000- if (render_sec == active_slave ) {
1001- config .socketname = config_slaves [render_sec ].socketname ;
1002- config .iphostname = config_slaves [render_sec ].iphostname ;
1003- config .ipport = config_slaves [render_sec ].ipport ;
1004- config .num_threads = config_slaves [render_sec ].num_threads ;
1005- config .tile_dir = config_slaves [render_sec ].tile_dir ;
1006- config .stats_filename
1007- = config_slaves [render_sec ].stats_filename ;
1008- config .pid_filename
1009- = config_slaves [render_sec ].pid_filename ;
1010- config .mapnik_plugins_dir = iniparser_getstring (ini ,
1011- "mapnik:plugins_dir" , (char * ) MAPNIK_PLUGINS );
1012- config .mapnik_font_dir = iniparser_getstring (ini ,
1013- "mapnik:font_dir" , (char * ) FONT_DIR );
1014- config .mapnik_font_dir_recurse = iniparser_getboolean (ini ,
1015- "mapnik:font_dir_recurse" , FONT_RECURSE );
1016- } else {
1017- noSlaveRenders += config_slaves [render_sec ].num_threads ;
1018- }
10191031 }
10201032 }
10211033
0 commit comments