Diff for /freem/src/fmadm.c between versions 1.35 and 1.41

version 1.35, 2025/04/13 04:22:43 version 1.41, 2025/04/25 20:08:19
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.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
    *   Make use of logprintf throughout codebase
    *
    *   Revision 1.38  2025/04/15 02:24:43  snw
    *   Improve FreeM logging capabilities
    *
    *   Revision 1.37  2025/04/14 19:20:20  snw
    *   Create LOCALSTATEDIR during fmadm configure if needed
    *
    *   Revision 1.36  2025/04/13 15:12:21  snw
    *   Fix transaction checkpoints on OS/2 [CLOSES #34]
    *
  *   Revision 1.35  2025/04/13 04:22:43  snw   *   Revision 1.35  2025/04/13 04:22:43  snw
  *   Fix snprintf calls   *   Fix snprintf calls
  *   *
Line 128 Line 146
 #include <unistd.h>  #include <unistd.h>
 #include <errno.h>  #include <errno.h>
 #include <ctype.h>  #include <ctype.h>
   #if defined(__OS2__)
   # include <os2.h>
   #endif
 #include "config.h"  #include "config.h"
 #include "transact.h"  #include "transact.h"
 #include "namespace.h"  #include "namespace.h"
 #include "fs.h"  #include "fs.h"
   #include "log.h"
 #if defined(__OS2__)  
 # include <os2.h>  
 #endif  
   
 #ifdef HAVE_LIBREADLINE  #ifdef HAVE_LIBREADLINE
 #  if defined(HAVE_READLINE_READLINE_H)  #  if defined(HAVE_READLINE_READLINE_H)
Line 196  extern char env_config_file[4096]; Line 214  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 379  int main (int argc, char **argv) Line 398  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 ();
           
     /* override for fmadm configure and daemon stuff */      /* override for fmadm configure and daemon stuff */
     if (got_action) {      if (got_action) {
Line 562  act_switch: Line 583  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 1520  void fm_configure (void) Line 1542  void fm_configure (void)
 {  {
     char rundir[4096];      char rundir[4096];
     char varbase[4096];      char varbase[4096];
       char vardir[4096];
     char sysrtn[4096];      char sysrtn[4096];
     char sysgbl[4096];      char sysgbl[4096];
     char usrrtn[4096];      char usrrtn[4096];
Line 1531  void fm_configure (void) Line 1554  void fm_configure (void)
     char jnlhostid[4096];          char jnlhostid[4096];    
     char jnlcut[4096];      char jnlcut[4096];
     char hostid[4096];      char hostid[4096];
       char logdir[4096];
       
     char confbase[4096];      char confbase[4096];
     char envbase[4096];      char envbase[4096];
   
Line 1570  void fm_configure (void) Line 1594  void fm_configure (void)
         exit (1);          exit (1);
     }      }
 #endif      #endif    
           
       snprintf (logdir, sizeof (logdir) - 1, "/var/log/freem");
       snprintf (vardir, sizeof (vardir) - 1, "%s", LOCALSTATEDIR);
     snprintf (varbase, sizeof (varbase) - 1, "%s/freem", LOCALSTATEDIR);      snprintf (varbase, sizeof (varbase) - 1, "%s/freem", LOCALSTATEDIR);
     snprintf (rundir, sizeof (rundir) - 1, "%s/freem/run", LOCALSTATEDIR);      snprintf (rundir, sizeof (rundir) - 1, "%s/freem/run", LOCALSTATEDIR);
     snprintf (sysrtn, sizeof (sysrtn) - 1, "%s/freem/%s/SYSTEM/routines", LOCALSTATEDIR, fma_environment);      snprintf (sysrtn, sizeof (sysrtn) - 1, "%s/freem/%s/SYSTEM/routines", LOCALSTATEDIR, fma_environment);
Line 1637  void fm_configure (void) Line 1663  void fm_configure (void)
     }      }
           
     /* check for existence of needed directories */      /* check for existence of needed directories */
       if (stat (logdir, &etcstat) == -1) {
           fprintf (stderr, "fmadm:  creating %s [logdir]\n", logdir);
           mkdir (logdir, 0775);
           set_permissions (logdir, username, groupname, 0775);
       }
   
     if (stat (SYSCONFDIR, &etcstat) == -1) {      if (stat (SYSCONFDIR, &etcstat) == -1) {
         fprintf (stderr, "fmadm:  creating %s [SYSCONFDIR]\n", SYSCONFDIR);          fprintf (stderr, "fmadm:  creating %s [SYSCONFDIR]\n", SYSCONFDIR);
         mkdir (SYSCONFDIR, 0775);          mkdir (SYSCONFDIR, 0775);
Line 1649  void fm_configure (void) Line 1681  void fm_configure (void)
         set_permissions (confbase, username, groupname, 0775);          set_permissions (confbase, username, groupname, 0775);
     }      }
   
       if (stat (vardir, &etcstat) == -1) {
           fprintf (stderr, "fmadm:  creating %s [vardir]\n", vardir);
           mkdir (vardir, 0775);
           set_permissions (vardir, username, groupname, 0775);
       }    
       
     if (stat (varbase, &etcstat) == -1) {      if (stat (varbase, &etcstat) == -1) {
         fprintf (stderr, "fmadm:  creating %s [varbase]\n", varbase);          fprintf (stderr, "fmadm:  creating %s [varbase]\n", varbase);
         mkdir (varbase, 0775);          mkdir (varbase, 0775);
Line 1772  void fm_configure (void) Line 1810  void fm_configure (void)
                   
         snprintf (buf, sizeof (buf) - 1, "env_path=%s/freem/%s", LOCALSTATEDIR, fma_environment);          snprintf (buf, sizeof (buf) - 1, "env_path=%s/freem/%s", LOCALSTATEDIR, fma_environment);
         fm_write (fp, buf);          fm_write (fp, buf);
   
           snprintf (buf, sizeof (buf) - 1, "log_threshold_file=info");
           fm_write (fp, buf);
           
           snprintf (buf, sizeof (buf) - 1, "log_threshold_syslog=info");
           fm_write (fp, buf);
   
           snprintf (buf, sizeof (buf) - 1, "log_threshold_stderr=warning");
           fm_write (fp, buf);
                   
         fclose (fp);          fclose (fp);
         fprintf (stderr, "[OK]\n");          fprintf (stderr, "[OK]\n");
Line 1782  void fm_configure (void) Line 1829  void fm_configure (void)
         update_conf (env_config_file, fma_environment, "user", env_user);          update_conf (env_config_file, fma_environment, "user", env_user);
         update_conf (env_config_file, fma_environment, "group", env_group);          update_conf (env_config_file, fma_environment, "group", env_group);
         update_conf (env_config_file, fma_environment, "enabled", env_enabled);          update_conf (env_config_file, fma_environment, "enabled", env_enabled);
           update_conf (env_config_file, fma_environment, "log_threshold_file", "info");
           update_conf (env_config_file, fma_environment, "log_threshold_syslog", "info");
           update_conf (env_config_file, fma_environment, "log_threshold_stderr", "warning");        
     }      }
   
     if (reconfigure == FALSE) {      if (reconfigure == FALSE) {

Removed from v.1.35  
changed lines
  Added in v.1.41


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>