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


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

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