|
|
| version 1.39, 2025/04/15 16:49:36 | version 1.43, 2026/03/24 00:25:36 |
|---|---|
| Line 24 | Line 24 |
| * along with FreeM. If not, see <https://www.gnu.org/licenses/>. | * along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
| * | * |
| * $Log$ | * $Log$ |
| * Revision 1.43 2026/03/24 00:25:36 snw | |
| * Fix segfault when running \'fmadm status\' without a second argument | |
| * | |
| * Revision 1.42 2025/05/13 20:03:53 snw | |
| * Error-check fopen in fm_daemonctl | |
| * | |
| * Revision 1.41 2025/04/25 20:08:19 snw | |
| * Work on improving routine importer | |
| * | |
| * Revision 1.40 2025/04/15 18:19:40 snw | |
| * Further attempts to fix FreeBSD | |
| * | |
| * Revision 1.39 2025/04/15 16:49:36 snw | * Revision 1.39 2025/04/15 16:49:36 snw |
| * Make use of logprintf throughout codebase | * Make use of logprintf throughout codebase |
| * | * |
| Line 208 extern char env_config_file[4096]; | Line 220 extern char env_config_file[4096]; |
| extern char env_user[255]; | extern char env_user[255]; |
| extern char env_group[255]; | extern char env_group[255]; |
| extern char env_enabled[10]; | extern char env_enabled[10]; |
| extern char shm_env[255]; | |
| int fm_shell(void); | int fm_shell(void); |
| void fm_checkperms(void); | void fm_checkperms(void); |
| Line 391 int main (int argc, char **argv) | Line 404 int main (int argc, char **argv) |
| snprintf (env_config_file, sizeof (env_config_file) - 1, "%s/freem/env.conf", SYSCONFDIR); | snprintf (env_config_file, sizeof (env_config_file) - 1, "%s/freem/env.conf", SYSCONFDIR); |
| /* | |
| printf ("action = '%s' object = '%s' environment = '%s' namespace = '%s' config_file = '%s' base_arg = '%d' next argument = '%s'\n", action, obj_str, fma_environment, fma_namespace, config_file, base_arg, argv[base_arg]); | //printf ("action = '%s' object = '%s' environment = '%s' namespace = '%s' config_file = '%s' base_arg = '%d' next argument = '%s'\n", action, obj_str, fma_environment, fma_namespace, config_file, base_arg, argv[base_arg]); |
| exit(1); | //exit(1); |
| */ | |
| strncpy (shm_env, fma_environment, sizeof (shm_env) - 1); | |
| init_log (); | init_log (); |
| /* override for fmadm configure and daemon stuff */ | /* override for fmadm configure and daemon stuff */ |
| Line 422 int main (int argc, char **argv) | Line 436 int main (int argc, char **argv) |
| obj = OBJ_DAEMON; | obj = OBJ_DAEMON; |
| goto process_args; | goto process_args; |
| } | } |
| else if (strcmp (argv[1], "status") == 0 && strcmp (argv[2], "environment") == 0) { | else if (strcmp (argv[1], "status") == 0) { |
| act = ACT_STATUS; | if (argc < 3) { |
| obj = OBJ_DAEMON; | fprintf (stderr, "fmadm: did you mean 'fmadm status environment'?\r\n"); |
| goto process_args; | exit (1); |
| } | |
| if (strcmp (argv[2], "environment") == 0) { | |
| act = ACT_STATUS; | |
| obj = OBJ_DAEMON; | |
| goto process_args; | |
| } | |
| else { | |
| fmadm_usage (); | |
| exit (1); | |
| } | |
| } | } |
| } | } |
| Line 575 act_switch: | Line 600 act_switch: |
| case ACT_IMPORT: | case ACT_IMPORT: |
| //printf ("opts[0] = %s\n", opts[0]); | |
| fmadm_exit (fm_import (obj, optc, opts)); | fmadm_exit (fm_import (obj, optc, opts)); |
| Line 1361 int fm_daemonctl (short action, short ob | Line 1387 int fm_daemonctl (short action, short ob |
| envlist = (char *) malloc (sizeof (char) * BIGSTR); | envlist = (char *) malloc (sizeof (char) * BIGSTR); |
| NULLPTRCHK(envlist,"fm_daemonctl"); | NULLPTRCHK(envlist,"fm_daemonctl"); |
| ef = fopen (env_config_file, "r"); | if ((ef = fopen (env_config_file, "r")) == NULL) { |
| logprintf (FM_LOG_FATAL, "fm_daemonctl: failed to open %s (error code %d [%s])", env_config_file, errno, strerror (errno)); | |
| } | |
| while (fgets (line, 254, ef)) { | while (fgets (line, 254, ef)) { |
| if (line[0] == '[') { | if (line[0] == '[') { |
| strncpy (env, &(line[1]), 255); | strncpy (env, &(line[1]), 255); |
| Line 1538 void fm_configure (void) | Line 1566 void fm_configure (void) |
| char sysgbl[4096]; | char sysgbl[4096]; |
| char usrrtn[4096]; | char usrrtn[4096]; |
| char usrgbl[4096]; | char usrgbl[4096]; |
| char jnldir[4096]; | char jnldir[4096]; |
| char jnlfile[4096]; | char jnlfile[4096]; |
| char jnlmode[4]; | char jnlmode[4]; |