#define OPEP "gessql.c:sql_mngact,"
static const char *del="DELETE FROM "ACTTBL" WHERE sessid=%s AND rcptto=%s";
-static const char *ins="INSERT INTO "ACTTBL" (%s) VALUES(%s,%s,%s,%s,%s,%s,%s,%d,%d,%s)";
+static const char *ins="INSERT INTO "ACTTBL" (%s) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%d,%d,%s)";
_Bool isok;
if (act!=(ACTTYP *)0) {
char strcode[10];
char *gid;
- char *greverse; //remote reverse address
+ char *gremoteip; //remote IP address
+ char *greverse; //remote reverse name
char *gsfrom; //SMTP "mail from:"
char *ghfrom; //email Header "From:"
char *ghsubject; //email Header "Subject:"
(void) memset(strcode,'\000',sizeof(strcode));
strcode[0]=act->code;
gid=sql_gooddata(sqlptr,act->sessid);
+ gremoteip=sql_gooddata(sqlptr,act->remoteip);
greverse=sql_gooddata(sqlptr,act->reverse);
gsfrom=sql_gooddata(sqlptr,act->sfrom);
ghsubject=sql_gooddata(sqlptr,act->hsubject);
if (act->resp!=(char **)0) {
char *field;
- field="code,sessid,reverse,smtpfrom,emailfrom,subject,rcptto,numline,status,info";
+ field="code,sessid,remoteip,reverse,smtpfrom,emailfrom,subject,rcptto,numline,status,info";
(void) sql_request(sqlptr,del,gid,grcpt);
if (act->resp!=(char **)0) {
char **resp;
ginfo=sql_gooddata(sqlptr,(*resp)+3);
(void) sql_request(sqlptr,ins,field,
gcode,gid,
- greverse,gsfrom,ghfrom,ghsubject,
+ gremoteip,greverse,
+ gsfrom,ghfrom,ghsubject,
grcpt,num,status,ginfo);
ginfo=rou_freestr(ginfo);
}
(void) memset(&action,'\000',sizeof(ACTTYP));
action.sessid=(*tralist)->sessid;
action.code=(*tralist)->code;
+ action.remoteip=(*tralist)->remoteip;
action.reverse=(*tralist)->reverse;
action.sfrom=(*tralist)->sfrom;
action.hfrom=(*tralist)->hfrom;
tra->code=(*ptr)->code;
tra->date=isnow;
tra->delay=0;
+ tra->remoteip=strdup(contact->peerip);
tra->reverse=strdup(contact->peername);
tra->sessid=strdup(contact->session->sessid);
tra->sfrom=strdup(contact->mailfrom);
tra->hfrom=rou_freestr(tra->hfrom);
tra->hsubject=rou_freestr(tra->hsubject);
tra->reverse=rou_freestr(tra->reverse);
+ tra->remoteip=rou_freestr(tra->remoteip);
tra->rcptto=rou_freestr(tra->rcptto);
tra->sessid=rou_freestr(tra->sessid);
tra->sfrom=rou_freestr(tra->sfrom);
u_int delay; //Transaction execution delay
char *hfrom; //Email HEADER originator
char *hsubject; //Email HEADER subject
- char *reverse; //remote reverse-address
+ char *remoteip; //remote server pure IP
+ char *reverse; //remote server reverse-address
char *rcptto; //Email Recipient
char *sessid; //session id
char *sfrom; //Email SMTP Originator
typedef struct {
char *sessid; //session id
char code; //Email status code
+ char *remoteip; //The remoter server IP number
char *reverse; //The remoter server reverse address
char *sfrom; //the "MAIL FROM:" within the SMTP exchange
char *hfrom; //the "From:" within the email header
DFLT NOW(),
code SHORTTEXT, //action status (one char)
sessid TEXT, //Session id
- reverse TEXT, //IP reverse address name
+ remoteip TEXT //Remote serveur IP number
+ DFLT NULL,
+ reverse TEXT //remote server reverse address name
+ DFLT 'Unknown IP',
smtpfrom TEXT, //SMTP Connection "MAIL FROM:"
rcptto TEXT, //SMTP Connection "RCPT TO:"
emailfrom TEXT, //email contents "From:"
rou_alert(0,"$OPEP, now logname=<$logname>");
}
+//==============================================================
+//
+// Function to retreive remote SMTP serveur list
+//
+//==============================================================
+function sql_getremotelist($dbsql,$remoteip,$limit,$skip)
+
+{
+$OPEP="gessql.php:sql_getremotelist";
+
+$strlim="";
+$strskip="";
+$select="";
+if ($remoteip!=NULL)
+ $select="where remoteip like '%$remoteip%'";
+$strsel="Select * from remotes $select order by remoteip asc";
+if ($limit!=NULL)
+ $strlim="limit $limit";
+if ($skip!=NULL)
+ $strskip="offset $skip";
+$stmt=$dbsql->Select("$strsel $strlim $strskip");
+return $stmt->fetchAll();
+}
+//==============================================================
+//
+// Function to return the number of record within remotes
+// table according a select.
+//
+//==============================================================
+function sql_getnumremotes($dbsql,$remoteip)
+
+{
+$OPEP="gessql.php:sql_getnumremotes";
+
+$select=NULL;
+if ($remoteip!=NULL)
+ $select="where remoteip like '%$remoteip%'";
+return sql_getnumrec($dbsql,$select,"remotes");
+}
//==============================================================
//
// Function to retreive user email list
// vim: smarttab tabstop=8 shiftwidth=2 expandtab
//==============================================================
//
-// Main screen management
+// remote server management screen
//
//==============================================================
include_once "subrou.php";
include_once "gesdis.php";
include_once "gessql.php";
-function tblheader(string $username,int $numrec,int $offset,int $limit)
+function tblheader(string $remoteip,int $numrec,int $offset,int $limit)
{
global $userlang;
$STR = <<<EOT
<TR>
<TD align=left>
-<FORM action="lvlusr.php" method="post">
-<input type="hidden" name="username" value="$username"/>
+<FORM action="lvlrmt.php" method="post">
+<input type="hidden" name="remoteip" value="$remoteip"/>
<input type="hidden" name="offset" value="$offset"/>
<input type="hidden" name="limit" value="$limit"/>
<button name="scanner" value="gofirst">
</FORM>
</TD>
<TD align=left>
-<FORM action="lvlusr.php" method="post">
+<FORM action="lvlrmt.php" method="post">
<FONT SIZE=+1>
$email:
-<input type="text" value="$username" name="username" size=20 style="font-size: 100%;">
+<input type="text" value="$remoteip" name="remoteip" size=20 style="font-size: 100%;">
<input type="submit" style="display:none"/>
</FONT>
</FORM>
</TD>
<TD align=right>
<FORM method="post">
-<input type="hidden" name="username" value="$username"/>
+<input type="hidden" name="remoteip" value="$remoteip"/>
<input type="hidden" name="offset" value="$offset"/>
<input type="hidden" name="limit" value="$limit"/>
<select name="limit" style="font-size: 130%;" onchange='if (this.value!=0) {this.form.submit();}'>
function body($logname)
{
-$OPEP="lvlusr.php:body";
+$OPEP="lvlrmt.php:body";
global $isadmin;
global $logname;
$limit=20;
$offset=0;
-$username="";
+$remoteip="";
$dbsql=sql_connect();
-if (isset($_POST['username']))
- $username=trim(($_POST['username']));
+if (isset($_POST['remoteip']))
+ $remoteip=trim(($_POST['remoteip']));
if (isset($_POST['limit']))
$limit=intval($_POST['limit']);
if (isset($_POST['offset']))
$offset=intval($_POST['offset']);
-$numrec=sql_getnumemail($dbsql,$username);
+$numrec=sql_getnumremotes($dbsql,$remoteip);
if (isset($_POST['scanner'])) {
$scanner=$_POST['scanner'];
switch ($scanner) {
break;
case "goprevious" :
$offset-=$limit;
- if ($offset<0)
- $offset=0;
break;
case "gofirst" :
$offset=0;
default :
break;
}
+ if ($offset<0)
+ $offset=0;
+ rou_alert(0,"$OPEP JMPDBG offset=<$offset>");
}
-$emails=sql_getemaillist($dbsql,$username,$limit,$offset);
+$remotes=sql_getremotelist($dbsql,$remoteip,$limit,$offset);
$line="";
$count=$offset;
-foreach($emails as $email) {
+foreach($remotes as $remote) {
$count++;
$bgcolor="white";
if ($count & 1 ) {
$bgcolor="green";
}
- $name=$email['email'];
- $last=$email['lastemail'];
- $max=$email['mxspace'];
- $lock=$email['locked'];
+ $ip=$remote['remoteip'];
+ $last=$remote['lastupdate'];
+ $credit=$remote['credit'];
$line=$line."<TR>\r\n";
$line=$line."<TD><FONT SIZE=-1>$count </FONT>\r\n";
$line=$line."<INPUT TYPE=IMAGE SRC=\"/reg-icons/folder.gif\" alt=\"ouvrir le dossier\" title=\"ouvrir le dossier\">\r\n";
- $line=$line." $name\r\n";
+ $line=$line." $ip\r\n";
$line=$line."</TD>\r\n";
$line=$line."<TD align=center>$last</TD>\r\n";
- $line=$line."<TD align=center>$max</TD>\r\n";
- $line=$line."<TD align=center>$lock</TD>\r\n";
+ $line=$line."<TD align=center>$credit</TD>\r\n";
$line=$line."</TR>";
}
sql_close($dbsql);
$start=starthtml("directives");
$stop=endhtml();
$top=topper($isadmin,$logname,"lvlrmt");
-$footer=footer("lvlusr");
-$tblheader=tblheader($username,$numrec,$offset,$limit);
+$footer=footer("lvlrmt");
+$tblheader=tblheader($remoteip,$numrec,$offset,$limit);
$STR = <<<EOT
$start
$tblheader
<table class="table-userlist" WIDTH="100%" BORDER="1" CellSpacing="0">
<TR>
-<TH align=center>Email</TH>
+<TH align=center>IP</TH>
<TH align=center>lastemail</TH>
-<TH align=center>mxspace</TH>
-<TH align=center>locked</TH>
+<TH align=center>credit</TH>
</TR>
$line
</Table>