Commit Graph

2513 Commits

Author SHA1 Message Date
Kyle Fuller bf8b1624c9 Unload user and network modules once all the clients are gone and we are disconencted from any IRC servers.
The OnIRCDisconnected module call would cause a segmentation fault
because it would try m_pNetwork->GetModules().GetNetwork(). GetModules()
would return NULL.
2011-08-31 01:22:21 +00:00
Kyle Fuller 75d7cdffd9 Fix CALLMOD, m_pNetwork could be NULL, in this case CALLMOD would be passed a NULL network. But CALLMOD will try calling its modules anyway 2011-08-31 01:05:13 +00:00
Kyle Fuller e70b6854a3 Fix modp{erl,ython}, these modules should set a "default" module type for its submodules
These modules were broken by d48ae679c4
2011-08-30 20:50:06 +00:00
Kyle Fuller 9006fecf08 Turn stickchan into a network module, this prevents a segfault 2011-08-30 20:48:16 +00:00
Uli Schlachter 10c33112c4 Fix logging in with PASS after USER
First, we set m_sUser to the argument of USER. Later, when the PASS came in, the
username which was specified here (user/network:pass) was ignored, because
m_sUser was already set ("if (m_sUser.empty() &&" in ParseAuthLine).

The fix is to ignore if m_sUser was already set when parsing "PASS". Since this
means that the handling of PASS and USER becomes even more different, this
commit removes CClient::ParseAuthLine() again.

(The check for m_sUser.empty() can't just be dropped, because if USER comes in
after PASS, we should use the user name from PASS and ignore the USER one)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-29 13:02:55 +02:00
Uli Schlachter 9c9e40a3d7 Remove some IMHO dangerous functions
Instead, these functions are now inlined into their only caller. This should
make the user and network destruction a little saner. At least I hope so...

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-29 12:52:21 +02:00
Uli Schlachter bd3e6d3f7b Partyline: Drop support for fixed channels
This doesn't fix partyline yet, but makes it a lot easier to fix.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-29 12:26:57 +02:00
Uli Schlachter 601692999d Silence some wrong compiler warnings
For every available module call implementation, we got this:

Modules.cpp: In member function ‘bool CModules::OnGetAvailableMods(std::__debug::set<CModInfo>&, CModInfo::EModuleType)’:
Modules.cpp:149:72: error: ‘pNetwork’ may be used uninitialized in this function [-Werror=uninitialized]
Modules.cpp:808:260: note: ‘pNetwork’ was declared here
Modules.cpp:148:54: error: ‘pOldUser’ may be used uninitialized in this function [-Werror=uninitialized]
Modules.cpp:808:168: note: ‘pOldUser’ was declared here

I guess GCC saw that m_pNetwork and m_pUser could be changed by the module call
to a non-NULL value which means we would really use an uninitialized value...

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-29 10:24:03 +02:00
Alexey Sokolov dc332837e2 Merge pull request #61 from nbebout/master
Add ZNC systemd unit file for those distros that use systemd for their init
2011-08-27 20:37:01 -07:00
Kyle Fuller d48ae679c4 Add default types to modules 2011-08-27 17:06:52 +00:00
Kyle Fuller 98777a27af Allow loading the log module as either user, network or global 2011-08-27 17:06:47 +00:00
Kyle Fuller 8910ec5776 Allow the cert module to be loaded as a network module 2011-08-27 17:06:41 +00:00
Kyle Fuller b2e6d09bbd Perform is now a network module, but could also be loaded as a user module if the user desires
perfom
2011-08-27 17:06:39 +00:00
Kyle Fuller d3ffdbb2a6 Part the client from the channels they are in when they used /znc JumpNetwork 2011-08-25 21:17:39 +01:00
Kyle Fuller b3b4e08769 Allow a user to add networks in znc --makeconfig 2011-08-25 21:17:38 +01:00
Kyle Fuller 260421e6e8 Make modpython support network modules 2011-08-25 21:17:28 +01:00
Kyle Fuller 9a2fed6923 Turn modtcl into a network module 2011-08-24 19:07:33 +01:00
Kyle Fuller 9b746dcc31 Change the order that modules are looked up in /msg *module
The new order is as follows:
    Network Module
    User Module
    Global Module
