static apr_status_t _ms_get_mapobj(void **conn_, void *params, apr_pool_t *pool) { mapcache_source_mapserver *src = (mapcache_source_mapserver*) params; struct mc_mapobj *mcmap = calloc(1,sizeof(struct mc_mapobj)); *conn_ = mcmap; mcmap->map = msLoadMap(src->mapfile,NULL); if(!mcmap->map) { errorObj *errors = NULL; msWriteError(stderr); errors = msGetErrorObj(); mcmap->error = apr_psprintf(pool,"Failed to load mapfile '%s'. Mapserver reports: %s",src->mapfile, errors->message); return APR_EGENERAL; } msMapSetLayerProjections(mcmap->map); return APR_SUCCESS; }
void mapcache_mapserver_connection_constructor(mapcache_context *ctx, void **conn_, void *params) { mapcache_source_mapserver *src = (mapcache_source_mapserver*) params; struct mc_mapobj *mcmap = calloc(1,sizeof(struct mc_mapobj)); mcmap->map = msLoadMap(src->mapfile,NULL); if(!mcmap->map) { errorObj *errors = NULL; ctx->set_error(ctx, 500, "Failed to load mapfile '%s'",src->mapfile); errors = msGetErrorObj(); while(errors) { ctx->set_error(ctx, 500, "Failed to load mapfile '%s'. Mapserver reports: %s",src->mapfile, errors->message); errors = errors->next; } return; } msMapSetLayerProjections(mcmap->map); *conn_ = mcmap; }