From 0d83a3513c2a167e1e848457077148c6f1f26652 Mon Sep 17 00:00:00 2001
From: Michael R Sweet
Date: Sat, 29 Jan 2005 02:11:23 +0000
Subject: [PATCH] Web site updates.
comment.php:
- Fix comment date.
data/software.md5:
- Moved from swfiles/mxml.md5 and reformatted.
newsgroups.php:
- Deleted
phplib/html.php:
- Removed newsgroups and polls links.
- Renamed "support" to "bugs & features"
- Add refresh URL support.
software.php:
- Use download mirrors.
- Synced with other site code.
str.php:
- Change to "Bugs & Features"
- Add 2.1.1 version number
swfiles/*
- Removed; all release files are on FTP server now.
- mxml.md5 moved to data/software.md5
---
www/comment.php | 6 +-
www/data/software.md5 | 6 +
www/newsgroups.php | 835 ------------------------------
www/phplib/html.php | 15 +-
www/software.php | 244 +++++----
www/str.php | 42 +-
www/swfiles/mxml-0.9.tar.gz | Bin 40774 -> 0 bytes
www/swfiles/mxml-0.91.tar.gz | Bin 40677 -> 0 bytes
www/swfiles/mxml-0.92.tar.gz | Bin 40880 -> 0 bytes
www/swfiles/mxml-0.93.tar.gz | Bin 52695 -> 0 bytes
www/swfiles/mxml-1.0-1.i386.rpm | Bin 43710 -> 0 bytes
www/swfiles/mxml-1.0.tar.gz | Bin 66319 -> 0 bytes
www/swfiles/mxml-1.1-1.i386.rpm | Bin 64796 -> 0 bytes
www/swfiles/mxml-1.1.1-1.i386.rpm | Bin 66133 -> 0 bytes
www/swfiles/mxml-1.1.1.tar.gz | Bin 71791 -> 0 bytes
www/swfiles/mxml-1.1.2-1.i386.rpm | Bin 46741 -> 0 bytes
www/swfiles/mxml-1.1.2.tar.gz | Bin 71960 -> 0 bytes
www/swfiles/mxml-1.1.tar.gz | Bin 70891 -> 0 bytes
www/swfiles/mxml-1.2-1.i386.rpm | Bin 69214 -> 0 bytes
www/swfiles/mxml-1.2.tar.gz | Bin 79204 -> 0 bytes
www/swfiles/mxml-1.3-1.i386.rpm | Bin 78247 -> 0 bytes
www/swfiles/mxml-1.3.tar.gz | Bin 84978 -> 0 bytes
www/swfiles/mxml-2.0-1.i386.rpm | Bin 87777 -> 0 bytes
www/swfiles/mxml-2.0.tar.gz | Bin 173433 -> 0 bytes
www/swfiles/mxml-2.1-1.i386.rpm | Bin 93626 -> 0 bytes
www/swfiles/mxml-2.1.tar.gz | Bin 181431 -> 0 bytes
www/swfiles/mxml.md5 | 20 -
27 files changed, 190 insertions(+), 978 deletions(-)
create mode 100644 www/data/software.md5
delete mode 100644 www/newsgroups.php
delete mode 100644 www/swfiles/mxml-0.9.tar.gz
delete mode 100644 www/swfiles/mxml-0.91.tar.gz
delete mode 100644 www/swfiles/mxml-0.92.tar.gz
delete mode 100644 www/swfiles/mxml-0.93.tar.gz
delete mode 100644 www/swfiles/mxml-1.0-1.i386.rpm
delete mode 100644 www/swfiles/mxml-1.0.tar.gz
delete mode 100644 www/swfiles/mxml-1.1-1.i386.rpm
delete mode 100644 www/swfiles/mxml-1.1.1-1.i386.rpm
delete mode 100644 www/swfiles/mxml-1.1.1.tar.gz
delete mode 100644 www/swfiles/mxml-1.1.2-1.i386.rpm
delete mode 100644 www/swfiles/mxml-1.1.2.tar.gz
delete mode 100644 www/swfiles/mxml-1.1.tar.gz
delete mode 100644 www/swfiles/mxml-1.2-1.i386.rpm
delete mode 100644 www/swfiles/mxml-1.2.tar.gz
delete mode 100644 www/swfiles/mxml-1.3-1.i386.rpm
delete mode 100644 www/swfiles/mxml-1.3.tar.gz
delete mode 100644 www/swfiles/mxml-2.0-1.i386.rpm
delete mode 100644 www/swfiles/mxml-2.0.tar.gz
delete mode 100644 www/swfiles/mxml-2.1-1.i386.rpm
delete mode 100644 www/swfiles/mxml-2.1.tar.gz
delete mode 100644 www/swfiles/mxml.md5
diff --git a/www/comment.php b/www/comment.php
index 9441364..1e01915 100644
--- a/www/comment.php
+++ b/www/comment.php
@@ -1,6 +1,6 @@
diff --git a/www/data/software.md5 b/www/data/software.md5
new file mode 100644
index 0000000..d813497
--- /dev/null
+++ b/www/data/software.md5
@@ -0,0 +1,6 @@
+e30ff88b15f74964e20d80c6577a1cb9 2.1 mxml/2.1/mxml-2.1-1.i386.rpm
+35f829a907c0319f83a3661591788ed3 2.1 mxml/2.1/mxml-2.1.tar.gz
+2d010aa0cfc1058aa48b3c03bc3781ec 2.0 mxml/2.0/mxml-2.0-1.i386.rpm
+bd9194cdbf717550a130789802e5b81c 2.0 mxml/2.0/mxml-2.0.tar.gz
+9dfb974bd31d60c97bfa394b7f6ca63e 1.3 mxml/1.3/mxml-1.3-1.i386.rpm
+9b116daa370bf647447d6ffe70e73534 1.3 mxml/1.3/mxml-1.3.tar.gz
diff --git a/www/newsgroups.php b/www/newsgroups.php
deleted file mode 100644
index d4c5388..0000000
--- a/www/newsgroups.php
+++ /dev/null
@@ -1,835 +0,0 @@
-";
-
-if ($from == "" || $from == "Anonymous")
- $from = "Anonymous ";
-
-
-//
-// 'nntp_close()' - Close a news server thing...
-//
-
-function
-nntp_close($stream) // I - Socket stream
-{
- nntp_command($stream, "QUIT", 205);
-
- fclose($stream);
-}
-
-
-//
-// 'nntp_command()' - Send a command and get the response...
-//
-
-function // O - NNTP response
-nntp_command($stream, // I - Socket stream
- $command = "QUIT", // I - NNTP command
- $expect = 200) // I - Expected status
-
-{
-// print("nntp_command(stream=$stream, command='$command', expect=$expect)
\n");
-
- fwrite($stream, "$command\r\n");
-
- $status = fgets($stream, 1024);
-
-// print("status='$status'
\n");
-
- if ((int)$status != $expect)
- {
- print("Error: $status
\n");
- return (NULL);
- }
- else
- return ($status);
-}
-
-
-//
-// 'nntp_connect()' - Connect to the news server.
-//
-
-function // O - Socket stream
-nntp_connect()
-{
- global $NNTPSERVER, $NNTPPORT;
-
-
- $stream = fsockopen($NNTPSERVER, $NNTPPORT, &$errno, &$errstr);
-
- if ($stream)
- {
- if ($line = fgets($stream, 1024))
- {
- if ((int)$line != 200)
- {
- print("Error: $line
\n");
- fclose($stream);
- return (FALSE);
- }
- }
- else
- {
- print("Error: No response from NNTP server!
\n");
- fclose($stream);
- return (FALSE);
- }
- }
- else
- print("Error: $errstr ($errno)
\n");
-
- return ($stream);
-}
-
-
-//
-// 'nntp_search()' - Do a header search...
-//
-
-function // O - Matching message headers...
-nntp_search($stream, // I - Socket stream
- $group, // I - NNTP group
- $search) // I - Search text
-{
-// print("nntp_search(stream=$stream, group='$group', search='$search'
\n");
-
- $status = nntp_command($stream, "GROUP $group", 211);
- if (!$status)
- return (NULL);
-
- $fields = explode(" ", $status);
- $status = nntp_command($stream, "XOVER $fields[2]-$fields[3]", 224);
- if (!$status)
- return (NULL);
-
- $words = explode(" ", $search);
- $num_matches = 0;
- $matches = NULL;
-
- while ($line = fgets($stream, 1024))
- {
- $line = rtrim($line);
-
- if ($line == ".")
- break;
-
- if ($search == "")
- {
- // Return all matches...
- $matches[$num_matches] = $line;
- $num_matches ++;
- }
- else
- {
- // Search for words...
- reset($words);
-
- while (list($key, $word) = each($words))
- {
- if (stristr($line, $word))
- {
- $matches[$num_matches] = $line;
- $num_matches ++;
- break;
- }
- }
- }
- }
-
-// print("num_matches=$num_matches
\n");
-
- return ($matches);
-}
-
-
-//
-// 'show_prevnext_page()' - Show the prev/next links for the messages list...
-//
-
-function
-show_prevnext_page($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $end, // I - End message
- $count) // I - Number of messages
-{
- global $PHP_SELF, $PAGE_MAX;
-
-
- print("
\n"
- ."");
-
- if ($start > 1)
- {
- $i = $start - $PAGE_MAX;
- if ($i < 1)
- $i = 1;
-
- $j = $i + $PAGE_MAX - 1;
- if ($j > $count)
- $j = $count;
-
- html_start_links();
- html_link("Show Messages $i - $j", "$PHP_SELF?s$i+g$group+G$group_filter");
- html_end_links();
- }
-
- print(" ");
- html_start_links();
- html_link("All Groups", "$PHP_SELF?G$group_filter");
-
- if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
- html_link("New Message", "$PHP_SELF?s$i+g$group+G$group_filter+n");
- html_end_links();
- print(" ");
-
- if ($end < $count)
- {
- $i = $start + $PAGE_MAX;
- $j = $i + $PAGE_MAX - 1;
- if ($j > $count)
- $j = $count;
-
- html_start_links();
- html_link("Show Messages $i - $j", "$PHP_SELF?s$i+g$group+G$group_filter");
- }
-
- print(" \n"
- ."
\n");
-}
-
-
-//
-// 'show_messages()' - Show messages in the named group...
-//
-
-function
-show_messages($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $search) // I - Search string
-{
- global $PHP_SELF, $PAGE_MAX;
-
-
- // Figure out which messages to show...
- $error = "";
-
- $stream = nntp_connect();
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
-
- nntp_close($stream);
-
- if (!$matches)
- {
- $count = 0;
- $error = "No matches found for '" .
- htmlspecialchars($search, ENT_QUOTES) . "'...";
- }
-
- if ($start == 0)
- $start = $count - 9;
- if ($start > ($count - $PAGE_MAX + 1))
- $start = $count - $PAGE_MAX + 1;
- if ($start < 1)
- $start = 1;
-
- $end = $start + $PAGE_MAX - 1;
- if ($end > $count)
- $end = $count;
-
- // Show the standard header...
- html_header("$group ($start - $end of $count)");
-
- $temp = htmlspecialchars($search, ENT_QUOTES);
- print("\n");
-
- if ($error != "")
- print("$error
\n");
-
- show_prevnext_page($group, $group_filter, $start, $end, $count);
-
- html_start_table(array("Subject", "Author", "Date"));
-
- for ($i = $start; $i <= $end; $i ++)
- {
- $fields = explode("\t", $matches[$i - 1]);
- $msg = (int)$fields[0];
- $subject = htmlspecialchars($fields[1], ENT_QUOTES);
- $author = sanitize_email($fields[2]);
- $date = htmlspecialchars($fields[3], ENT_QUOTES);
-
- html_start_row();
- print(""
- ."$subject "
- ."$author "
- ."$date ");
- html_end_row();
- }
-
- html_end_table();
-
- show_prevnext_page($group, $group_filter, $start, $end, $count);
-
- html_footer();
-}
-
-
-//
-// 'show_groups()' - Show groups...
-//
-
-function
-show_groups($group_filter, // I - Group filter
- $search) // I - Search string
-{
- global $PHP_SELF;
-
-
- html_header("Newsgroups");
-
- // Figure out which messages to show...
- $stream = nntp_connect();
-
- // Search stuff...
- print("\n");
-
- // Show the standard header...
- html_start_table(array("Group", "Messages", ""));
-
- $status = nntp_command($stream, "LIST", 215);
- $num_groups = 0;
- $groups = array();
-
- if ($status)
- {
- while ($line = fgets($stream, 1024))
- {
- $line = rtrim($line);
- if ($line == ".")
- break;
-
- $fields = explode(" ", $line);
- $groups[$num_groups] = $fields[0];
- $num_groups ++;
- }
- }
-
- sort($groups);
-
- while (list($key, $group) = each($groups))
- {
- if (ereg("(linuxprinting|private)\\..*", $group))
- continue;
-
- if ($group_filter && !ereg("${group_filter}\\.*", $group))
- continue;
-
- $status = nntp_command($stream, "GROUP $group", 211);
- if (!$status)
- continue;
-
- $fields = explode(" ", $status);
- $total = (int)$fields[1];
-
- if ($search != "")
- {
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
- }
- else
- $count = $total;
-
- html_start_row();
- print("$group "
- ."$count");
-
- if ($search != "")
- print("/$total");
-
- print(" ");
- html_start_links();
- html_link("View", "$PHP_SELF?g$group+G$group_filter");
- if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
- html_link("New Message", "$PHP_SELF?g$group+G$group_filter+n");
- html_end_links();
- print(" ");
- html_end_row();
- }
-
- html_start_row("header");
- print("Newsgroups and Mailing Lists ");
- html_end_row();
-
- html_start_row();
- print(""
- ."Point your news reader at "
- ."news.easysw.com to view these groups directly.
\n"
- ."Go to "
- ."http://lists.easysw.com/mailman/listinfo "
- ."to subscribe to or unsubcribe from the mailing lists that mirror "
- ."these groups.
"
- ." ");
- html_end_row();
- html_end_table();
-
- nntp_close($stream);
-
- html_footer();
-}
-
-
-//
-// 'show_prevnext_msg()' - Show the prev/next links for the messages list...
-//
-
-function
-show_prevnext_msg($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $count, // I - Number of messages
- $msg) // I - Current message
-{
- global $PHP_SELF;
-
-
- print("
\n"
- ."");
-
- if ($msg > 1)
- {
- $i = $msg - 1;
-
- html_start_links();
- html_link("Previous Message", "$PHP_SELF?s$start+g$group+G$group_filter+v$i");
- html_end_links();
- }
-
- print(" ");
- html_start_links();
- html_link("All Groups", "$PHP_SELF?G$group_filter");
- html_link("Back to $group", "$PHP_SELF?s$msg+g$group+G$group_filter");
-
- if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
- {
- html_link("Reply", "$PHP_SELF?s$start+g$group+G$group_filter+r$msg");
- html_link("New Message", "$PHP_SELF?s$i+g$group+G$group_filter+n");
- }
-
- html_end_links();
-
- print(" ");
-
- if ($msg < $count)
- {
- $i = $msg + 1;
- html_start_links();
- html_link("Next Message", "$PHP_SELF?s$start+g$group+G$group_filter+v$i");
- html_end_links();
- }
-
- print(" \n"
- ."
\n");
-}
-
-
-//
-// 'show_message()' - Show a single message...
-//
-
-function
-show_message($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $msg, // I - Current message
- $search) // I - Search string
-{
- global $PHP_SELF;
-
-
- // Figure out which messages to show...
- $stream = nntp_connect();
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
-
- if ($msg < 1 || $msg > $count)
- {
- nntp_close($stream);
- return;
- }
-
- $fields = explode("\t", $matches[$msg - 1]);
- $msgnum = (int)$fields[0];
- $subject = str_replace(":", ":", htmlspecialchars($fields[1], ENT_QUOTES));
- $author = str_replace(":", ":", sanitize_email($fields[2]));
- $date = str_replace(":", ":", htmlspecialchars($fields[3], ENT_QUOTES));
-
- $status = nntp_command($stream, "BODY $msgnum", 222);
- if (!$status)
- {
- nntp_close($stream);
- return;
- }
-
- $body = "";
- while ($line = fgets($stream, 1024))
- {
- $line = rtrim($line);
-
- if ($line == ".")
- break;
-
- $body = $body . $line . "\n";
- }
-
- nntp_close($stream);
-
- $body = quote_text($body);
-
- html_header("$subject");
-
- show_prevnext_msg($group, $group_filter, $start, $count, $msg);
-
- html_start_table(array($subject, $author, $date));
- html_start_row();
- print("$body ");
- html_end_row();
- html_end_table();
-
- show_prevnext_msg($group, $group_filter, $start, $count, $msg);
-
- html_footer();
-}
-
-
-//
-// 'post_message()' - Post a message...
-//
-
-function
-post_message($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $msg, // I - Current message
- $search) // I - Search string
-{
- global $PHP_SELF, $_POST;
-
-
- if (array_key_exists("FROM", $_POST))
- $from = $_POST["FROM"];
- else
- $from = "";
-
- if (array_key_exists("SUBJECT", $_POST))
- $subject = $_POST["SUBJECT"];
- else
- $subject = "";
-
- if (array_key_exists("BODY", $_POST))
- $body = $_POST["BODY"];
- else
- $body = "";
-
- if (!validate_email($from) || $subject == "" || $body == "")
- {
- new_message($group, $group_filter, $start, $from, $subject, $body);
- return;
- }
-
- $stream = nntp_connect();
- if (!$stream)
- {
- return;
- }
-
- $id = "";
-
- if ($msg > 0)
- {
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
-
- if ($msg <= $count)
- {
- $fields = explode("\t", $matches[$msg - 1]);
- $id = $fields[4];
- }
- }
-
- $status = nntp_command($stream, "POST", 340);
-
- if (!$status)
- {
- nntp_close($stream);
- return;
- }
-
- fwrite($stream, "From: $from\r\n");
- fwrite($stream, "Subject: $subject\r\n");
- fwrite($stream, "Newsgroups: $group\r\n");
-
- if ($id != "")
- fwrite($stream, "In-Reply-To: $id\r\n");
-
- fwrite($stream, "\r\n");
-
- $lines = explode("\n", $body);
- $count = count($lines);
-
- for ($i = 0; $i < $count; $i ++)
- {
- $line = rtrim($lines[$i]);
-
- if ($line == ".")
- fwrite($stream, ". \r\n");
- else
- fwrite($stream, "$line\r\n");
- }
-
- $status = nntp_command($stream, ".", 240);
-
- if ($status)
- {
- if ($msg == 0)
- header("Location: $PHP_SELF?s$start+g$group+G$group_filter");
- else
- header("Location: $PHP_SELF?s$start+g$group+G$group_filter+v$msg");
- }
-
- nntp_close($stream);
-}
-
-
-//
-// 'reply_message()' - Reply to a message...
-//
-
-function
-reply_message($group, // I - Group to reply to
- $group_filter, // I - Group filter
- $start, // I - First message in the display
- $msg, // I - Message to reply to
- $search, // I - Search string
- $sender) // I - Sender address
-{
- global $PHP_SELF;
-
-
- // Figure out which messages to show...
- $stream = nntp_connect();
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
-
- if ($msg < 1 || $msg > $count)
- {
- nntp_close($stream);
- return;
- }
-
- $fields = explode("\t", $matches[$msg - 1]);
- $msgnum = (int)$fields[0];
- $subject = htmlspecialchars($fields[1], ENT_QUOTES);
- $author = sanitize_email($fields[2]);
- $date = htmlspecialchars($fields[3], ENT_QUOTES);
-
- if (strncasecmp($subject, "re:", 3))
- $subject = "Re: " . $subject;
-
- $status = nntp_command($stream, "BODY $msgnum", 222);
- if (!$status)
- {
- nntp_close($stream);
- return;
- }
-
- $body = "";
- while ($line = fgets($stream, 1024))
- {
- $line = rtrim($line);
-
- if ($line == ".")
- break;
-
- $body = $body . "> " . $line . "\n";
- }
-
- nntp_close($stream);
-
- new_message($group, $group_filter, $start, $subject, $sender, $body);
-}
-
-
-//
-// 'new_message()' - Post a new message...
-//
-
-function
-new_message($group, // I - Group to post to
- $group_filter, // I - Group filter
- $start, // I - First message
- $subject, // I - Subject of message
- $sender, // I - Sender address
- $body) // I - Message body
-{
- global $PHP_SELF, $NNTPSPEC;
-
-
- $subject = htmlspecialchars($subject, ENT_QUOTES);
- $sender = htmlspecialchars($sender, ENT_QUOTES);
- $body = htmlspecialchars($body, ENT_QUOTES);
-
- html_header("Post Message to $group");
-
- html_start_links(1);
- html_link("All Groups", "$PHP_SELF?G$group_filter");
- html_link("Back to $group", "$PHP_SELF?s$start+g$group+G$group_filter");
- html_end_links(1);
-
- print("Post Message to $group ");
-
- print("\n");
-
- html_footer();
-}
-
-
-// Parse command-line options...
-$start = 0;
-$group = "";
-$op = 'l';
-$msg = "";
-
-for ($i = 0; $i < $argc; $i ++)
-{
- switch ($argv[$i][0])
- {
- case 'g' :
- $group = substr($argv[$i], 1);
- break;
-
- case 'G' :
- $groups = substr($argv[$i], 1);
- break;
-
- case 'n' :
- case 'p' :
- case 'r' :
- case 'v' :
- $op = $argv[$i][0];
- $msg = (int)substr($argv[$i], 1);
- break;
-
- case 's' :
- $start = (int)substr($argv[$i], 1);
- break;
- }
-}
-
-// Now handle the request...
-switch ($op)
-{
- case 'l' : // List
- if ($group)
- show_messages($group, $PROJECT_MODULE, $start, $search);
- else
- show_groups($PROJECT_MODULE, $search);
- break;
-
- case 'n' : // New message
- new_message($group, $PROJECT_MODULE, $start, "", $from, "");
- break;
-
- case 'p' : // Post message
- if (ereg(".*\.announce", $group) || ereg(".*\.cvs", $group))
- {
- html_header("Newsgroup Posting Error");
-
- print("We are sorry, but we could not post your message for the "
- ."following reason:\n"
- ."
Group $group is read-only. \n");
-
- html_footer();
-
- }
- else
- post_message($group, $PROJECT_MODULE, $start, $msg, $search);
- break;
-
- case 'r' : // Reply message
- reply_message($group, $PROJECT_MODULE, $start, $msg, $search, $from);
- break;
-
- case 'v' : // View message
- show_message($group, $PROJECT_MODULE, $start, $msg, $search);
- break;
-}
-
-
-//
-// End of "$Id: newsgroups.php,v 1.1 2004/06/10 02:40:05 mike Exp $".
-//
-?>
diff --git a/www/phplib/html.php b/www/phplib/html.php
index 1361e58..95d702c 100644
--- a/www/phplib/html.php
+++ b/www/phplib/html.php
@@ -1,6 +1,6 @@
\n"
." \n");
+ // If refresh URL is specified, add the META tag...
+ if ($refresh != "")
+ print(" \n");
+
// Search engine keywords...
reset($html_keywords);
@@ -111,12 +116,10 @@ html_header($title = "", // I - Additional document title
."alt='Mini-XML' align='middle'/> "
."[ Home | "
."Articles | "
+ ."Bugs & Features | "
."Documentation | "
."Download | "
- ."Links | "
- ."Newsgroups | "
- ."Polls | "
- ."Support ] "
+ ."Links ]"
."[ ");
diff --git a/www/software.php b/www/software.php
index c88f8f4..edf3d51 100644
--- a/www/software.php
+++ b/www/software.php
@@ -1,6 +1,6 @@
"Oregon, USA via HTTP",
+// "ftp://ftp.easysw.com/pub" => "Oregon, USA via FTP",
+// "http://ftp2.easysw.com/pub" => "Maryland, USA via HTTP",
+ "ftp://ftp2.easysw.com/pub" => "Maryland, USA via FTP",
+ "ftp://ftp3.easysw.com/pub" => "California, USA via FTP",
+ "http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub" => "Espoo, Finland via HTTP",
+ "ftp://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub" => "Espoo, Finland via FTP",
+);
-while ($file = readdir($dir))
-{
- if (fnmatch("*.tar.gz", $file) ||
- fnmatch("*.tar.bz2", $file))
- {
- // Add source file...
- $files[$file] = substr($file, 5, strpos($file, ".tar") - 5);
- }
- else if (fnmatch("*.rpm", $file) ||
- fnmatch("*.deb", $file) ||
- fnmatch("*.tgz", $file))
- {
- // Add binary file...
- $data = explode("-", $file);
- $files[$file] = $data[1];
- }
-}
+// Get the list of software files...
+$fp = fopen("data/software.md5", "r");
+$files = array();
-arsort($files);
+while ($line = fgets($fp, 255))
+ $files[sizeof($files)] = trim($line);
-closedir($dir);
+fclose($fp);
-// Read MD5 sums for each file...
-$fp = fopen("swfiles/mxml.md5", "r");
-$md5 = array();
+// Get form data, if any...
+if (array_key_exists("FILE", $_GET))
+ $file = $_GET["FILE"];
+else
+ $file = "";
-while ($line = fgets($fp))
+if (array_key_exists("SITE", $_GET))
{
- $data = explode(" ", trim($line));
- $md5[$data[2]] = $data[0];
+ $site = $_GET["SITE"];
+ setcookie("SITE", $site, time() + 90 * 86400, "/");
}
+else if (array_key_exists("SITE", $_COOKIE) &&
+ array_key_exists($_COOKIE["SITE"], $sitelist))
+ $site = $_COOKIE["SITE"];
+else
+ $site = "";
-//print("md5 =\n");
-//print_r($md5);
-//print(" \n");
-
-fclose($fp);
-
-// Show files...
-html_header("Download");
-
-reset($files);
+if (array_key_exists("VERSION", $_GET))
+ $version = $_GET["VERSION"];
+else
+{
+ $data = explode(" ", $files[0]);
+ $version = $data[1];
+}
-if ($argc >= 1)
- $firstversion = $argv[0];
+// Show the standard header...
+if ($site != "" && $file != "")
+ html_header("Download", "", "$site/$file");
else
- $firstversion = current($files);
+ html_header("Download");
html_start_links(1);
-html_link("CVS", "#CVS");
$curversion = "";
-while (list($file, $version) = each($files))
- if ($version != $curversion)
+for ($i = 0; $i < sizeof($files); $i ++)
+{
+ // Grab the data for the current file...
+ $data = explode(" ", $files[$i]);
+ $fversion = $data[1];
+
+ if ($fversion != $curversion)
{
- $curversion = $version;
- html_link("v$version", "$PHP_SELF?$version");
+ $curversion = $fversion;
+ html_link("v$fversion", "$PHP_SELF?VERSION=$fversion");
}
+}
-html_end_links();
+html_link("Subversion", "$PHP_SELF#SVN");
-print("Download ");
+html_end_links();
-html_start_table(array("Version", "Filename", "Size", "MD5 Sum"));
+print("Download \n");
-reset($files);
-$curversion = "";
-while (list($file, $version) = each($files))
+// Show files or sites...
+if ($file != "")
{
- html_start_row();
+ if ($site != "")
+ print("Your download should begin shortly. If not, please "
+ ."click here to download the file "
+ ."from the current mirror.
\n"
+ ."Change Mirror Site: \n");
+ else
+ print("Please select a mirror site below to begin the download.
\n"
+ ."Select Mirror Site: \n");
+
+ print("\n"
+ ." \n"
+ ." \n");
- if ($version == $firstversion)
+ if ($site == "")
+ print(" None \n");
+
+ reset($sitelist);
+ while (list($key, $val) = each($sitelist))
{
- $cs = "";
- $ce = " ";
+ print(" $val \n");
}
+
+ if ($site != "")
+ print(" \n");
else
- {
- $cs = "";
- $ce = " ";
- }
+ print(" \n");
+
+ print(" \n");
+}
+else
+{
+ // Show files...
+ print("Releases \n");
+
+ html_start_table(array("Version", "Filename", "Size", "MD5 Sum"));
- if ($version != $curversion)
+ $curversion = "";
+
+ for ($i = 0; $i < sizeof($files); $i ++)
{
- if ($curversion != "")
+ // Grab the data for the current file...
+ $data = explode(" ", $files[$i]);
+ $md5 = $data[0];
+ $fversion = $data[1];
+ $filename = $data[2];
+ $basename = basename($filename);
+
+ html_start_row();
+
+ if ($fversion == $version)
{
- print(" ");
- html_end_row();
- html_start_row();
+ $cs = "";
+ $ce = " ";
+ }
+ else
+ {
+ $cs = "";
+ $ce = " ";
}
- $curversion = $version;
- print("$cs$version $ce");
- }
- else
- print("$cs$ce");
+ if ($fversion != $curversion)
+ {
+ if ($curversion != "")
+ {
+ print(" ");
+ html_end_row();
+ html_start_row();
+ }
+
+ $curversion = $fversion;
+ print("$cs$fversion $ce");
+ }
+ else
+ print("$cs$ce");
- $kbytes = (int)((filesize("swfiles/$file") + 1023) / 1024);
- $filemd5 = $md5["$file"];
+ $kbytes = (int)((filesize("/home/ftp/pub/$filename") + 1023) / 1024);
- print("$cs$file $ce"
- ."$cs${kbytes}k$ce"
- ."$cs$filemd5 $ce");
+ print("$cs"
+ ."$basename $ce"
+ ."$cs${kbytes}k$ce"
+ ."$cs$md5 $ce");
- html_end_row();
-}
+ html_end_row();
+ }
-html_end_table();
-
-print("\n"
- ."The $PROJECT_NAME software is available via anonymous CVS "
- ."using the following CVS root:
\n"
- ."\n"
- ." :pserver:anonymous@cvs.easysw.com:/home/anoncvs\n"
- ." \n"
- ."The module name is $PROJECT_MODULE . The following "
- ."command can be used to checkout the $PROJECT_NAME source from "
- ."CVS:
\n"
- ."\n"
- ." cvs -d:pserver:anonymous@cvs.easysw.com:/home/anoncvs get $PROJECT_MODULE \n"
- ." \n");
+ html_end_table();
+
+ print("\n"
+ ."The $PROJECT_NAME software is available via Subversion "
+ ."using the following URL:
\n"
+ ."\n"
+ ." "
+ ."http://svn.easysw.com/public/$PROJECT_MODULE/ \n"
+ ." \n"
+ ."The following command can be used to checkout the current "
+ ."$PROJECT_NAME source from Subversion:
\n"
+ ."\n"
+ ." svn co http://svn.easysw.com/public/$PROJECT_MODULE/trunk/ $PROJECT_MODULE \n"
+ ." \n");
+}
+// Show the standard footer...
html_footer();
//
-// End of "$Id: software.php,v 1.4 2004/05/19 22:45:23 mike Exp $".
+// End of "$Id$".
//
?>
diff --git a/www/str.php b/www/str.php
index 9b65906..92628fe 100644
--- a/www/str.php
+++ b/www/str.php
@@ -1,6 +1,6 @@
- "Fixed in CVS - the anonymous CVS repository will be updated at "
- ."midnight EST.",
+ "Fixed in Repo" =>
+ "Fixed in Subversion repository.",
"Old STR" =>
"This STR has not been updated by the submitter for two or more weeks "
."and has been closed as required by the Mini-XML Configuration Management "
@@ -51,6 +50,7 @@ $subsystems = array(
$versions = array(
"CVS",
"+2.2",
+ "+2.1.1",
"2.1",
"2.0",
"2.0rc1",
@@ -234,7 +234,7 @@ if ($argc)
if ($op != 'L' && $op != 'M' && $op != 'T' && $op != 'F' &&
$op != 'N' && $op != 'U' && $op != 'B')
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("Bad command '$op'!
\n");
html_footer();
exit();
@@ -242,7 +242,7 @@ if ($argc)
if (($op == 'M' || $op == 'B') && $LOGIN_LEVEL < AUTH_DEVEL)
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("The '$op' command is not available to you!
\n");
html_footer();
exit();
@@ -250,7 +250,7 @@ if ($argc)
if (($op == 'M' || $op == 'T' || $op == 'F') && !$id)
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("Command '$op' requires an STR number!
\n");
html_footer();
exit();
@@ -258,7 +258,7 @@ if ($argc)
if ($op == 'N' && $id)
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("Command '$op' cannot have an STR number!
\n");
html_footer();
exit();
@@ -297,7 +297,7 @@ if ($argc)
$femail = (int)$option;
break;
default :
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("Bad option '$argv[$i]'!
\n");
html_footer();
exit();
@@ -417,7 +417,7 @@ switch ($op)
$row = db_next($result);
html_start_links(1);
- html_link("Return to Support", "$PHP_SELF?L$options");
+ html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
if ($row['status'] >= $STR_STATUS_ACTIVE)
{
@@ -563,13 +563,13 @@ switch ($op)
}
else
{
- html_header("Support");
+ html_header("Bugs & Features");
html_start_links(1);
- html_link("Submit Support Request", "$PHP_SELF?N$options'");
+ html_link("Submit Bug or Feature Request", "$PHP_SELF?N$options'");
html_end_links();
- print("Support \n");
+ print("Bugs & Features \n");
print(""
."Search Words: "
@@ -1041,7 +1041,7 @@ switch ($op)
html_header("Modify STR #$id");
html_start_links(1);
- html_link("Return to Support", "$PHP_SELF?L$options");
+ html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
html_link("Return to STR #$id", "$PHP_SELF?L$id$options");
html_link("Post Text", "$PHP_SELF?T$id$options");
html_link("Post File", "$PHP_SELF?F$id$options");
@@ -1682,13 +1682,13 @@ switch ($op)
}
else
{
- html_header("Submit Support Request");
+ html_header("Submit Bug or Feature Request");
html_start_links(1);
- html_link("Return to Support", "$PHP_SELF?L$options");
+ html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
html_end_links();
- print("
Submit Support Request \n");
+ print("Submit Bug or Feature Request \n");
if ($REQUEST_METHOD == "POST")
{
@@ -1818,7 +1818,7 @@ switch ($op)
print(" \n");
print(""
- ." \n");
+ ." \n");
print(" \n");
html_footer();
}
@@ -1830,7 +1830,7 @@ switch ($op)
if ($REQUEST_METHOD != "POST")
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("The '$op' command requires a POST request!\n");
html_footer();
exit();
@@ -1842,7 +1842,7 @@ switch ($op)
if (($notification != "ON" && $notification != "OFF") || $email == "" ||
!validate_email($email))
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("
Please press your browsers back button and enter a valid "
."EMail address and choose whether to receive notification "
."messages.
\n");
@@ -1898,6 +1898,6 @@ switch ($op)
}
//
-// End of "$Id: str.php,v 1.16 2004/11/13 18:26:33 mike Exp $".
+// End of "$Id$".
//
?>
diff --git a/www/swfiles/mxml-0.9.tar.gz b/www/swfiles/mxml-0.9.tar.gz
deleted file mode 100644
index eb3f0acc49f3053951ea48b1721b2968110537cf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 40774
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%0DIj
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
diff --git a/www/swfiles/mxml-0.91.tar.gz b/www/swfiles/mxml-0.91.tar.gz
deleted file mode 100644
index 94cac104a4b61ddefef1d657c00c4cbb01a3ac22..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 40677
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