source: conf.h @ 230f6f1

Last change on this file since 230f6f1 was 8e6ecfe, checked in by Dennis Kaarsemaker <dennis@…>, at 2016-03-25T18:07:53Z

Authentication: scaffolding for multiple authentication backends

Instead of always putting users passwords in XML files, allow site
admins to configure a different authentication method to integrate
authentication with other systems.

This doesn't add any authentication backends yet, merely the
scaffolding. Notably:

  • Password checking and loading/removing from storage has been decoupled. A new auth_check_pass function is used to check passwords. It does check against the configured storage first, but will handle the authentication backends as well. The XML storage merely signals that a user's password should be checked using an authentication backend.
  • If unknown-to-bitlbee users identify using an authentication backend, they are automatically registered.
  • If an authentication backend is used, that fact is stored in the XML file, the password is not. Passwords are also stored unencrypted in this case, as the password used to encrypt them can change underneath us.
  • configure and Makefile changes for the backend objects
  • Property mode set to 100644
File size: 1.9 KB
Line 
1/********************************************************************\
2  * BitlBee -- An IRC to other IM-networks gateway                     *
3  *                                                                    *
4  * Copyright 2002-2004 Wilmer van der Gaast and others                *
5  \********************************************************************/
6
7/* Configuration reading code                                           */
8
9/*
10  This program is free software; you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation; either version 2 of the License, or
13  (at your option) any later version.
14
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  GNU General Public License for more details.
19
20  You should have received a copy of the GNU General Public License with
21  the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL;
22  if not, write to the Free Software Foundation, Inc., 51 Franklin St.,
23  Fifth Floor, Boston, MA  02110-1301  USA
24*/
25
26#ifndef __CONF_H
27#define __CONF_H
28
29typedef enum runmode { RUNMODE_DAEMON, RUNMODE_FORKDAEMON, RUNMODE_INETD } runmode_t;
30typedef enum authmode { AUTHMODE_OPEN, AUTHMODE_CLOSED, AUTHMODE_REGISTERED } authmode_t;
31
32typedef struct conf {
33        char *iface_in, *iface_out;
34        char *port;
35        int nofork;
36        int verbose;
37        runmode_t runmode;
38        authmode_t authmode;
39        char *auth_backend;
40        char *auth_pass;
41        char *oper_pass;
42        int allow_account_add;
43        char *hostname;
44        char *configdir;
45        char *plugindir;
46        char *pidfile;
47        char *motdfile;
48        char *primary_storage;
49        char **migrate_storage;
50        int ping_interval;
51        int ping_timeout;
52        char *user;
53        size_t ft_max_size;
54        int ft_max_kbps;
55        char *ft_listen;
56        char **protocols;
57        char *cafile;
58} conf_t;
59
60G_GNUC_MALLOC conf_t *conf_load(int argc, char *argv[]);
61void conf_loaddefaults(irc_t *irc);
62
63#endif
Note: See TracBrowser for help on using the repository browser.