Check-in [9c89b0e0f1]
Not logged in
Overview

SHA1 Hash:9c89b0e0f1ce9294a814915ef5359ef068bb9ee0
Date: 2009-01-25 19:47:38
User: drh
Comment:Add explanatory text to the top of the rcvfromlist webpage. The info page for the root check-in now knows how to redirect to vinfo.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified src/info.c from [420d4f7587] to [a4c9127cb5].

@@ -1153,10 +1153,13 @@
   if( db_exists("SELECT 1 FROM tagxref JOIN tag USING(tagid)"
                 " WHERE rid=%d AND tagname LIKE 'tkt-%%'", rid) ){
     tinfo_page();
   }else
   if( db_exists("SELECT 1 FROM plink WHERE cid=%d", rid) ){
+    vinfo_page();
+  }else
+  if( db_exists("SELECT 1 FROM plink WHERE pid=%d", rid) ){
     vinfo_page();
   }else
   {
     artifact_page();
   }

Modified src/shun.c from [a2062a7125] to [42fc2023fe].

@@ -220,10 +220,20 @@
     "SELECT rcvid, login, datetime(rcvfrom.mtime), rcvfrom.ipaddr"
     "  FROM rcvfrom LEFT JOIN user USING(uid)"
     " ORDER BY rcvid DESC LIMIT 31 OFFSET %d",
     ofst
   );
+  @ <p>Whenever new artifacts are added to the repository, either by
+  @ push or using the web interface, an entry is made in the RCVFROM table
+  @ to record the source of that artifact.  This log facilitates
+  @ finding and fixing attempts to inject illicit content into the
+  @ repository.</p>
+  @
+  @ <p>Click on the "rcvid" to show a list of specific artifacts received
+  @ by a transaction.  After identifying illicit artifacts, remove them
+  @ using the "Shun" feature.</p>
+  @
   @ <table cellpadding=0 cellspacing=0 border=0>
   @ <tr><th>rcvid</th><th width=15>
   @     <th>Date</th><th width=15><th>User</th>
   @     <th width=15><th>IP&nbsp;Address</th></tr>
   cnt = 0;
@@ -269,28 +279,28 @@
     "  FROM rcvfrom LEFT JOIN user USING(uid)"
     " WHERE rcvid=%d",
     rcvid
   );
   @ <table cellspacing=15 cellpadding=0 border=0>
-  @ <tr><td valign="top" align="right">rcvid:</td>
+  @ <tr><td valign="top" align="right"><b>rcvid:</b></td>
   @ <td valign="top">%d(rcvid)</td></tr>
   if( db_step(&q)==SQLITE_ROW ){
     const char *zUser = db_column_text(&q, 0);
     const char *zDate = db_column_text(&q, 1);
     const char *zIpAddr = db_column_text(&q, 2);
-    @ <tr><td valign="top" align="right">User:</td>
+    @ <tr><td valign="top" align="right"><b>User:</b></td>
     @ <td valign="top">%s(zUser)</td></tr>
-    @ <tr><td valign="top" align="right">Date:</td>
+    @ <tr><td valign="top" align="right"><b>Date:</b></td>
     @ <td valign="top">%s(zDate)</td></tr>
-    @ <tr><td valign="top" align="right">IP&nbspAddress:</td>
+    @ <tr><td valign="top" align="right"><b>IP&nbsp;Address:</b></td>
     @ <td valign="top">%s(zIpAddr)</td></tr>
   }
   db_finalize(&q);
   db_prepare(&q,
     "SELECT rid, uuid, size FROM blob WHERE rcvid=%d", rcvid
   );
-  @ <tr><td valign="top" align="right">Artifacts:</td>
+  @ <tr><td valign="top" align="right"><b>Artifacts:</b></td>
   @ <td valign="top">
   while( db_step(&q)==SQLITE_ROW ){
     int rid = db_column_int(&q, 0);
     const char *zUuid = db_column_text(&q, 1);
     int size = db_column_int(&q, 2);