📄 admin.java
字号:
import java.io.*;
import java.awt.*;
/**
Admin auto respond server
**/
public class Admin extends Extension implements Runnable
{
dixie log;
String thisDomain;
String to;
String from;
String letter;
String data;
public Admin()
{
}
public Admin( dixie logx )
{
log = logx;
}
public void execute( dixie logx, String thisDomainx, String tox,
String fromx, String letterx, String datax )
{
log = logx;
thisDomain = thisDomainx;
to = tox;
from = fromx;
letter = letterx;
data = datax;
Thread listener = new Thread( this );
listener.start();
}
/*
String argument( String thisLine )
{
int iny = 0;
int maxArg = 255;
StringBuffer retVal = new StringBuffer();
while ( ( iny < thisLine.length() ) &&
( iny < maxArg ) &&
( thisLine.charAt( iny ) != ' ' ) )
{
iny++;
}
//retVal.append("("+iny+")");
while ( ( iny < thisLine.length() ) &&
( iny < maxArg ) &&
( thisLine.charAt(iny) == ' ' ) )
{
iny++;
}
//retVal.append("("+iny+")");
while ( ( iny < thisLine.length() ) &&
( iny < maxArg ) )
{
retVal.append( thisLine.charAt( iny ) );
iny++;
}
//retVal.append("("+iny+")");
return retVal.toString();
} */
public void run()
{
int inx;
int iny;
StringBuffer currentDirectory = new StringBuffer( "." );
StringBuffer newLetter = new StringBuffer();
String thisLine;
String fileName;
//String theFile;
//File fileHandle;
String files[];
int in;
boolean authorized = false;
newLetter.append( "To: "+from+cr );
newLetter.append( "From: The Admin Server"+cr );
newLetter.append( "Subject: Admin Program Results"+cr );
try
{
for ( inx = 0; inx < numberOfLines( letter ); inx++ )
{
thisLine = getLine( letter, inx );
if ( thisLine.startsWith("help" ) )
{
newLetter.append( StringTools.getFile( "admin.hlp" ) );
}
else if ( thisLine.startsWith( "user" ) )
{
if ( argument( thisLine ).length() == 0 )
{
newLetter.append( "Need a user=password combo"+cr );
}
else if ( argument( thisLine ).indexOf( '=' ) == -1 )
{
newLetter.append( "Need an equals sign"+cr );
}
else
{
//authorized = lineInFile( "users", argument( thisLine ) );
if ( authorized )
{
authorized = true;
newLetter.append( cr+"Authorization accepted"+cr+cr );
}
else
{
newLetter.append( cr+"Authorization denied!"+cr );
newLetter.append( "Remainder of letter will be ignored."+cr+cr );
inx = numberOfLines( letter );
}
}
}
else if ( authorized )
{
if ( thisLine.startsWith( "newuser" ) )
{
//addToFile( "users", argument( thisLine ) );
newLetter.append( "Added."+cr );
}
else if ( thisLine.startsWith( "deleteuser" ) )
{
//removeFrom( "users", argument( thisLine ) );
newLetter.append( "Deleted."+cr );
}
else if ( thisLine.startsWith( "get" ) )
{
newLetter.append( ">" + thisLine + cr+cr );
newLetter.append( StringTools.getFile( argument( thisLine ) ) );
}
else if ( thisLine.equals("dir") )
{
newLetter.append( ">" + thisLine + cr+cr );
File x = new File( currentDirectory.toString() );
files = x.list();
for ( iny = 0; iny < files.length; iny++ )
{
newLetter.append( "-> " + files[iny]+cr );
}
}
else if ( thisLine.startsWith( "cd " ) )
{
newLetter.append( ">" + thisLine + cr+cr );
fileName = argument( thisLine );
currentDirectory.append( java.io.File.separator+argument(thisLine) );
newLetter.append( "-> " + currentDirectory+cr );
}
else if ( thisLine.startsWith( "run " ) )
{
newLetter.append( ">" + thisLine + cr );
try
{
Process p = java.lang.Runtime.getRuntime().exec( argument(thisLine) );
InputStream o = p.getInputStream();
do
{
in = o.read();
if ( in != -1 )
{
newLetter.append( in );
}
}
while ( in != -1 );
o.close();
newLetter.append( "Completed."+cr );
}
catch ( java.io.IOException exc )
{
newLetter.append( "Could not execute:"+cr );
newLetter.append( exc.toString()+cr);
}
}
}
}
}
catch ( Exception e ) { }
/** Do not save letters or return to sender if not possible **/
Forwarder forwarder = new Forwarder(
thisDomain, from, to, newLetter.toString(), log, // Was log
"Admin to "+from, null, false );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -