ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/hopm/trunk/src/config.c
Revision: 9517
Committed: Sat Jul 11 20:28:46 2020 UTC (6 years ago) by michael
Content type: text/x-csrc
File size: 3161 byte(s)
Log Message:
- Allow IRCItem.oper and IRCItem.mode to be empty

File Contents

# User Rev Content
1 michael 5052 /*
2 michael 5351 * Copyright (c) 2002 Erik Fears
3 michael 9104 * Copyright (c) 2014-2020 ircd-hybrid development team
4 michael 5052 *
5 michael 5351 * This program is free software; you can redistribute it and/or modify
6     * it under the terms of the GNU General Public License as published by
7     * the Free Software Foundation; either version 2 of the License, or
8     * (at your option) any later version.
9 michael 5052 *
10 michael 5351 * This program is distributed in the hope that it will be useful,
11     * but WITHOUT ANY WARRANTY; without even the implied warranty of
12     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13     * GNU General Public License for more details.
14 michael 5052 *
15 michael 5351 * You should have received a copy of the GNU General Public License
16     * along with this program; if not, write to the Free Software
17     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
18     * USA
19 michael 5052 */
20    
21     #include "setup.h"
22    
23     #include <stdio.h>
24 michael 5254 #include <errno.h>
25 michael 5216 #include <string.h>
26 michael 5335 #include <stdlib.h>
27 michael 5052
28     #include "config.h"
29 michael 5270 #include "config-parser.h"
30 michael 7711 #include "compat.h"
31 michael 5333 #include "memory.h"
32 michael 5052 #include "log.h"
33     #include "scan.h"
34     #include "irc.h"
35     #include "opercmd.h"
36     #include "stats.h"
37     #include "firedns.h"
38 michael 7711 #include "misc.h"
39 michael 5052
40    
41 michael 7711 FILE *conf_file;
42 michael 8579 struct OptionsConf OptionsItem;
43     struct IRCConf IRCItem;
44     struct OpmConf OpmItem;
45     struct ExemptConf ExemptItem;
46     list_t UserItemList;
47     list_t ScannerItemList;
48 michael 5052
49    
50     /* Setup structs that hold configuration data and then reset default values */
51 michael 5667 static void
52 michael 5114 config_setup(void)
53 michael 5052 {
54 michael 8579 /* Setup irc {} block defaults */
55     IRCItem.nick = xstrdup("hopm");
56     IRCItem.port = 6667;
57 michael 9478 IRCItem.tls = 0;
58 michael 9501 IRCItem.tls_hostname_verification = 1;
59 michael 8579 IRCItem.readtimeout = 900;
60     IRCItem.reconnectinterval = 30;
61     IRCItem.username = xstrdup("hopm");
62     IRCItem.realname = xstrdup("Hybrid Open Proxy Monitor");
63     IRCItem.server = xstrdup("irc.example.org");
64     IRCItem.connregex = xstrdup("\\*\\*\\* Notice -- Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*");
65     IRCItem.kline = xstrdup("KLINE %u@%h :Open Proxy found on your host.");
66 michael 5052
67 michael 8579 /* Setup options {} block defaults */
68     OptionsItem.command_queue_size = 64;
69     OptionsItem.command_interval = 10;
70     OptionsItem.command_timeout = 180;
71 michael 9328 OptionsItem.negcache = 0; /* 0 disabled negcache */
72 michael 8579 OptionsItem.negcache_rebuild = 43200;
73     OptionsItem.pidfile = xstrdup("hopm.pid");
74     OptionsItem.dns_fdlimit = 50;
75     OptionsItem.dns_timeout = 5;
76 michael 5052 }
77    
78 michael 5726 /* Load configuration from filename, via flex/bison parser */
79 michael 5114 void
80 michael 5270 config_load(const char *filename)
81     {
82     config_setup(); /* Setup/clear current configuration */
83    
84     log_printf("CONFIG -> Loading %s", filename);
85    
86 michael 7711 strlcpy(conffilebuf, filename, sizeof(conffilebuf));
87    
88 michael 9328 conf_file = fopen(filename, "r");
89     if (conf_file == NULL)
90 michael 5270 {
91     log_printf("CONFIG -> Error opening %s: %s", filename, strerror(errno));
92     exit(EXIT_FAILURE);
93     }
94    
95     yyparse();
96 michael 7711 fclose(conf_file);
97 michael 5270
98     scan_init(); /* Initialize the scanners once we have the configuration */
99     stats_init(); /* Initialize stats (UPTIME) */
100     firedns_init(); /* Initialize adns */
101     }
102    
103     void
104 michael 5114 yyerror(const char *str)
105 michael 5052 {
106 michael 7728 log_printf("CONFIG -> \"%s\", line %u: %s: %s", conffilebuf, lineno, str, stripws(linebuf));
107 michael 5114 exit(EXIT_FAILURE);
108 michael 5052 }

Properties

Name Value
svn:eol-style native
svn:keywords Id