~schuster/mysql-proxy/filemode

« back to all changes in this revision

Viewing changes to src/chassis.c

  • Committer: jan at mysql
  • Date: 2009-11-25 19:36:40 UTC
  • Revision ID: jan@mysql.com-20091125193640-xftsi433v4j14dn0
show errors in case setenv() fails

Show diffs side-by-side

added added

removed removed

Lines of Context:
302
302
        abort(); /* trigger a SIGABRT instead of just exiting */
303
303
}
304
304
 
305
 
static chassis_setenv_lua(const char *key, const char *value) {
 
305
static int chassis_setenv_lua(const char *key, const char *value) {
 
306
        int r;
306
307
#if _WIN32
307
308
        /** on Win32 glib uses _wputenv to set the env variable,
308
309
         *  but Lua uses getenv. Those two don't see each other,
310
311
         *  is safe.
311
312
         */
312
313
        gchar *env_path = g_strdup_printf("%s=%s", key, value);
313
 
        _putenv(env_path);
 
314
        r = _putenv(env_path);
314
315
        g_free(env_path);
315
316
#else
316
 
        g_setenv(key, value, 1);
 
317
        r = g_setenv(key, value, 1);
317
318
#endif
 
319
        return r;
318
320
}
319
321
 
320
322
/**
576
578
         * we want to derive it from the basedir ...
577
579
         */
578
580
        if (lua_path) {
579
 
                chassis_setenv_lua(LUA_PATH, lua_path);
 
581
                if (chassis_setenv_lua(LUA_PATH, lua_path)) {
 
582
                        g_critical("%s: setting %s = %s failed: %s", G_STRLOC,
 
583
                                        LUA_PATH, lua_path,
 
584
                                        g_strerror(errno));
 
585
                }
580
586
                if (print_version) printf("    LUA_PATH: %s" CHASSIS_NEWLINE, lua_path);
581
587
        } else if (!g_getenv(LUA_PATH)) {
582
588
                gchar *path = g_build_filename(base_dir, "lib", "mysql-proxy", "lua", "?.lua", NULL);
583
589
                if (print_version) printf("    LUA_PATH: %s" CHASSIS_NEWLINE, path);
584
 
 
585
 
                chassis_setenv_lua(LUA_PATH, path);
586
 
 
 
590
                
 
591
                if (chassis_setenv_lua(LUA_PATH, path)) {
 
592
                        g_critical("%s: setting %s = %s failed: %s", G_STRLOC,
 
593
                                        LUA_PATH, path,
 
594
                                        g_strerror(errno));
 
595
                }
 
596
                
587
597
                g_free(path);
588
598
        } else {
589
599
                if (print_version) printf("    LUA_PATH: %s" CHASSIS_NEWLINE, g_getenv(LUA_PATH));
590
600
        }
591
601
 
592
602
        if (lua_cpath) {
593
 
                chassis_setenv_lua(LUA_CPATH, lua_cpath);
 
603
                if (chassis_setenv_lua(LUA_CPATH, lua_cpath)) {
 
604
                        g_critical("%s: setting %s = %s failed: %s", G_STRLOC,
 
605
                                        LUA_CPATH, lua_cpath,
 
606
                                        g_strerror(errno));
 
607
                }
594
608
                if (print_version) printf("    LUA_CPATH: %s" CHASSIS_NEWLINE, lua_cpath);
595
609
        } else if (!g_getenv(LUA_CPATH)) {
596
610
                /* each OS has its own way of declaring a shared-lib extension
606
620
#  endif
607
621
                if (print_version) printf("    LUA_CPATH: %s" CHASSIS_NEWLINE, path);
608
622
 
609
 
                chassis_setenv_lua(LUA_CPATH, path);
 
623
                if (chassis_setenv_lua(LUA_CPATH, path)) {
 
624
                        g_critical("%s: setting %s = %s failed: %s", G_STRLOC,
 
625
                                        LUA_CPATH, path,
 
626
                                        g_strerror(errno));
 
627
                }
610
628
 
611
629
                g_free(path);
612
630
        } else {