Commit Graph

4514 Commits

Author SHA1 Message Date
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
TorrentialStorm
5512ed2ea0 Don't forward server redirects to client. 2011-08-24 17:55:59 +01:00
TorrentialStorm
960a4498f7 Don't send server redirects to client [TorrentialStorm] 2011-08-24 13:15:20 +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