/[LeafOK_CVS]/lbbs/src/init.c
ViewVC logotype

Diff of /lbbs/src/init.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.9 by sysadm, Sun Mar 20 17:37:14 2005 UTC Revision 1.14 by sysadm, Fri May 2 03:32:19 2025 UTC
# Line 1  Line 1 
1  /***************************************************************************  /***************************************************************************
2                            init.c  -  description                                                    init.c  -  description
3                               -------------------                                                           -------------------
4      begin                : Mon Oct 18 2004          begin                : Mon Oct 18 2004
5      copyright            : (C) 2004 by Leaflet          copyright            : (C) 2004 by Leaflet
6      email                : leaflet@leafok.com          email                : leaflet@leafok.com
7   ***************************************************************************/   ***************************************************************************/
8    
9  /***************************************************************************  /***************************************************************************
# Line 15  Line 15 
15   *                                                                         *   *                                                                         *
16   ***************************************************************************/   ***************************************************************************/
17    
18    #include "init.h"
19    #include "database.h"
20  #include "bbs.h"  #include "bbs.h"
21  #include "common.h"  #include "common.h"
22    #include "log.h"
23  #include "io.h"  #include "io.h"
24  #include <unistd.h>  #include <string.h>
25    #include <stdlib.h>
26  #include <signal.h>  #include <signal.h>
27  #include <sys/param.h>  #include <sys/param.h>
28  #include <sys/types.h>  #include <sys/types.h>
29  #include <sys/stat.h>  #include <sys/stat.h>
30    #include <unistd.h>
31    
32  void  void init_daemon(void)
 init_daemon (void)  
33  {  {
34    int pid;          int pid;
35    int i;          int i;
36    
37    if (pid = fork ())          if (pid = fork())
38      exit (0);                  exit(0);
39    else if (pid < 0)          else if (pid < 0)
40      exit (1);                  exit(1);
41    
42    setsid ();          setsid();
43    
44    if (pid = fork ())          if (pid = fork())
45      exit (0);                  exit(0);
46    else if (pid < 0)          else if (pid < 0)
47      exit (1);                  exit(1);
48    
49  //  for (i = 0; i < NOFILE; ++i)          umask(0);
 //    close (i);  
   chdir (app_home_dir);  
   umask (0);  
50    
51    signal (SIGCHLD, SIG_IGN);          return;
   
   return;  
52  }  }
53    
54  int  int load_conf(const char *conf_file)
 load_conf (const char *conf_file)  
55  {  {
56    char temp[256];          char temp[256];
57    
58    // Load configuration          // Load configuration
59    char c_name[256];          char c_name[256];
60    FILE *fin;          FILE *fin;
61    
62    if ((fin = fopen (conf_file, "r")) == NULL)          if ((fin = fopen(conf_file, "r")) == NULL)
63      {          {
64        log_error ("Open %s failed", conf_file);                  log_error("Open %s failed", conf_file);
65        return -1;                  return -1;
66      }          }
67    
68    while (fscanf (fin, "%s", c_name) != EOF)          while (fscanf(fin, "%s", c_name) != EOF)
69      {          {
70        if (c_name[0] == '#')                  if (c_name[0] == '#')
71          {                  {
72            fgets (temp, 256, fin);                          fgets(temp, 256, fin);
73            continue;                          continue;
74          }                  }
75        fscanf (fin, "%*c");                  fscanf(fin, "%*c");
76        if (strcmp (c_name, "bbs_id") == 0)                  if (strcmp(c_name, "bbs_id") == 0)
77          {                  {
78            fscanf (fin, "%s", BBS_id);                          fscanf(fin, "%s", BBS_id);
79          }                  }
80        if (strcmp (c_name, "bbs_name") == 0)                  if (strcmp(c_name, "bbs_name") == 0)
81          {                  {
82            fscanf (fin, "%s", BBS_name);                          fscanf(fin, "%s", BBS_name);
83          }                  }
84        if (strcmp (c_name, "bbs_server") == 0)                  if (strcmp(c_name, "bbs_server") == 0)
85          {                  {
86            fscanf (fin, "%s", BBS_server);                          fscanf(fin, "%s", BBS_server);
87          }                  }
88        if (strcmp (c_name, "bbs_address") == 0)                  if (strcmp(c_name, "bbs_address") == 0)
89          {                  {
90            fscanf (fin, "%s", BBS_address);                          fscanf(fin, "%s", BBS_address);
91          }                  }
92        if (strcmp (c_name, "bbs_port") == 0)                  if (strcmp(c_name, "bbs_port") == 0)
93          {                  {
94            fscanf (fin, "%ud", &BBS_port);                          fscanf(fin, "%ud", &BBS_port);
95          }                  }
96        if (strcmp (c_name, "bbs_max_client") == 0)                  if (strcmp(c_name, "bbs_max_client") == 0)
97          {                  {
98            fscanf (fin, "%d", &BBS_max_client);                          fscanf(fin, "%d", &BBS_max_client);
99          }                  }
100        if (strcmp (c_name, "bbs_max_user") == 0)                  if (strcmp(c_name, "bbs_max_user") == 0)
101          {                  {
102            fscanf (fin, "%d", &BBS_max_user);                          fscanf(fin, "%d", &BBS_max_user);
103          }                  }
104        if (strcmp (c_name, "bbs_start_dt") == 0)                  if (strcmp(c_name, "bbs_start_dt") == 0)
105          {                  {
106            int y = 0, m = 0, d = 0;                          int y = 0, m = 0, d = 0;
107            fscanf (fin, "%d-%d-%d", &y, &m, &d);                          fscanf(fin, "%d-%d-%d", &y, &m, &d);
108            sprintf (BBS_start_dt, "%4d年%2d月%2d日", y, m, d);                          sprintf(BBS_start_dt, "%4d年%2d月%2d日", y, m, d);
109          }                  }
110        if (strcmp (c_name, "db_host") == 0)                  if (strcmp(c_name, "db_host") == 0)
111          {                  {
112            fscanf (fin, "%s", DB_host);                          fscanf(fin, "%s", DB_host);
113          }                  }
114        if (strcmp (c_name, "db_username") == 0)                  if (strcmp(c_name, "db_username") == 0)
115          {                  {
116            fscanf (fin, "%s", DB_username);                          fscanf(fin, "%s", DB_username);
117          }                  }
118        if (strcmp (c_name, "db_password") == 0)                  if (strcmp(c_name, "db_password") == 0)
119          {                  {
120            fscanf (fin, "%s", DB_password);                          fscanf(fin, "%s", DB_password);
121          }                  }
122        if (strcmp (c_name, "db_database") == 0)                  if (strcmp(c_name, "db_database") == 0)
123          {                  {
124            fscanf (fin, "%s", DB_database);                          fscanf(fin, "%s", DB_database);
125                    }
126                    if (strcmp(c_name, "db_timezone") == 0)
127                    {
128                            fscanf(fin, "%s", DB_timezone);
129                    }
130          }          }
     }  
131    
132    fclose (fin);          fclose(fin);
133    
134    return 0;          return 0;
135  }  }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1