mirror of
https://github.com/znc/znc.git
synced 2026-08-12 11:52:57 +02:00
overload loadmodule
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@356 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
+16
-5
@@ -21,7 +21,6 @@
|
|||||||
#define ZNCCallSockCB "ZNC::CORECallSock"
|
#define ZNCCallSockCB "ZNC::CORECallSock"
|
||||||
#define ZNCSOCK ":::ZncSock:::"
|
#define ZNCSOCK ":::ZncSock:::"
|
||||||
|
|
||||||
// TODO use PutStatus instead of PutModule
|
|
||||||
class PString : public CString
|
class PString : public CString
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -247,6 +246,19 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual EModRet OnConfigLine(const CString& sName, const CString& sValue, CUser* pUser, CChan* pChan)
|
||||||
|
{
|
||||||
|
if ( ( sName.CaseCmp( "loadmodule" ) == 0 ) && ( sValue.Right( 3 ) == ".pm" ) && ( pUser ) )
|
||||||
|
{
|
||||||
|
m_pUser = pUser;
|
||||||
|
LoadPerlMod( sValue );
|
||||||
|
m_pUser = NULL;
|
||||||
|
return( HALT );
|
||||||
|
}
|
||||||
|
return( CONTINUE );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DumpError( const CString & sError )
|
void DumpError( const CString & sError )
|
||||||
{
|
{
|
||||||
CString sTmp = sError;
|
CString sTmp = sError;
|
||||||
@@ -451,8 +463,7 @@ public:
|
|||||||
if ( ( sCommand == "loadmod" ) || ( sCommand == "unloadmod" ) || ( sCommand == "reloadmod" ) )
|
if ( ( sCommand == "loadmod" ) || ( sCommand == "unloadmod" ) || ( sCommand == "reloadmod" ) )
|
||||||
{
|
{
|
||||||
CString sModule = sLine.Token( 1 );
|
CString sModule = sLine.Token( 1 );
|
||||||
// TODO make this sexy, use wldcmp or Right( 3 )
|
if ( sModule.Right( 3 ) == ".pm" )
|
||||||
if ( sModule.find( ".pm" ) != CString::npos )
|
|
||||||
{
|
{
|
||||||
if ( sCommand == "loadmod" )
|
if ( sCommand == "loadmod" )
|
||||||
LoadPerlMod( sModule );
|
LoadPerlMod( sModule );
|
||||||
@@ -1004,10 +1015,10 @@ void CModPerl::LoadPerlMod( const CString & sModule )
|
|||||||
|
|
||||||
CString sModPath = m_pZNC->FindModPath( sModule );
|
CString sModPath = m_pZNC->FindModPath( sModule );
|
||||||
if ( sModPath.empty() )
|
if ( sModPath.empty() )
|
||||||
PutModule( "No such module " + sModule );
|
PutStatus( "No such module " + sModule );
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PutModule( "Using " + sModPath );
|
PutStatus( "Using " + sModPath );
|
||||||
Eval( "ZNC::CORELoadMod( '" + m_pUser->GetUserName() + "', '" + sModPath + "');" );
|
Eval( "ZNC::CORELoadMod( '" + m_pUser->GetUserName() + "', '" + sModPath + "');" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user