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


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

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