Diff for /freem/src/global_dispatch.c between versions 1.5 and 1.11

version 1.5, 2025/03/24 04:13:11 version 1.11, 2025/04/17 14:34:27
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.11  2025/04/17 14:34:27  snw
    *   Further logging improvements
    *
    *   Revision 1.10  2025/04/13 04:22:43  snw
    *   Fix snprintf calls
    *
    *   Revision 1.9  2025/04/10 01:24:38  snw
    *   Remove C++ style comments
    *
    *   Revision 1.8  2025/04/09 19:52:02  snw
    *   Eliminate as many warnings as possible while building with -Wall
    *
    *   Revision 1.7  2025/04/09 15:16:50  snw
    *   Fix buffer overruns in mref_to_external and ssvn.c
    *
    *   Revision 1.6  2025/03/29 16:50:42  snw
    *   Back to cvs-current as version for development; temp fix for double-free issue in global_dispatch
    *
  *   Revision 1.5  2025/03/24 04:13:11  snw   *   Revision 1.5  2025/03/24 04:13:11  snw
  *   Replace action macro dat with fra_dat to avoid symbol conflict on OS/2   *   Replace action macro dat with fra_dat to avoid symbol conflict on OS/2
  *   *
Line 50 Line 68
 #include "journal.h"  #include "journal.h"
 #include "iftab.h"  #include "iftab.h"
 #include "shmmgr.h"  #include "shmmgr.h"
   #include "log.h"
   
 void (*gbl_u)(short, char *, char *);  void (*gbl_u)(short, char *, char *);
 void (*gbl_s)(short, char *, char *);  void (*gbl_s)(short, char *, char *);
   
 void global_set_engine(char ns, char *engine)  void global_set_engine(char ns, char *engine)
 {  {
                               
           if (strcmp (engine, "BUILTIN") != 0) {
     if ((strcmp (engine, "BUILTIN") != 0) && (strcmp (engine, "BERKELEYDB") != 0)) {  
   
         if (strcmp (engine, "NICKELBACK") == 0) {  
             char *j;  
             printf ("\r\nERROR:  please go burn your CD collection in fire. Here, have a segfault...\r\n");  
   
             j[2] = '\201';  
         }  
           
         printf ("\r\nERROR:  '%s' is not a valid global storage engine\r\n", engine);          printf ("\r\nERROR:  '%s' is not a valid global storage engine\r\n", engine);
         merr_raise (M38);          merr_raise (M38);
                   
Line 82  void global_set_engine(char ns, char *en Line 93  void global_set_engine(char ns, char *en
             if (strcmp (engine, "BUILTIN") == 0) {              if (strcmp (engine, "BUILTIN") == 0) {
                 gbl_u = &global_bltin;                  gbl_u = &global_bltin;
             }              }
 #if defined(GVH_BDB)      
             else if (strcmp (engine, "BERKELEYDB") == 0) {  
                 gbl_u = &global_bdb;  
             }  
 #endif              
             else {              else {
                 fprintf (stderr, "global_set_engine:  invalid global handler '%s' or FreeM built without '%s' global handler support.\r\n", engine, engine);                  logprintf (FM_LOG_WARNING, "global_set_engine:  invalid global handler '%s' or FreeM built without '%s' global handler support", engine, engine);
                 fprintf (stderr, "global set_engine:  defaulting to 'BUILTIN' global handler for namespace '%s'.\r\n", nsname);                  logprintf (FM_LOG_WARNING, "global_set_engine:  defaulting to 'BUILTIN' global handler for namespace '%s'", nsname);
                 gbl_u = &global_bltin;                  gbl_u = &global_bltin;
             }              }
                         
Line 101  void global_set_engine(char ns, char *en Line 107  void global_set_engine(char ns, char *en
             if (strcmp (engine, "BUILTIN") == 0) {              if (strcmp (engine, "BUILTIN") == 0) {
                 gbl_s = &global_bltin;                  gbl_s = &global_bltin;
             }              }
 #if defined(GVH_BDB)      
             else if (strcmp (engine, "BERKELEYDB") == 0) {  
                 gbl_s = &global_bdb;  
             }  
 #endif  
             else {              else {
                 fprintf (stderr, "global_set_engine:  invalid global handler '%s' or FreeM built without '%s' global handler support.\r\n", engine, engine);                  logprintf (FM_LOG_WARNING, "global_set_engine:  invalid global handler '%s' or FreeM built without '%s' global handler support", engine, engine);
                 fprintf (stderr, "global set_engine:  defaulting to 'BUILTIN' global handler for namespace 'SYSTEM'.\r\n");                  logprintf (FM_LOG_WARNING, "global_set_engine:  defaulting to 'BUILTIN' global handler for namespace 'SYSTEM'");
                 gbl_s = &global_bltin;                  gbl_s = &global_bltin;
             }              }
                           
Line 116  void global_set_engine(char ns, char *en Line 117  void global_set_engine(char ns, char *en
   
     }      }
   
     //ssvn_job_update ();  
   
     merr_raise (OK);      merr_raise (OK);
     return;      return;
           
Line 195  void global (short action, char *key, ch Line 194  void global (short action, char *key, ch
         name[i] = '\0';          name[i] = '\0';
                   
         snprintf (mapk_buf, STRLEN - 1, "^$SYSTEM\202MAPPINGS\202GLOBAL\202%s\201", name);          snprintf (mapk_buf, STRLEN - 1, "^$SYSTEM\202MAPPINGS\202GLOBAL\202%s\201", name);
         global (get_sym, mapk_buf, mapd_buf);          symtab_shm (get_sym, mapk_buf, mapd_buf);
   
         stcnv_m2c (mapd_buf);          stcnv_m2c (mapd_buf);
                   
Line 343  void global (short action, char *key, ch Line 342  void global (short action, char *key, ch
   
         /* grab the rest of the gvn */          /* grab the rest of the gvn */
         subprt = nssave + i + 1;          subprt = nssave + i + 1;
         snprintf (r->name, 255, "^%s", subprt);          sprintf (r->name, "^%s", subprt);
   
         /* get a fully-formed key */          /* get a fully-formed key */
         key = mref_to_internal (r);          key = mref_to_internal (r);
Line 469  void global (short action, char *key, ch Line 468  void global (short action, char *key, ch
         evt_enqueue (ev_id, EVT_CLS_TRIGGER, 0);          evt_enqueue (ev_id, EVT_CLS_TRIGGER, 0);
   
         free (k_buf);          free (k_buf);
         free (d_buf);          /* free (d_buf); */
     }        }  
           
     free (old_value);      free (old_value);

Removed from v.1.5  
changed lines
  Added in v.1.11


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