2011-08-24 19:07:33 +01:00
Kyle Fuller 0b1627c529 Make all the modules support networks 2011-08-24 19:07:32 +01:00
Kyle Fuller ee7a2083c8 Make the *webadmin module support IRC networks 2011-08-24 19:07:32 +01:00
Kyle Fuller 0f9af26999 Support IRC networks in the *admin module 2011-08-24 19:07:32 +01:00
Kyle Fuller e3a8dd9ce8 Add support for network commands with *status 2011-08-24 19:07:32 +01:00
Kyle Fuller 8dd2a704bb Create network modules 2011-08-24 19:07:32 +01:00
Kyle Fuller 498cbf8a1e Make CNick network aware 2011-08-24 19:07:32 +01:00
Kyle Fuller da6c601e57 Make IRCSock network aware 2011-08-24 19:07:32 +01:00
Kyle Fuller ef2b2cf601 Make CClient network aware 2011-08-24 19:07:31 +01:00
Kyle Fuller 4e4e88e8fc CChans should now work on IRC networks 2011-08-24 19:07:31 +01:00
Kyle Fuller fec1a3fe91 Add CIRCNetwork which now hold each IRC Connection.
This allows a user to have multiple networks.

A user can login as a network by supplying PASS [user[/network]:]pass or
USER user[/network] on connect. A user can also switch between networks
by using /msg *status JumpNetwork <network>
2011-08-24 19:07:26 +01:00
Alexey Sokolov 88033a5b3e Save listeners as a section in znc.conf 2011-08-22 03:05:11 +07:00
Alexey Sokolov d2b005aaf8 Add an easy way to read bools and ints from config. 2011-08-22 03:02:15 +07:00
Alexey Sokolov afbd7410b1 Fix doxycomment about global mobules. 2011-08-22 00:56:56 +07:00
Alexey Sokolov fca0d83de8 Fix modpython about renaming EModuleType. 2011-08-22 00:55:45 +07:00
Uli Schlachter 288f450ea7 Save passwords as a section in znc.conf
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-21 18:01:58 +02:00
Uli Schlachter 2513149b42 Fix up indentation in config writing
This accidentally caused null bytes to be written to the config.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-21 18:01:58 +02:00
Uli Schlachter 26368a6c29 Some more cleanup to module loading
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-21 18:01:58 +02:00
Uli Schlachter 80c76c97a6 Remove GLOBALMODCONSTRUCTOR
MODCONSTRUCTOR does that job just fine (now).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-21 18:01:58 +02:00
Alexey Sokolov c2cc57cbf4 Fix compilation of modpython. 2011-08-21 21:51:28 +07:00
Alexey Sokolov b62c47c86e Add new parameter of OnModuleLoading to doxygen. 2011-08-21 21:51:11 +07:00
Uli Schlachter cce40e9f71 Move the EModuleType into CModInfo
This also renames the values to shorter and more "well sounding" names.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-21 16:30:36 +02:00
Uli Schlachter 5f53c3509f Fix some minor issues
E.g. a gcc warning about an uninitialized variable.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-21 15:58:01 +02:00
Kyle Fuller f44f307b24 Add a config writer 2011-08-21 13:40:14 +01:00
Kyle Fuller 274d3eb2ec Make modpython support different module types 2011-08-21 13:34:23 +01:00
Alexey Sokolov 9e33e4bf59 Fix dependencies between modpython parts. 2011-08-21 13:34:23 +01:00
Alexey Sokolov 289cfa5eff Fix enum handling in modpython callbacks params. 2011-08-21 13:34:23 +01:00
Kyle Fuller b2d8f2ed62 Add CModInfo::SupportsType(EModuleType) and supply a module type with CModules::LoadModule
This would allow a module support multiple module types but CModule's do
not support this currently
2011-08-21 13:34:23 +01:00
Alexey Sokolov 0c9eae226e Fix global python modules. 2011-08-21 13:34:23 +01:00
Alexey Sokolov 76aaafd4d0 Unload modules in reverse order. 2011-08-21 13:34:23 +01:00
Kyle Fuller c456d20b21 Merge CGlobalModule(s) into CModule(s) 2011-08-21 13:34:22 +01:00
Kyle Fuller a4b155995c Create EModuleType, creating SetType which replaces SetGlobal 2011-08-21 13:34:22 +01:00
Uli Schlachter 091a2875ad Increase the version number to 0.201
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-20 22:35:14 +02:00