Skip to Content.
Sympa Menu

ndt-dev - [ndt-dev] [ndt] r396 committed - Merge trunk.

Subject: NDT-DEV email list created

List archive

[ndt-dev] [ndt] r396 committed - Merge trunk.


Chronological Thread 
  • From:
  • To:
  • Subject: [ndt-dev] [ndt] r396 committed - Merge trunk.
  • Date: Fri, 10 Jun 2011 16:18:30 +0000

Revision: 396
Author:

Date: Fri Jun 10 09:17:33 2011
Log: Merge trunk.
http://code.google.com/p/ndt/source/detail?r=396

Added:
/branches/android/HTML5-frontend
/branches/android/src/test_meta.h
/branches/android/src/test_meta_clt.c
/branches/android/src/test_meta_srv.c
Modified:
/branches/android
/branches/android/Admin/Makefile.in
/branches/android/Applet/Makefile.in
/branches/android/Applet/Tcpbw100.java
/branches/android/Makefile.in
/branches/android/aclocal.m4
/branches/android/conf/Makefile.in
/branches/android/conf/ndt
/branches/android/conf/start.ndt
/branches/android/config.h.in
/branches/android/configure
/branches/android/configure.ac
/branches/android/doc/Makefile.in
/branches/android/janalyze/Makefile.in
/branches/android/java/Tcpbw100_msgs_ca_ES.properties
/branches/android/java/Tcpbw100_msgs_en_US.properties
/branches/android/java/Tcpbw100_msgs_fr_FR.properties
/branches/android/java/Tcpbw100_msgs_nb_NO.properties
/branches/android/java/Tcpbw100_msgs_nl_NL.properties
/branches/android/java/Tcpbw100_msgs_pt_BR.properties
/branches/android/java/Tcpbw100_msgs_ru_RU.properties
/branches/android/java/net/measurementlab/ndt/NdtTests.java
/branches/android/src/Makefile.am
/branches/android/src/Makefile.in
/branches/android/src/logging.c
/branches/android/src/logging.h
/branches/android/src/protocol.h
/branches/android/src/testoptions.c
/branches/android/src/testoptions.h
/branches/android/src/web100clt.c
/branches/android/src/web100srv.c
/branches/android/tcpbw100.template
Replaced:
/branches/android/HTML5-frontend/embed.html
/branches/android/HTML5-frontend/fonts
/branches/android/HTML5-frontend/fonts/League_Gothic.eot
/branches/android/HTML5-frontend/fonts/League_Gothic.otf
/branches/android/HTML5-frontend/ie.css
/branches/android/HTML5-frontend/images
/branches/android/HTML5-frontend/images/mlab-logo-small.png
/branches/android/HTML5-frontend/images/mlab-logo.png
/branches/android/HTML5-frontend/images/progress-bar-left.png
/branches/android/HTML5-frontend/images/progress-bar-right.png
/branches/android/HTML5-frontend/images/progress-bar.png
/branches/android/HTML5-frontend/jquery-1.4.4.min.js
/branches/android/HTML5-frontend/script.js
/branches/android/HTML5-frontend/style.css
/branches/android/HTML5-frontend/widget.html

=======================================
--- /dev/null
+++ /branches/android/src/test_meta.h Fri Jun 10 09:17:33 2011
@@ -0,0 +1,18 @@
+/*
+ * This file contains the function declarations to handle META test.
+ *
+ * Jakub Sławiński 2011-05-07
+ *

+ */
+
+#ifndef _JS_TEST_META_H
+#define _JS_TEST_META_H
+
+#define META_CLIENT_OS "client.os.name"
+#define META_BROWSER_OS "client.browser.name"
+#define META_CLIENT_KERNEL_VERSION "client.kernel.version"
+#define META_CLIENT_VERSION "client.version"
+
+int test_meta_clt(int ctlSocket, char tests, char* host, int conn_options);
+
+#endif
=======================================
--- /dev/null
+++ /branches/android/src/test_meta_clt.c Fri Jun 10 09:17:33 2011
@@ -0,0 +1,96 @@
+/*
+ * This file contains the functions needed to handle META
+ * test (client part).
+ *
+ * Jakub Sławiński 2011-05-07
+ *

+ */
+
+#include "../config.h"
+
+#include <ctype.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "test_meta.h"
+#include "logging.h"
+#include "network.h"
+#include "protocol.h"
+#include "utils.h"
+
+int pkts, lth;
+int sndqueue;
+double spdout, c2sspd;
+
+int
+test_meta_clt(int ctlSocket, char tests, char* host, int conn_options)
+{
+ char buff[1024], tmpBuff[512];
+ int msgLen, msgType;
+ FILE *fp;
+
+ if (tests & TEST_META) {
+ log_println(1, " <-- META test -->");
+ msgLen = sizeof(buff);
+ if (recv_msg(ctlSocket, &msgType, buff, &msgLen)) {
+ log_println(0, "Protocol error - missed prepare message!");
+ return 1;
+ }
+ if (check_msg_type("META test", TEST_PREPARE, msgType, buff, msgLen)) {
+ return 2;
+ }
+
+ msgLen = sizeof(buff);
+ if (recv_msg(ctlSocket, &msgType, buff, &msgLen)) {
+ log_println(0, "Protocol error - missed start message!");
+ return 1;
+ }
+ if (check_msg_type("META test", TEST_START, msgType, buff, msgLen)) {
+ return 2;
+ }
+
+ printf("sending meta information to server . . . . . ");
+ fflush(stdout);
+
+ if ((fp = fopen("/proc/sys/kernel/ostype", "r")) == NULL) {
+ log_println(0, "Unable to determine client os type.");
+ } else {
+ fscanf(fp, "%s", tmpBuff);
+ fclose(fp);
+ sprintf(buff, "%s:%s", META_CLIENT_OS, tmpBuff);
+ send_msg(ctlSocket, TEST_MSG, buff, strlen(buff));
+ }
+
+ sprintf(buff, "%s:%s", META_BROWSER_OS, "- (web100clt)");
+ send_msg(ctlSocket, TEST_MSG, buff, strlen(buff));
+
+ if ((fp = fopen("/proc/sys/kernel/osrelease", "r")) == NULL) {
+ log_println(0, "Unable to determine client kernel version.");
+ } else {
+ fscanf(fp, "%s", tmpBuff);
+ fclose(fp);
+ sprintf(buff, "%s:%s", META_CLIENT_KERNEL_VERSION, tmpBuff);
+ send_msg(ctlSocket, TEST_MSG, buff, strlen(buff));
+ }
+
+ sprintf(buff, "%s:%s", META_CLIENT_VERSION, VERSION);
+ send_msg(ctlSocket, TEST_MSG, buff, strlen(buff));
+
+ send_msg(ctlSocket, TEST_MSG, "", 0);
+
+ printf("Done\n");
+
+ msgLen = sizeof(buff);
+ if (recv_msg(ctlSocket, &msgType, buff, &msgLen)) {
+ log_println(0, "Protocol error - missed finalize message!");
+ return 1;
+ }
+ if (check_msg_type("META test", TEST_FINALIZE, msgType, buff, msgLen)) {
+ return 2;
+ }
+ log_println(1, " <------------------------->");
+ }
+ return 0;
+}
=======================================
--- /dev/null
+++ /branches/android/src/test_meta_srv.c Fri Jun 10 09:17:33 2011
@@ -0,0 +1,123 @@
+/*
+ * This file contains the functions needed to handle META
+ * test (server part).
+ *
+ * Jakub Sławiński 2011-05-07
+ *

+ */
+
+#include <ctype.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "test_meta.h"
+#include "logging.h"
+#include "network.h"
+#include "protocol.h"
+#include "utils.h"
+#include "testoptions.h"
+
+/*
+ * Function name: test_meta_srv
+ * Description: Performs the META test.
+ * Arguments: ctlsockfd - the client control socket descriptor
+ * agent - the Web100 agent used to track the connection
+ * testOptions - the test options
+ * conn_options - the connection options
+ * Returns: 0 - success,
+ * >0 - error code.
+ */
+
+int
+test_meta_srv(int ctlsockfd, web100_agent* agent, TestOptions* testOptions, int conn_options)
+{
+ int j;
+ int msgLen, msgType;
+ char buff[BUFFSIZE+1];
+ struct metaentry *new_entry = NULL;
+ char* value;
+
+ if (testOptions->metaopt) {
+ setCurrentTest(TEST_META);
+ log_println(1, " <-- META test -->");
+
+
+ j = send_msg(ctlsockfd, TEST_PREPARE, "", 0);
+ if (j == -1 || j == -2) {
+ log_println(6, "META Error!, Test start message not sent!");
+ return j;
+ }
+
+ if (send_msg(ctlsockfd, TEST_START, "", 0) < 0) {
+ log_println(6, "META test - Test-start message failed");
+ }
+
+ while (1) {
+ msgLen = sizeof(buff);
+ if (recv_msg(ctlsockfd, &msgType, buff, &msgLen)) {
+ log_println(0, "Protocol error!");
+ sprintf(buff, "Server (META test): Invalid meta data received");
+ send_msg(ctlsockfd, MSG_ERROR, buff, strlen(buff));
+ return 1;
+ }
+ if (check_msg_type("META test", TEST_MSG, msgType, buff, msgLen)) {
+ log_println(0, "Fault, unexpected message received!");
+ sprintf(buff, "Server (META test): Invalid meta data received");
+ send_msg(ctlsockfd, MSG_ERROR, buff, strlen(buff));
+ return 2;
+ }
+ if (msgLen < 0) {
+ log_println(0, "Improper message");
+ sprintf(buff, "Server (META test): Invalid meta data received");
+ send_msg(ctlsockfd, MSG_ERROR, buff, strlen(buff));
+ return 3;
+ }
+
+ if (msgLen == 0) {
+ break;
+ }
+
+ buff[msgLen] = 0;
+ value = index(buff, ':');
+ if (value == NULL) {
+ log_println(0, "Improper message");
+ sprintf(buff, "Server (META test): Invalid meta data received");
+ send_msg(ctlsockfd, MSG_ERROR, buff, strlen(buff));
+ return 4;
+ }
+ *value = 0;
+ value++;
+
+ if (strcmp(META_CLIENT_OS, buff) == 0) {
+ snprintf(meta.client_os, sizeof(meta.client_os), "%s", value);
+ /*continue;*/
+ }
+
+ if (strcmp(META_BROWSER_OS, buff) == 0) {
+ snprintf(meta.client_browser, sizeof(meta.client_browser), "%s", value);
+ /*continue;*/
+ }
+
+ if (new_entry) {
+ new_entry->next = (struct metaentry *) malloc(sizeof(struct metaentry));
+ new_entry = new_entry->next;
+ }
+ else {
+ new_entry = (struct metaentry *) malloc(sizeof(struct metaentry));
+ meta.additional = new_entry;
+ }
+ snprintf(new_entry->key, sizeof(new_entry->key), "%s", buff);
+ snprintf(new_entry->value, sizeof(new_entry->value), "%s", value);
+ }
+
+ if (send_msg(ctlsockfd, TEST_FINALIZE, "", 0) < 0) {
+ log_println(6, "META test - failed to send finalize message");
+ }
+
+ log_println(1, " <-------------------------->");
+ setCurrentTest(TEST_NONE);
+ }
+ return 0;
+}
=======================================
--- /branches/android/Admin/Makefile.in Sun Feb 28 11:29:32 2010
+++ /branches/android/Admin/Makefile.in Fri Jun 10 09:17:33 2011
@@ -160,6 +160,7 @@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
=======================================
--- /branches/android/Applet/Makefile.in Fri May 7 04:37:48 2010
+++ /branches/android/Applet/Makefile.in Fri Jun 10 09:17:33 2011
@@ -160,6 +160,7 @@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
=======================================
--- /branches/android/Applet/Tcpbw100.java Wed Jun 9 15:23:05 2010
+++ /branches/android/Applet/Tcpbw100.java Fri Jun 10 09:17:33 2011
@@ -70,9 +70,7 @@
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.datatransfer.*;
-import java.applet.*;
import java.util.*;
-import java.text.*;
import java.lang.*;
import java.lang.reflect.*;
import javax.swing.JLabel;
@@ -85,8 +83,6 @@
import javax.swing.JScrollPane;
import javax.swing.BorderFactory;
import javax.swing.JTextPane;
-import javax.swing.text.StyledDocument;
-import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.BadLocationException;
import javax.swing.JOptionPane;
import javax.swing.BoxLayout;
@@ -102,6 +98,39 @@

public class Tcpbw100 extends JApplet implements ActionListener
{
+ private static final String VERSION = "3.6.4";
+ private static final byte TEST_MID = (1 << 0);
+ private static final byte TEST_C2S = (1 << 1);
+ private static final byte TEST_S2C = (1 << 2);
+ private static final byte TEST_SFW = (1 << 3);
+ private static final byte TEST_STATUS = (1 << 4);
+ private static final byte TEST_META = (1 << 5);
+
+ private static final String META_CLIENT_OS = "client.os.name";
+ private static final String META_BROWSER_OS = "client.browser.name";
+ private static final String META_CLIENT_KERNEL_VERSION = "client.kernel.version";
+ private static final String META_CLIENT_VERSION = "client.version";
+
+ /* we really should do some clean-up in this java code... maybe later ;) */
+ private static final byte COMM_FAILURE = 0;
+ private static final byte SRV_QUEUE = 1;
+ private static final byte MSG_LOGIN = 2;
+ private static final byte TEST_PREPARE = 3;
+ private static final byte TEST_START = 4;
+ private static final byte TEST_MSG = 5;
+ private static final byte TEST_FINALIZE = 6;
+ private static final byte MSG_ERROR = 7;
+ private static final byte MSG_RESULTS = 8;
+ private static final byte MSG_LOGOUT = 9;
+ private static final byte MSG_WAITING = 10;
+
+ private static final int SFW_NOTTESTED = 0;
+ private static final int SFW_NOFIREWALL = 1;
+ private static final int SFW_UNKNOWN = 2;
+ private static final int SFW_POSSIBLE = 3;
+
+ private static final double VIEW_DIFF = 0.1;
+
JTextArea diagnosis, statistics;
MyTextPane results;
JButton startTest;
@@ -170,9 +199,14 @@
private int pub_jitter = 0;
private int pub_Timeouts = 0;
private String pub_errmsg = "Test not run.";
+ private String pub_diagnosis = "Test not run.";
+ private String pub_statistics = "Test not run.";
+ private String pub_status = "notStarted";
+ private double pub_time = 0.0;
+ private int pub_bytes = 0;
private String isAutoRun;
-
-
+ private String userAgent = null;
+
/**
* Accessor methods for public variables
**/
@@ -380,6 +414,26 @@
//return result;
return pub_errmsg;
}
+
+ public String get_diagnosis()
+ {
+ return pub_diagnosis;
+ }
+
+ public String get_statistics()
+ {
+ return pub_statistics;
+ }
+
+ public String get_status()
+ {
+ return pub_status;
+ }
+
+ public String get_instSpeed()
+ {
+ return Double.toString((8.0 * pub_bytes) / (System.currentTimeMillis() - pub_time));
+ }

// "Remote Control" function - invoke NDT' runtest() method from the API
public void run_test()
@@ -397,6 +451,13 @@
});
}

+ public String getUserAgent() {
+ return userAgent;
+ }
+
+ public void setUserAgent(String userAgent) {
+ this.userAgent = userAgent;
+ }

/**
End of accessor methods
@@ -415,6 +476,20 @@
//private static String country="NO";
/***/

+ int half_duplex, congestion, bad_cable, mismatch;
+ double mylink;
+ double loss, estimate, avgrtt, spd, waitsec, timesec, rttsec;
+ double order, rwintime, sendtime, cwndtime, rwin, swin, cwin;
+ double aspd;
+
+ boolean isApplication = false;
+ boolean testInProgress = false;
+ String host = null;
+ String tmpstr, tmpstr2;
+ byte tests = TEST_MID | TEST_C2S | TEST_S2C | TEST_SFW | TEST_STATUS | TEST_META;
+ int c2sResult = SFW_NOTTESTED;
+ int s2cResult = SFW_NOTTESTED;
+
public void showStatus(String msg)
{
if (!isApplication) {
@@ -533,8 +608,7 @@
}


-
-class MyTextPane extends JTextPane
+ class MyTextPane extends JTextPane
{
public void append(String text)
{
@@ -733,7 +807,10 @@
}
}

- // Implementation of UiServices
+ synchronized public void runtest() {
+ pub_status = "notStarted";
+ new Thread(new TestWorker()).start();
+ }

public void appendString(String str, int viewId) {
switch (viewId) {
@@ -755,25 +832,533 @@
// TODO: implement
}

- public void onBeginTest() {
+ public boolean test_mid(Protocol ctl) throws IOException
+ {
+ byte buff[] = new byte[8192];
+ Message msg = new Message();
+ if ((tests & TEST_MID) == TEST_MID) {
+ /* now look for middleboxes (firewalls, NATs, and other boxes that
+ * muck with TCP's end-to-end priciples
+ */
+ showStatus(messages.getString("middleboxTest"));
+ results.append(messages.getString("checkingMiddleboxes") + " ");
+ statistics.append(messages.getString("checkingMiddleboxes") + " ");
+ emailText = messages.getString("checkingMiddleboxes") + " ";
+ pub_status = "checkingMiddleboxes";
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_PREPARE) {
+ errmsg = messages.getString("mboxWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ int midport = Integer.parseInt(new String(msg.body));
+
+ Socket in2Socket = null;
+ try {
+ in2Socket = new Socket(host, midport);
+ } catch (UnknownHostException e) {
+ System.err.println("Don't know about host: " + host);
+ errmsg = messages.getString("unknownServer") + "\n" ;
+ return true;
+ } catch (IOException e) {
+ System.err.println("Couldn't perform middlebox testing to: " + host);
+ errmsg = messages.getString("middleboxFail") + "\n" ;
+ return true;
+ }
+
+ InputStream srvin2 = in2Socket.getInputStream();
+ OutputStream srvout2 = in2Socket.getOutputStream();
+
+ int largewin = 128*1024;
+
+ in2Socket.setSoTimeout(6500);
+ int bytes = 0;
+ int inlth;
+ t = System.currentTimeMillis();
+ pub_TimeStamp = new Date();
+
+ try {
+ while ((inlth=srvin2.read(buff,0,buff.length)) > 0) {
+ bytes += inlth;
+ pub_bytes = bytes;
+ if ((System.currentTimeMillis() - t) > 5500)
+ break;
+ }
+ }
+ catch (IOException e) {}
+
+ t = System.currentTimeMillis() - t;
+ System.out.println(bytes + " bytes " + (8.0 * bytes)/t + " kb/s " + t/1000 + " secs");
+ s2cspd = ((8.0 * bytes) / 1000) / t;
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_MSG) {
+ errmsg = messages.getString("mboxWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ tmpstr2 = new String(msg.body);
+
+ String tmpstr4 = Double.toString(s2cspd*1000);
+ System.out.println("Sending '" + tmpstr4 + "' back to server");
+ ctl.send_msg(TEST_MSG, tmpstr4.getBytes());
+
+ try {
+ tmpstr2 += in2Socket.getInetAddress() + ";";
+ } catch (SecurityException e) {
+ System.err.println("Unable to obtain Servers IP addresses: using " + host);
+ errmsg = "getInetAddress() called failed\n" ;
+ tmpstr2 += host + ";";
+ results.append(messages.getString("lookupError") + "\n");
+ }
+
+ System.err.println("calling in2Socket.getLocalAddress()");
+ try {
+ tmpstr2 += in2Socket.getLocalAddress() + ";";
+ } catch (SecurityException e) {
+ System.err.println("Unable to obtain local IP address: using 127.0.0.1");
+ errmsg = "getLocalAddress() call failed\n" ;
+ tmpstr2 += "127.0.0.1;";
+ }
+
+ srvin2.close();
+ srvout2.close();
+ in2Socket.close();
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_FINALIZE) {
+ errmsg = messages.getString("mboxWrongMessage");
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ results.append(messages.getString("done") + "\n");
+ statistics.append(messages.getString("done") + "\n");
+ emailText += messages.getString("done") + "\n%0A";
}

- public void onEndTest() {
+ public boolean test_sfw(Protocol ctl) throws IOException
+ {
+ Message msg = new Message();
+ if ((tests & TEST_SFW) == TEST_SFW) {
+ showStatus(messages.getString("sfwTest"));
+ results.append(messages.getString("checkingFirewalls") + " ");
+ statistics.append(messages.getString("checkingFirewalls") + " ");
+ emailText = messages.getString("checkingFirewalls") + " ";
+ pub_status = "checkingFirewalls";
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_PREPARE) {
+ errmsg = messages.getString("sfwWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+
+ String message = new String(msg.body);
+
+ int srvPort, testTime;
+ try {
+ int k = message.indexOf(" ");
+ srvPort = Integer.parseInt(message.substring(0,k));
+ testTime = Integer.parseInt(message.substring(k+1));
+ }
+ catch (Exception e) {
+ errmsg = messages.getString("sfwWrongMessage") + "\n";
+ return true;
+ }
+
+ System.out.println("SFW: port=" + srvPort);
+ System.out.println("SFW: testTime=" + testTime);
+
+ ServerSocket srvSocket;
+ try {
+ SecurityManager security = System.getSecurityManager();
+ if (security != null) {
+ System.out.println("Asking security manager for listen permissions...");
+ security.checkListen(0);
+ }
+ srvSocket = new ServerSocket(0);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ errmsg = messages.getString("sfwSocketFail") + "\n";
+ return true;
+ }
+
+ System.out.println("SFW: oport=" + srvSocket.getLocalPort());
+ ctl.send_msg(TEST_MSG, Integer.toString(srvSocket.getLocalPort()).getBytes());
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_START) {
+ errmsg = messages.getString("sfwWrongMessage");
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+
+ OsfwWorker osfwTest = new OsfwWorker(srvSocket, testTime);
+ new Thread(osfwTest).start();
+
+ Socket sfwSocket = new Socket();
+ try {
+ sfwSocket.connect(new InetSocketAddress(host, srvPort), testTime * 1000);
+
+ Protocol sfwCtl = new Protocol(sfwSocket);
+ sfwCtl.send_msg(TEST_MSG, new String("Simple firewall test").getBytes());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_MSG) {
+ errmsg = messages.getString("sfwWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ c2sResult = Integer.parseInt(new String(msg.body));
+
+ osfwTest.finalize();
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_FINALIZE) {
+ errmsg = messages.getString("sfwWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ results.append(messages.getString("done") + "\n");
+ statistics.append(messages.getString("done") + "\n");
+ emailText += messages.getString("done") + "\n%0A";
}

- public void onFailure(String errorMessage) {
- results.append(errorMessage);
- pub_isReady = "failed";
- pub_errmsg = errorMessage;
+ public boolean test_c2s(Protocol ctl) throws IOException
+ {
+ // byte buff2[] = new byte[8192];
+ byte buff2[] = new byte[64*1024];
+ Message msg = new Message();
+ if ((tests & TEST_C2S) == TEST_C2S) {
+ showStatus(messages.getString("outboundTest"));
+ results.append(messages.getString("runningOutboundTest") + " ");
+ statistics.append(messages.getString("runningOutboundTest") + " ");
+ emailText += messages.getString("runningOutboundTest") + " ";
+ pub_status = "runningOutboundTest";
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_PREPARE) {
+ errmsg = messages.getString("outboundWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ int c2sport = Integer.parseInt(new String(msg.body));
+
+ final Socket outSocket;
+ try {
+ outSocket = new Socket(host, c2sport);
+ } catch (UnknownHostException e) {
+ System.err.println("Don't know about host: " + host);
+ errmsg = messages.getString("unknownServer") + "\n" ;
+ return true;
+ } catch (IOException e) {
+ System.err.println("Couldn't get 2nd connection to: " + host);
+ errmsg = messages.getString("serverBusy15s") + "\n";
+ return true;
+ }
+
+ // Get server IP address from the outSocket.
+ pub_host =
outSocket.getInetAddress().getHostAddress().toString();
+
+
+ final OutputStream out = outSocket.getOutputStream();
+
+ // wait here for signal from server application
+ // This signal tells the client to start pumping out data
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_START) {
+ errmsg = messages.getString("outboundWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+
+ byte c = '0';
+ int i;
+ for (i=0; i<lth; i++) {
+ if (c == 'z')
+ c = '0';
+ buff2[i] = c++;
+ }
+ System.err.println("Send buffer size =" + i);
+ pkts = 0;
+ t = System.currentTimeMillis();
+ pub_time = t;
+ new Thread() {
+
+ public void run() {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ System.out.println(e);
+ }
+ try {
+ out.close();
+ outSocket.close();
+ } catch (IOException e) {
+ System.out.println(e);
+ }
+ }
+ }.start();
+ while (true) {
+ // System.err.println("Send pkt = " + pkts + "; at " + System.currentTimeMillis());
+ try {
+ out.write(buff2, 0, buff2.length);
+ }
+ catch (SocketException e) {
+ System.out.println(e);
+ break;
+ }
+ // catch (InterruptedIOException iioe) {
+ catch (IOException ioe) {
+ System.out.println("Client socket timed out");
+ break;
+ }
+ pkts++;
+ pub_bytes = (pkts * lth);
+ }
+
+ t = System.currentTimeMillis() - t;
+ System.err.println(t + "sec test completed");
+ if (t == 0) {
+ t = 1;
+ }
+ System.out.println((8.0 * pkts * buff2.length) / t + " kb/s outbound");
+ c2sspd = ((8.0 * pkts * buff2.length) / 1000) / t;
+ /* receive the c2sspd from the server */
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_MSG) {
+ errmsg = messages.getString("outboundWrongMessage");
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ String tmpstr3 = new String(msg.body);
+ sc2sspd = Double.parseDouble(tmpstr3) / 1000.0;
+
+ if (sc2sspd < 1.0) {
+ results.append(prtdbl(sc2sspd*1000) + "kb/s\n");
+ statistics.append(prtdbl(sc2sspd*1000) + "kb/s\n");
+ emailText += prtdbl(sc2sspd*1000) + "kb/s\n%0A";
+ }
+ else {
+ results.append(prtdbl(sc2sspd) + "Mb/s\n");
+ statistics.append(prtdbl(sc2sspd) + "Mb/s\n");
+ emailText += prtdbl(sc2sspd) + "Mb/s\n%0A";
+ }
+
+ // Expose upload speed to JavaScript clients
+ pub_c2sspd = sc2sspd;
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_FINALIZE) {
+ errmsg = messages.getString("outboundWrongMessage");
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
}

- public void onPacketQueuingDetected() {
- JLabel info = new JLabel(messages.getString("information"));
- info.addMouseListener(new MouseAdapter()
- {
-
- public void mouseClicked(MouseEvent e) {
- showBufferedBytesInfo();
+ public boolean test_s2c(Protocol ctl, Socket ctlSocket) throws IOException
+ {
+ byte buff[] = new byte[8192];
+ Message msg = new Message();
+ if ((tests & TEST_S2C) == TEST_S2C) {
+ showStatus(messages.getString("inboundTest"));
+ results.append(messages.getString("runningInboundTest") + " ");
+ statistics.append(messages.getString("runningInboundTest") + " ");
+ emailText += messages.getString("runningInboundTest") + " ";
+ pub_status = "runningInboundTest";
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_PREPARE) {
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ int s2cport = Integer.parseInt(new String(msg.body));
+
+ Socket inSocket;
+ try {
+ inSocket = new Socket(host, s2cport);
+ }
+ catch (UnknownHostException e) {
+ System.err.println("Don't know about host: " + host);
+ errmsg = "unknown server\n" ;
+ return true;
+ }
+ catch (IOException e) {
+ System.err.println("Couldn't get 3rd connection to: " + host);
+ errmsg = "Server Failed while receiving data\n" ;
+ return true;
+ }
+
+ InputStream srvin = inSocket.getInputStream();
+ int bytes = 0;
+ int inlth;
+
+ // wait here for signal from server application
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("unknownServer") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_START) {
+ errmsg = messages.getString("serverFail") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+
+ inSocket.setSoTimeout(15000);
+ t = System.currentTimeMillis();
+ pub_time = t;
+
+ try {
+ while ((inlth=srvin.read(buff,0,buff.length)) > 0) {
+ bytes += inlth;
+ pub_bytes = bytes;
+ if ((System.currentTimeMillis() - t) > 14500)
+ break;
+ }
+ }
+ catch (IOException e) {}
+
+ t = System.currentTimeMillis() - t;
+ System.out.println(bytes + " bytes " + (8.0 * bytes)/t + " kb/s " + t/1000 + " secs");
+ s2cspd = ((8.0 * bytes) / 1000) / t;
+
+ /* receive the s2cspd from the server */
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_MSG) {
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ try {
+ String tmpstr3 = new String(msg.body);
+ int k1 = tmpstr3.indexOf(" ");
+ int k2 = tmpstr3.substring(k1+1).indexOf(" ");
+ ss2cspd = Double.parseDouble(tmpstr3.substring(0, k1)) / 1000.0;
+ ssndqueue = Integer.parseInt(tmpstr3.substring(k1+1).substring(0, k2));
+ sbytes = Double.parseDouble(tmpstr3.substring(k1+1).substring(k2+1));
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
+ return true;
+ }
+
+ if (s2cspd < 1.0) {
+ results.append(prtdbl(s2cspd*1000) + "kb/s\n");
+ statistics.append(prtdbl(s2cspd*1000) + "kb/s\n");
+ emailText += prtdbl(s2cspd*1000) + "kb/s\n%0A";
+ } else {
+ results.append(prtdbl(s2cspd) + "Mb/s\n");
+ statistics.append(prtdbl(s2cspd) + "Mb/s\n");
+ emailText += prtdbl(s2cspd) + "Mb/s\n%0A";
+ }
+
+
+ // Expose download speed to JavaScript clients
+ pub_s2cspd = s2cspd;
+ pub_status = "done";
+
+ srvin.close();
+ inSocket.close();
+
+ buff = Double.toString(s2cspd*1000).getBytes();
+ String tmpstr4 = new String(buff, 0, buff.length);
+ System.out.println("Sending '" + tmpstr4 + "' back to server");
+ ctl.send_msg(TEST_MSG, buff);
+
+ /* get web100 variables from server */
+ tmpstr = "";
+ int i = 0;
+
+ // Try setting a 5 second timer here to break out if the read fails.
+ ctlSocket.setSoTimeout(5000);
+ try {
+ for (;;) {
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type == TEST_FINALIZE) {
+ break;
+ }
+ if (msg.type != TEST_MSG) {
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
}

});
@@ -782,8 +1367,199 @@
info.setAlignmentY((float) 0.8);
results.insertComponent(info);
}
-
- public void onLoginSent() {
+ pub_status = "done";
+ return false;
+ }
+
+ public boolean test_meta(Protocol ctl) throws IOException
+ {
+ Message msg = new Message();
+ if ((tests & TEST_META) == TEST_META) {
+ showStatus(messages.getString("metaTest"));
+ results.append(messages.getString("sendingMetaInformation") + " ");
+ statistics.append(messages.getString("sendingMetaInformation") + " ");
+ emailText += messages.getString("sendingMetaInformation") + " ";
+ pub_status = "sendingMetaInformation";
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_PREPARE) {
+ errmsg = messages.getString("metaWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_START) {
+ errmsg = messages.getString("metaWrongMessage") + "\n";
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+
+ ctl.send_msg(TEST_MSG, (META_CLIENT_OS + ":" + System.getProperty("os.name")).getBytes());
+ ctl.send_msg(TEST_MSG, (META_BROWSER_OS + ":" + UserAgentTools.getBrowser(getUserAgent())[2]).getBytes());
+ ctl.send_msg(TEST_MSG, (META_CLIENT_KERNEL_VERSION + ":" + System.getProperty("os.version")).getBytes());
+ ctl.send_msg(TEST_MSG, (META_CLIENT_VERSION + ":" + VERSION).getBytes());
+
+ ctl.send_msg(TEST_MSG, new byte[0]);
+
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ return true;
+ }
+ if (msg.type != TEST_FINALIZE) {
+ errmsg = messages.getString("metaWrongMessage");
+ if (msg.type == MSG_ERROR) {
+ errmsg += "ERROR MSG: " + Integer.parseInt(new String(msg.body), 16) + "\n";
+ }
+ return true;
+ }
+ results.append(messages.getString("done") + "\n");
+ statistics.append(messages.getString("done") + "\n");
+ emailText += messages.getString("done") + "\n%0A";
+ }
+
+ pub_status = "done";
+ return false;
+ }
+
+ public void dottcp(StatusPanel sPanel) throws IOException {
+ Socket ctlSocket = null;
+ if (!isApplication) {
+
+ /*************************************************************************
+ * Enable NDT to test against a web100srv instance on a remote server.
+ * Instead of using the getCodeBase().getHost() value for the testing server,
+ * which assumes this applet is being served from the web100srv server,
+ * use a parameter provided in the APPLET tag.
+ * Note that for this to work the applet must be signed because you are
+ * potentially accessing a server outside the source domain.
+ */
+ host = getParameter("testingServer");
+ /************************************************************************/
+ /* fall back to the old behaviour if the APPLET tag is not set */
+ if (host == null) {
+ host = getCodeBase().getHost();
+ }
+
+ pub_host = host;
+ }
+
+
+
+
+ int ctlport = 3001;
+ double wait2;
+ int sbuf, rbuf;
+ int i, wait, swait=0;
+
+ failed = false;
+
+ try {
+
+ // RAC Debug message
+ results.append(messages.getString("connectingTo") + " '" + host + "' [" + InetAddress.getByName(host) + "] " + messages.getString("toRunTest") + "\n");
+
+ if (preferIPv6.isSelected()) {
+ try {
+ System.setProperty("java.net.preferIPv6Addresses", "true");
+ }
+ catch (SecurityException e) {
+ System.err.println("Couldn't set system property. Check your security settings.");
+ }
+ }
+ preferIPv6.setEnabled(false);
+ ctlSocket = new Socket(host, ctlport);
+ } catch (UnknownHostException e) {
+ System.err.println("Don't know about host: " + host);
+ errmsg = messages.getString("unknownServer") + "\n" ;
+ failed = true;
+ return;
+ } catch (IOException e) {
+ System.err.println("Couldn't get the connection to: " + host + " " +ctlport);
+ errmsg = messages.getString("serverNotRunning") + " (" + host + ":" + ctlport + ")\n" ;
+ failed = true;
+ return;
+ }
+ Protocol ctl = new Protocol(ctlSocket);
+ Message msg = new Message();
+
+ /* The beginning of the protocol */
+
+ if (ctlSocket.getInetAddress() instanceof Inet6Address) {
+ results.append(messages.getString("connected") + " " + host + messages.getString("usingIpv6") + "\n");
+ }
+ else {
+ results.append(messages.getString("connected") + " " + host + messages.getString("usingIpv4") + "\n");
+ }
+
+ /* write our test suite request */
+ ctl.send_msg(MSG_LOGIN, tests);
+ /* read the specially crafted data that kicks off the old clients */
+ if (ctl.readn(msg, 13) != 13) {
+ errmsg = messages.getString("unsupportedClient") + "\n";
+ failed = true;
+ return;
+ }
+
+ for (;;) {
+ if (ctl.recv_msg(msg) != 0) {
+ errmsg = messages.getString("protocolError") + Integer.parseInt(new String(msg.body), 16) + " instead\n";
+ failed = true;
+ return;
+ }
+ if (msg.type != SRV_QUEUE) {
+ errmsg = messages.getString("loggingWrongMessage") + "\n";
+ failed = true;
+ return;
+ }
+ String tmpstr3 = new String(msg.body);
+ wait = Integer.parseInt(tmpstr3);
+ System.out.println("wait flag received = " + wait);
+
+ if (wait == 0) {
+ break;
+ }
+
+ if (wait == 9988) {
+ if (swait == 0) {
+ errmsg = messages.getString("serverBusy") + "\n";
+ failed = true;
+ return;
+ } else {
+ errmsg = messages.getString("serverFault") + "\n";
+ failed = true;
+ return;
+ }
+ }
+
+ if (wait == 9999) {
+ errmsg = messages.getString("serverBusy60s") + "\n";
+ failed = true;
+ return;
+ }
+
+ if (wait == 9990) { // signal from the server to see if the client is still alive
+ ctl.send_msg(MSG_WAITING, tests);
+ continue;
+ }
+
+ // Each test should take less than 30 seconds, so tell them 45 sec * number of
+ // tests in the queue.
+ wait = (wait * 45);
+ results.append(messages.getString("otherClient") + wait + messages.getString("seconds") +".\n");
+ swait = 1;
+ }
+
f.toBack();
ff.toBack();
}
@@ -800,9 +1576,71 @@
showStatus(status);
}

- public void updateStatusPanel(String status) {
- sPanel.setText(status);
- }
+ while (tokenizer.hasMoreTokens()) {
+ if (sPanel.wantToStop()) {
+ ctl.send_msg(MSG_ERROR, "Manually stopped by the user".getBytes());
+ ctl.close();
+ ctlSocket.close();
+ errmsg = "\n" + messages.getString("stopped") + "\n";
+ failed = true;
+ return;
+ }
+ int testId = Integer.parseInt(tokenizer.nextToken());
+ switch (testId) {
+ case TEST_MID:
+ sPanel.setText(messages.getString("middlebox"));
+ if (test_mid(ctl)) {
+ results.append(errmsg);
+ results.append(messages.getString("middleboxFail2") + "\n");
+ tests &= (~TEST_MID);
+ }
+ break;
+ case TEST_SFW:
+ sPanel.setText(messages.getString("simpleFirewall"));
+ if (test_sfw(ctl)) {
+ results.append(errmsg);
+ results.append(messages.getString("sfwFail") + "\n");
+ tests &= (~TEST_SFW);
+ }
+ break;
+ case TEST_C2S:
+ sPanel.setText(messages.getString("c2sThroughput"));
+ if (test_c2s(ctl)) {
+ results.append(errmsg);
+ results.append(messages.getString("c2sThroughputFailed") + "\n");
+ tests &= (~TEST_C2S);
+ }
+ break;
+ case TEST_S2C:
+ sPanel.setText(messages.getString("s2cThroughput"));
+ if (test_s2c(ctl, ctlSocket)) {
+ results.append(errmsg);
+ results.append(messages.getString("s2cThroughputFailed") + "\n");
+ tests &= (~TEST_S2C);
+ }
+ break;
+ case TEST_META:
+ sPanel.setText(messages.getString("meta"));
+ if (test_meta(ctl)) {
+ results.append(errmsg);
+ results.append(messages.getString("metaFailed") + "\n");
+ tests &= (~TEST_META);
+ }
+ break;
+ default:
+ errmsg = messages.getString("unknownID") + "\n";
+ failed = true;
+ return;
+ }
+ }
+ if (sPanel.wantToStop()) {
+ ctl.send_msg(MSG_ERROR, "Manually stopped by the user".getBytes());
+ ctl.close();
+ ctlSocket.close();
+ errmsg = messages.getString("stopped") + "\n";
+ failed = true;
+ return;
+ }

// Allows setting of the 'public' fields for the JavaScript API from the test thread
public void setVariable(String name, int value) {
@@ -827,6 +1665,30 @@
} catch (IllegalAccessException e) {
System.err.println("Failed to set '" + name + "':" + e);
}
+ catch (Exception ex) {
+ results.append(messages.getString("resultsParseError") + "\n");
+ results.append(ex + "\n");
+ }
+ if ((tests & TEST_MID) == TEST_MID) {
+ middleboxResults(tmpstr2);
+ }
+
+ pub_isReady="yes";
+ pub_errmsg ="All tests completed OK.";
+ pub_status = "done";
***The diff for this file has been truncated for email.***
=======================================
--- /branches/android/Makefile.in Fri May 28 04:57:08 2010
+++ /branches/android/Makefile.in Fri Jun 10 09:17:33 2011
@@ -53,7 +53,7 @@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/configure AUTHORS CHANGES COPYING ChangeLog INSTALL
NEWS \
+ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
config/compile config/depcomp config/install-sh config/missing \
config/mkinstalldirs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -201,6 +201,7 @@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
=======================================
--- /branches/android/aclocal.m4 Sun Feb 28 11:29:32 2010
+++ /branches/android/aclocal.m4 Fri Jun 10 09:17:33 2011
@@ -13,8 +13,8 @@

m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
+[m4_warning([this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
=======================================
--- /branches/android/conf/Makefile.in Sun Feb 28 11:29:32 2010
+++ /branches/android/conf/Makefile.in Fri Jun 10 09:17:33 2011
@@ -105,6 +105,7 @@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
=======================================
--- /branches/android/conf/ndt Tue Jun 30 09:17:48 2009
+++ /branches/android/conf/ndt Fri Jun 10 09:17:33 2011
@@ -21,8 +21,8 @@

start ()
{
- # cnt=`ps auxw | grep web100srv | grep -v grep | wc -l`
- cnt=`ps auxw | grep ndtd | grep -v grep | wc -l`
+ # cnt=`ps auxw | grep $path/web100srv | grep -v grep | wc -l`
+ cnt=`ps auxw | grep $path/ndtd | grep -v grep | wc -l`
if [ $cnt = 0 ]
then
cd /usr/local/ndt/serverdata
@@ -42,7 +42,7 @@
echo
fi

- cnt=`ps auxw | grep fakewww | grep -v grep | wc -l`
+ cnt=`ps auxw | grep $path/fakewww | grep -v grep | wc -l`
if [ $cnt = 0 ]
then
echo -n "Starting fakewww:"
=======================================
--- /branches/android/conf/start.ndt Thu Jul 15 10:54:20 2004
+++ /branches/android/conf/start.ndt Fri Jun 10 09:17:33 2011
@@ -1,12 +1,13 @@
#! /bin/csh -f

-
-set cnt = `ps auxw | grep web100srv | grep -v grep | wc -l`
+path=/usr/local/sbin
+
+set cnt = `ps auxw | grep $path/web100srv | grep -v grep | wc -l`
if ($cnt == 0) then
- /usr/local/sbin/web100srv -a >& /dev/null &
+ $path/web100srv -a >& /dev/null &
endif

-set cnt = `ps auxw | grep fakewww | grep -v grep | wc -l`
+set cnt = `ps auxw | grep $path/fakewww | grep -v grep | wc -l`
if ($cnt == 0) then
- /usr/local/sbin/fakewww -l/var/log/fakewww.log >& /dev/null &
+ $path/fakewww -l/var/log/fakewww.log >& /dev/null &
endif
=======================================
--- /branches/android/config.h.in Thu Sep 17 14:15:33 2009
+++ /branches/android/config.h.in Fri Jun 10 09:17:33 2011
@@ -155,6 +155,9 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
/* Define to the version of this package. */
#undef PACKAGE_VERSION

=======================================
--- /branches/android/configure Wed Apr 21 17:45:18 2010
+++ /branches/android/configure Fri Jun 10 09:17:33 2011
@@ -1,20 +1,24 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for NDT 3.6.3.
+# Generated by GNU Autoconf 2.65 for NDT 3.6.4.
#
# Report bugs to
<>.
#
+#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+#
+#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##

# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -22,23 +26,15 @@
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
esac
-
fi


-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
as_nl='
'
export as_nl
@@ -46,7 +42,13 @@
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
@@ -57,7 +59,7 @@
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
- case $arg in
+ case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -80,13 +82,6 @@
}
fi

-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-

# IFS
# We need space, tab and new line, in precisely that order. Quoting is
@@ -96,15 +91,15 @@
IFS=" "" $as_nl"

# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
IFS=$as_save_IFS

;;
@@ -116,12 +111,16 @@
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- { (exit 1); exit 1; }
+ exit 1
fi

-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
@@ -133,330 +132,300 @@
LANGUAGE=C
export LANGUAGE

-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
# CDPATH.
-$as_unset CDPATH
-
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH

if test "x$CONFIG_SHELL" = x; then
- if (eval ":") 2>/dev/null; then
- as_have_required=yes
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh)
/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on
\${1+\"\$@\"},
which
+ # is contrary to our usage. Disable this feature.
+ alias -g
'\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
else
- as_have_required=no
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
fi
-
- if test $as_have_required = yes && (eval ":
-(as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }

exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
else
- exitcode=1
- echo as_func_ret_success failed.
+ exitcode=1; echo positional parameters were not saved.
fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
else
- exitcode=1
- echo positional parameters were not saved.
+ as_have_required=no
fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=\$LINENO
- as_lineno_2=\$LINENO
- test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
- test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
- :
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
else
- as_candidate_shells=
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- case $as_dir in
+ as_found=:
+ case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
- as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
done;;
esac
+ as_found=false
done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
IFS=$as_save_IFS


- for as_shell in $as_candidate_shells $SHELL; do
- # Try only shells that exist, to save several forks.
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
fi

-
-:
-_ASEOF
-}; then
- CONFIG_SHELL=$as_shell
- as_have_required=yes
- if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
-esac
-
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell

and
+$0:

about your system, including any
+$0: error possibly output before this message. Then install
+$0: a modern shell, or manually run the script under such a
+$0: shell if you do have one."
+ fi
+ exit 1
fi
-
-
-:
-(as_func_return () {
- (exit $1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
-else
- exitcode=1
- echo as_func_success failed.
fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
fi
-
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
- :
-else
- exitcode=1
- echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
- break
-fi
-
-fi
-
- done
-
- if test "x$CONFIG_SHELL" != x; then
- for as_var in BASH_ENV ENV
- do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- done
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
- if test $as_have_required = no; then
- echo This script requires a shell more modern than all the
- echo shells that I found on your system. Please install a
- echo modern shell, or manually run the script under such a
- echo shell if you do have one.
- { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
- (exit \$1)
-}
-as_func_success () {
- as_func_return 0
-}
-as_func_failure () {
- as_func_return 1
-}
-as_func_ret_success () {
- return 0
-}
-as_func_ret_failure () {
- return 1
-}
-
-exitcode=0
-if as_func_success; then
- :
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
else
- exitcode=1
- echo as_func_success failed.
+ as_expr=false
fi

-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
- :
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
else
- exitcode=1
- echo as_func_ret_success failed.
+ as_basename=false
fi

-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
else
- exitcode=1
- echo positional parameters were not saved.
+ as_dirname=false
fi

-test \$exitcode = 0") || {
- echo No shell found that supports shell functions.
- echo Please tell

about your system,
- echo including any error possibly output before this message.
- echo This can help us improve future autoconf versions.
- echo Configuration will now proceed without shell functions.
-}
-
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits


- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line after each line using $LINENO; the second 'sed'
- # does the real work. The second script uses 'N' to pair each
- # line-number line with the line containing $LINENO, and appends
- # trailing '-' during substitution so that $LINENO is not a special
- # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
@@ -473,8 +442,7 @@
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }

# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
@@ -483,30 +451,19 @@
# Exit status is that of the last command.
exit
}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi

ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
-n*)
- case `echo 'x\c'` in
+ case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi

rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
@@ -536,7 +493,7 @@
rmdir conf$$.dir 2>/dev/null

if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
+ as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
@@ -555,10 +512,10 @@
if test -d "$1"; then
test -d "$1/.";
else
- case $1 in
+ case $1 in #(
-*)set "./$1";;
esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
???[sx]*):;;*)false;;esac;fi
'\'' sh
'
@@ -572,8 +529,8 @@
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"


-
-exec 7<&0 </dev/null 6>&1
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1

# Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
@@ -591,14 +548,14 @@
subdirs=
MFLAGS=
MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}

# Identity of this package.
PACKAGE_NAME='NDT'
PACKAGE_TARNAME='ndt'
-PACKAGE_VERSION='3.6.3'
-PACKAGE_STRING='NDT 3.6.3'
+PACKAGE_VERSION='3.6.4'
+PACKAGE_STRING='NDT 3.6.4'

'
+PACKAGE_URL=''

ac_unique_file="src/analyze.c"
enable_option_checking=no
@@ -754,6 +711,7 @@
program_transform_name
prefix
exec_prefix
+PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
@@ -887,8 +845,7 @@
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -914,8 +871,7 @@
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1119,8 +1075,7 @@
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1136,8 +1091,7 @@
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1167,17 +1121,17 @@
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;

- -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
;;

*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;

@@ -1194,15 +1148,13 @@

if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { $as_echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "missing argument to $ac_option"
fi

if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
- fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
- { (exit 1); exit 1; }; } ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1225,8 +1177,7 @@
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
- { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
done

# There might be people who depend on the old broken behavior: `$host'
@@ -1256,11 +1207,9 @@
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- { $as_echo "$as_me: error: working directory cannot be determined" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "pwd does not report name of working directory"


# Find the source files, if location was not specified.
@@ -1299,13 +1248,11 @@
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
- { (exit 1); exit 1; }; }
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1331,7 +1278,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures NDT 3.6.3 to adapt to many kinds of systems.
+\`configure' configures NDT 3.6.4 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

@@ -1397,7 +1344,7 @@

if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of NDT 3.6.3:";;
+ short | recursive ) echo "Configuration of NDT 3.6.4:";;
esac
cat <<\_ACEOF

@@ -1425,7 +1372,7 @@
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor

@@ -1495,22 +1442,433 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-NDT configure 3.6.3
-generated by GNU Autoconf 2.63
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+NDT configure 3.6.4
+generated by GNU Autoconf 2.65
+
+Copyright (C) 2009 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
***The diff for this file has been truncated for email.***
=======================================
--- /branches/android/configure.ac Wed Apr 21 17:45:18 2010
+++ /branches/android/configure.ac Fri Jun 10 09:17:33 2011
@@ -29,7 +29,7 @@
# Process this file with autoconf to produce a configure script.
#
# AC_PREREQ(2.57)
-AC_INIT([NDT],[3.6.3],[])
+AC_INIT([NDT],[3.6.4],[])
AC_CONFIG_AUX_DIR(config)
# AM_INIT_AUTOMAKE(NDT, v1.0, [no-define])
AM_INIT_AUTOMAKE
@@ -261,3 +261,76 @@
src/Makefile Admin/Makefile Applet/Makefile
conf/Makefile doc/Makefile janalyze/Makefile])
AC_OUTPUT
+
+echo ""
+echo ""
+echo "***********************************"
+echo "*** Network Diagnostic Tool ***"
+echo "***********************************"
+echo "* configured modules *"
+echo "***********************************"
+echo ""
+echo ""
+
+SUMMARY_WEB100CLT="YES"
+if test -z "$HAVE_WEB100_TRUE" && test -n "$HAVE_WEB100_FALSE"; then
+if test -z "$HAVE_PCAP_H_TRUE" && test -n "$HAVE_PCAP_H_FALSE"; then
+SUMMARY_WEB100SRV="YES"
+else
+SUMMARY_WEB100SRV="NO (missing pcap headers)"
+fi
+SUMMARY_FAKEWWW="YES"
+SUMMARY_ANALYZE="YES"
+SUMMARY_VIEWTRACE="YES"
+SUMMARY_TRMKMAP="YES"
+SUMMARY_GENPLOT="YES"
+else
+SUMMARY_WEB100SRV="NO (missing web100 library)"
+SUMMARY_FAKEWWW="NO (missing web100 library)"
+SUMMARY_ANALYZE="NO (missing web100 library)"
+SUMMARY_VIEWTRACE="NO (missing web100 library)"
+SUMMARY_TRMKMAP="NO (missing web100 library)"
+SUMMARY_GENPLOT="NO (missing web100 library)"
+fi
+
+if test -z "$HAVE_GCJ_TRUE" && test -n "$HAVE_GCJ_FALSE"; then
+SUMMARY_ADMINCLASS="YES"
+SUMMARY_TCPBW100JAR="YES"
+SUMMARY_JANALYZEJAR="YES"
+else
+SUMMARY_ADMINCLASS="NO (missing java compiler)"
+SUMMARY_TCPBW100JAR="NO (missing java compiler)"
+SUMMARY_JANALYZEJAR="NO (missing java compiler)"
+fi
+
+if test "$SUMMARY_WEB100CLT" = "YES"; then
+echo "*** Client Tools - complete"
+else
+echo "*** Client Tools - incomplete"
+fi
+echo "* web100clt: ${SUMMARY_WEB100CLT}"
+echo ""
+
+if test "$SUMMARY_FAKEWWW" = "YES" && test "$SUMMARY_WEB100SRV" = "YES" && test "$SUMMARY_TCPBW100JAR" = "YES"; then
+echo "*** Server Tools - complete"
+else
+echo "*** Server Tools - incomplete"
+fi
+echo "* fakewww: ${SUMMARY_FAKEWWW}"
+echo "* web100srv: ${SUMMARY_WEB100SRV}"
+echo "* Tcpbw100.jar: ${SUMMARY_TCPBW100JAR}"
+echo ""
+
+if test "$SUMMARY_ANALYZE" = "YES" && test "$SUMMARY_VIEWTRACE" = "YES" && test "$SUMMARY_TRMKMAP" = "YES" && test "$SUMMARY_GENPLOT" = "YES" && test "$SUMMARY_JANALYZEJAR" = "YES" && test "$SUMMARY_ADMINCLASS" = "YES"; then
+echo "*** Administrative Tools - complete"
+else
+echo "*** Administrative Tools - incomplete"
+fi
+echo "* analyze: ${SUMMARY_ANALYZE}"
+echo "* viewtrace: ${SUMMARY_VIEWTRACE}"
+echo "* tr-mkmap: ${SUMMARY_TRMKMAP}"
+echo "* genplot: ${SUMMARY_GENPLOT}"
+echo "* JAnalyze.jar: ${SUMMARY_JANALYZEJAR}"
+echo "* Admin.class: ${SUMMARY_ADMINCLASS}"
+echo ""
+echo ""
=======================================
--- /branches/android/doc/Makefile.in Sun Feb 28 11:29:32 2010
+++ /branches/android/doc/Makefile.in Fri Jun 10 09:17:33 2011
@@ -149,6 +149,7 @@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
=======================================
--- /branches/android/janalyze/Makefile.in Sun Feb 28 11:29:32 2010
+++ /branches/android/janalyze/Makefile.in Fri Jun 10 09:17:33 2011
@@ -168,6 +168,7 @@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
=======================================
--- /branches/android/src/Makefile.am Thu Sep 10 09:16:13 2009
+++ /branches/android/src/Makefile.am Fri Jun 10 09:17:33 2011
@@ -34,7 +34,7 @@
endif

web100clt_SOURCES = web100clt.c network.c usage.c logging.c utils.c protocol.c \
- test_sfw_clt.c test_mid_clt.c test_c2s_clt.c test_s2c_clt.c
+ test_sfw_clt.c test_mid_clt.c test_c2s_clt.c test_s2c_clt.c test_meta_clt.c
web100clt_LDADD = $(I2UTILLIBDEPS) -lpthread $(ZLIB)
web100clt_CPPFLAGS ='-DBASEDIR="$(ndtdir)"'
web100clt_DEPENDENCIES = $(I2UTILLIBDEPS)
@@ -53,7 +53,7 @@

web100srv_SOURCES = web100srv.c web100-util.c web100-pcap.c web100-admin.c \
network.c usage.c utils.c mrange.c logging.c testoptions.c \
- protocol.c test_sfw_srv.c ndt_odbc.c
+ protocol.c test_sfw_srv.c test_meta_srv.c ndt_odbc.c
web100srv_LDFLAGS = $(NDTLDFLAGS) $(I2UTILLDFLAGS)
web100srv_LDADD = $(NDTLIBS) $(I2UTILLIBS) $(I2UTILLIBDEPS) -lpthread $(ZLIB)
web100srv_CPPFLAGS ='-DBASEDIR="$(ndtdir)"'
@@ -83,5 +83,5 @@
$(I2UTILLIBDEPS):
$(I2UTILLIBMAKE)

-EXTRA_DIST = clt_tests.h logging.h mrange.h network.h protocol.h testoptions.h test_sfw.h \
+EXTRA_DIST = clt_tests.h logging.h mrange.h network.h protocol.h testoptions.h test_sfw.h test_meta.h \
troute.h tr-tree.h usage.h utils.h varinfo.h web100-admin.h web100srv.h ndt_odbc.h
=======================================
--- /branches/android/src/Makefile.in Sun Feb 28 11:29:32 2010
+++ /branches/android/src/Makefile.in Fri Jun 10 09:17:33 2011
@@ -102,7 +102,8 @@
web100clt-protocol.$(OBJEXT) web100clt-test_sfw_clt.$(OBJEXT) \
web100clt-test_mid_clt.$(OBJEXT) \
web100clt-test_c2s_clt.$(OBJEXT) \
- web100clt-test_s2c_clt.$(OBJEXT)
+ web100clt-test_s2c_clt.$(OBJEXT) \
+ web100clt-test_meta_clt.$(OBJEXT)
web100clt_OBJECTS = $(am_web100clt_OBJECTS)
am_web100srv_OBJECTS = web100srv-web100srv.$(OBJEXT) \
web100srv-web100-util.$(OBJEXT) \
@@ -111,7 +112,8 @@
web100srv-usage.$(OBJEXT) web100srv-utils.$(OBJEXT) \
web100srv-mrange.$(OBJEXT) web100srv-logging.$(OBJEXT) \
web100srv-testoptions.$(OBJEXT) web100srv-protocol.$(OBJEXT) \
- web100srv-test_sfw_srv.$(OBJEXT) web100srv-ndt_odbc.$(OBJEXT)
+ web100srv-test_sfw_srv.$(OBJEXT) \
+ web100srv-test_meta_srv.$(OBJEXT) web100srv-ndt_odbc.$(OBJEXT)
web100srv_OBJECTS = $(am_web100srv_OBJECTS)
web100srv_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(web100srv_LDFLAGS) \
$(LDFLAGS) -o $@
@@ -191,6 +193,7 @@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
@@ -251,7 +254,7 @@
AM_CFLAGS = $(NDTCFLAGS)
ndtdir = $(prefix)/ndt
web100clt_SOURCES = web100clt.c network.c usage.c logging.c utils.c protocol.c \
- test_sfw_clt.c test_mid_clt.c test_c2s_clt.c test_s2c_clt.c
+ test_sfw_clt.c test_mid_clt.c test_c2s_clt.c test_s2c_clt.c test_meta_clt.c

web100clt_LDADD = $(I2UTILLIBDEPS) -lpthread $(ZLIB)
web100clt_CPPFLAGS = '-DBASEDIR="$(ndtdir)"'
@@ -267,7 +270,7 @@
fakewww_CPPFLAGS = '-DBASEDIR="$(ndtdir)"'
web100srv_SOURCES = web100srv.c web100-util.c web100-pcap.c web100-admin.c \
network.c usage.c utils.c mrange.c logging.c testoptions.c \
- protocol.c test_sfw_srv.c ndt_odbc.c
+ protocol.c test_sfw_srv.c test_meta_srv.c ndt_odbc.c

web100srv_LDFLAGS = $(NDTLDFLAGS) $(I2UTILLDFLAGS)
web100srv_LDADD = $(NDTLIBS) $(I2UTILLIBS) $(I2UTILLIBDEPS) -lpthread $(ZLIB)
@@ -279,7 +282,7 @@
tr_mkmap_SOURCES = tr-mkmap.c tr-tree.c tr-tree6.c usage.c logging.c
tr_mkmap_LDADD = $(NDTLIBS) $(I2UTILLIBDEPS) $(ZLIB)
tr_mkmap_CPPFLAGS = '-DBASEDIR="$(ndtdir)"'
-EXTRA_DIST = clt_tests.h logging.h mrange.h network.h protocol.h testoptions.h test_sfw.h \
+EXTRA_DIST = clt_tests.h logging.h mrange.h network.h protocol.h testoptions.h test_sfw.h test_meta.h \
troute.h tr-tree.h usage.h utils.h varinfo.h web100-admin.h web100srv.h ndt_odbc.h

all: all-am
@@ -444,6 +447,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100clt-network.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100clt-protocol.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100clt-test_c2s_clt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100clt-test_meta_clt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100clt-test_mid_clt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100clt-test_s2c_clt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100clt-test_sfw_clt.Po@am__quote@
@@ -455,6 +459,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100srv-ndt_odbc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100srv-network.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100srv-protocol.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100srv-test_meta_srv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100srv-test_sfw_srv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100srv-testoptions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/web100srv-usage.Po@am__quote@
@@ -926,6 +931,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100clt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o web100clt-test_s2c_clt.obj `if test -f 'test_s2c_clt.c'; then $(CYGPATH_W) 'test_s2c_clt.c'; else $(CYGPATH_W) '$(srcdir)/test_s2c_clt.c'; fi`

+web100clt-test_meta_clt.o: test_meta_clt.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100clt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT web100clt-test_meta_clt.o -MD -MP -MF $(DEPDIR)/web100clt-test_meta_clt.Tpo -c -o web100clt-test_meta_clt.o `test -f 'test_meta_clt.c' || echo '$(srcdir)/'`test_meta_clt.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/web100clt-test_meta_clt.Tpo $(DEPDIR)/web100clt-test_meta_clt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_meta_clt.c' object='web100clt-test_meta_clt.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100clt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o web100clt-test_meta_clt.o `test -f 'test_meta_clt.c' || echo '$(srcdir)/'`test_meta_clt.c
+
+web100clt-test_meta_clt.obj: test_meta_clt.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100clt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT web100clt-test_meta_clt.obj -MD -MP -MF $(DEPDIR)/web100clt-test_meta_clt.Tpo -c -o web100clt-test_meta_clt.obj `if test -f 'test_meta_clt.c'; then $(CYGPATH_W) 'test_meta_clt.c'; else $(CYGPATH_W) '$(srcdir)/test_meta_clt.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/web100clt-test_meta_clt.Tpo $(DEPDIR)/web100clt-test_meta_clt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_meta_clt.c' object='web100clt-test_meta_clt.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100clt_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o web100clt-test_meta_clt.obj `if test -f 'test_meta_clt.c'; then $(CYGPATH_W) 'test_meta_clt.c'; else $(CYGPATH_W) '$(srcdir)/test_meta_clt.c'; fi`
+
web100srv-web100srv.o: web100srv.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100srv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT web100srv-web100srv.o -MD -MP -MF $(DEPDIR)/web100srv-web100srv.Tpo -c -o web100srv-web100srv.o `test -f 'web100srv.c' || echo '$(srcdir)/'`web100srv.c
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/web100srv-web100srv.Tpo $(DEPDIR)/web100srv-web100srv.Po
@@ -1094,6 +1113,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100srv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o web100srv-test_sfw_srv.obj `if test -f 'test_sfw_srv.c'; then $(CYGPATH_W) 'test_sfw_srv.c'; else $(CYGPATH_W) '$(srcdir)/test_sfw_srv.c'; fi`

+web100srv-test_meta_srv.o: test_meta_srv.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100srv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT web100srv-test_meta_srv.o -MD -MP -MF $(DEPDIR)/web100srv-test_meta_srv.Tpo -c -o web100srv-test_meta_srv.o `test -f 'test_meta_srv.c' || echo '$(srcdir)/'`test_meta_srv.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/web100srv-test_meta_srv.Tpo $(DEPDIR)/web100srv-test_meta_srv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_meta_srv.c' object='web100srv-test_meta_srv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100srv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o web100srv-test_meta_srv.o `test -f 'test_meta_srv.c' || echo '$(srcdir)/'`test_meta_srv.c
+
+web100srv-test_meta_srv.obj: test_meta_srv.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100srv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT web100srv-test_meta_srv.obj -MD -MP -MF $(DEPDIR)/web100srv-test_meta_srv.Tpo -c -o web100srv-test_meta_srv.obj `if test -f 'test_meta_srv.c'; then $(CYGPATH_W) 'test_meta_srv.c'; else $(CYGPATH_W) '$(srcdir)/test_meta_srv.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/web100srv-test_meta_srv.Tpo $(DEPDIR)/web100srv-test_meta_srv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_meta_srv.c' object='web100srv-test_meta_srv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100srv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o web100srv-test_meta_srv.obj `if test -f 'test_meta_srv.c'; then $(CYGPATH_W) 'test_meta_srv.c'; else $(CYGPATH_W) '$(srcdir)/test_meta_srv.c'; fi`
+
web100srv-ndt_odbc.o: ndt_odbc.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(web100srv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT web100srv-ndt_odbc.o -MD -MP -MF $(DEPDIR)/web100srv-ndt_odbc.Tpo -c -o web100srv-ndt_odbc.o `test -f 'ndt_odbc.c' || echo '$(srcdir)/'`ndt_odbc.c
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/web100srv-ndt_odbc.Tpo $(DEPDIR)/web100srv-ndt_odbc.Po
=======================================
--- /branches/android/src/logging.c Mon Jan 4 18:34:32 2010
+++ /branches/android/src/logging.c Fri Jun 10 09:17:33 2011
@@ -1,7 +1,7 @@
/*
* This file contains the functions of the logging system.
*
- * Jakub S³awiñski 2006-06-14
+ * Jakub S�awi�ski 2006-06-14
*

*/

@@ -436,7 +436,6 @@
char isoTime[64], filename[256];
size_t tmpstrlen=sizeof(tmpstr);
socklen_t len;
- int rc;
DIR *dp;

/* Get the clients domain name and same in metadata file
@@ -551,6 +550,14 @@
fprintf(fp, "client OS name: %s\n", meta.client_os);
fprintf(fp, "client_browser name: %s\n", meta.client_browser);
fprintf(fp, "Summary data: %s\n", meta.summary);
+ if (meta.additional) {
+ fprintf(fp, " * Additional data:\n");
+ struct metaentry* entry = meta.additional;
+ while (entry) {
+ fprintf(fp, "%s: %s\n", entry->key, entry->value);
+ entry = entry->next;
+ }
+ }
fclose(fp);
}
}
=======================================
--- /branches/android/src/logging.h Tue Oct 13 07:49:45 2009
+++ /branches/android/src/logging.h Fri Jun 10 09:17:33 2011
@@ -2,7 +2,7 @@
* This file contains the function declarations of the logging
* system.
*
- * Jakub S³awiñski 2006-06-14
+ * Jakub S�awi�ski 2006-06-14
*

*/

@@ -36,6 +36,12 @@

int zlib_def(char *src_fn);

+struct metaentry {
+ char key[64];
+ char value[256];
+ struct metaentry* next;
+};
+
struct metadata {
char c2s_snaplog[64];
char c2s_ndttrace[64];
@@ -55,6 +61,7 @@
char server_name[64];
char server_os[32];
int family;
+ struct metaentry* additional;
};

struct metadata meta;
=======================================
--- /branches/android/src/protocol.h Thu Jul 9 08:00:55 2009
+++ /branches/android/src/protocol.h Fri Jun 10 09:17:33 2011
@@ -27,6 +27,7 @@
#define TEST_S2C (1L << 2)
#define TEST_SFW (1L << 3)
#define TEST_STATUS (1L << 4)
+#define TEST_META (1L << 5)

#define TOPT_DISABLED 0
#define TOPT_ENABLED 1
=======================================
--- /branches/android/src/testoptions.c Wed Apr 21 17:45:18 2010
+++ /branches/android/src/testoptions.c Fri Jun 10 09:17:33 2011
@@ -1,7 +1,7 @@
/*
* This file contains the functions needed to handle various tests.
*
- * Jakub S³awiñski 2006-06-24
+ * Jakub S�awi�ski 2006-06-24
*

*/

@@ -154,27 +154,46 @@

return NULL;
}
+
+/*
+ * Function name: add_test_to_suite
+ * Description: Adds test id to the test suite
+ * Arguments: first - first test indicator
+ * buff - test suite description
+ * test_id - id of the test
+ */
+void
+add_test_to_suite(int* first, char * buff, int test_id)
+{
+ char tmpbuff[16];
+ if (*first) {
+ *first = 0;
+ sprintf(buff, "%d", test_id);
+ }
+ else {
+ memset(tmpbuff, 0, 16);
+ sprintf(tmpbuff, " %d", test_id);
+ strcat(buff, tmpbuff);
+ }
+}

/*
* Function name: initialize_tests
* Description: Initializes the tests for the client.
* Arguments: ctlsockfd - the client control socket descriptor
* options - the test options
- * conn_options - the connection options
+ * buff - the connection options
* Returns: 0 - success,
* >0 - error code.
*/

int
-/* initialize_tests(int ctlsockfd, TestOptions* options, int conn_options, char * buff) */
initialize_tests(int ctlsockfd, TestOptions* options, char * buff)
{
unsigned char useropt=0;
int msgType;
int msgLen = 1;
- /* char buff[1024]; */
int first = 1;
- char tmpbuff[16];

assert(ctlsockfd != -1);
assert(options);
@@ -194,53 +213,25 @@
send_msg(ctlsockfd, MSG_ERROR, buff, strlen(buff));
return (-2);
}
- if (!(useropt & (TEST_MID | TEST_C2S | TEST_S2C | TEST_SFW | TEST_STATUS))) {
+ if (!(useropt & (TEST_MID | TEST_C2S | TEST_S2C | TEST_SFW | TEST_STATUS | TEST_META))) {
sprintf(buff, "Invalid test suite request");
send_msg(ctlsockfd, MSG_ERROR, buff, strlen(buff));
return (-3);
}
if (useropt & TEST_MID) {
- /* options->midopt = TOPT_ENABLED; */
- if (first) {
- first = 0;
- sprintf(buff, "%ld", TEST_MID);
- }
+ add_test_to_suite(&first, buff, TEST_MID);
}
if (useropt & TEST_SFW) {
- /* options->sfwopt = TOPT_ENABLED; */
- if (first) {
- first = 0;
- sprintf(buff, "%ld", TEST_SFW);
- }
- else {
- memset(tmpbuff, 0, 16);
- sprintf(tmpbuff, " %ld", TEST_SFW);
- strcat(buff, tmpbuff);
- }
+ add_test_to_suite(&first, buff, TEST_SFW);
}
if (useropt & TEST_C2S) {
- /* options->c2sopt = TOPT_ENABLED; */
- if (first) {
- first = 0;
- sprintf(buff, "%ld", TEST_C2S);
- }
- else {
- memset(tmpbuff, 0, 16);
- sprintf(tmpbuff, " %ld", TEST_C2S);
- strcat(buff, tmpbuff);
- }
+ add_test_to_suite(&first, buff, TEST_C2S);
}
if (useropt & TEST_S2C) {
- /* options->s2copt = TOPT_ENABLED; */
- if (first) {
- first = 0;
- sprintf(buff, "%ld", TEST_S2C);
- }
- else {
- memset(tmpbuff, 0, 16);
- sprintf(tmpbuff, " %ld", TEST_S2C);
- strcat(buff, tmpbuff);
- }
+ add_test_to_suite(&first, buff, TEST_S2C);
+ }
+ if (useropt & TEST_META) {
+ add_test_to_suite(&first, buff, TEST_META);
}
return useropt;
}
=======================================
--- /branches/android/src/testoptions.h Fri Apr 9 09:23:03 2010
+++ /branches/android/src/testoptions.h Fri Jun 10 09:17:33 2011
@@ -2,7 +2,7 @@
* This file contains the definitions and function declarations to
* handle various tests.
*
- * Jakub S³awiñski 2006-06-24
+ * Jakub S�awi�ski 2006-06-24
*

*/

@@ -33,13 +33,15 @@

int sfwopt;
int State;
+
+ int metaopt;
} TestOptions;

int wait_sig;

-/* int initialize_tests(int ctlsockfd, TestOptions* options, int conn_options); */
-int initialize_tests(int ctlsockfd, TestOptions* options, char * test_suite);
-int test_mid(int ctlsockfd, web100_agent* agent, TestOptions* options, int conn_options, double* s2c2spd);
+int initialize_tests(int ctlsockfd, TestOptions* testOptions, char * test_suite);
+
+int test_mid(int ctlsockfd, web100_agent* agent, TestOptions* testOptions, int conn_options, double* s2c2spd);
int test_c2s(int ctlsockfd, web100_agent* agent, TestOptions* testOptions, int conn_options, double* c2sspd,
int set_buff, int window, int autotune, char* device, Options* options,
int record_reverse, int count_vars, char spds[4][256], int* spd_index);
@@ -47,6 +49,8 @@
int set_buff, int window, int autotune, char* device, Options* options, char spds[4][256],
int* spd_index, int count_vars, CwndPeaks* peaks);
int test_sfw_srv(int ctlsockfd, web100_agent* agent, TestOptions* options, int conn_options);
+int test_meta_srv(int ctlsockfd, web100_agent* agent, TestOptions* options, int conn_options);
+
int getCurrentTest();
void setCurrentTest(int testId);

=======================================
--- /branches/android/src/web100clt.c Fri Apr 9 09:49:47 2010
+++ /branches/android/src/web100clt.c Fri Jun 10 09:17:33 2011
@@ -15,6 +15,7 @@
#include "utils.h"
#include "protocol.h"
#include "test_sfw.h"
+#include "test_meta.h"
#include "clt_tests.h"

#ifndef VIEW_DIFF
@@ -598,7 +599,7 @@
{
int c, swait;
char tmpstr2[512], tmpstr[16384], varstr[16384];
- unsigned char tests = TEST_MID | TEST_C2S | TEST_S2C | TEST_SFW | TEST_STATUS;
+ unsigned char tests = TEST_MID | TEST_C2S | TEST_S2C | TEST_SFW | TEST_STATUS | TEST_META;
int ctlSocket;
int ctlport = 3001;
int ret, xwait;
@@ -707,6 +708,14 @@
else {
printf("Using IPv6 address\n");
}
+
+ /* set the TEST_STATUS flag so the server knows this client will respond to status requests.
+ * this will let the server kill off zombie clients from the queue
+ * RAC 7/7/09
+ */
+ if (tests & TEST_STATUS) {
+ log_println(1, "* New Client, implements queuing feedback");
+ }

log_println(1, "Requesting test suite:");
if (tests & TEST_MID) {
@@ -721,13 +730,8 @@
if (tests & TEST_S2C) {
log_println(1, " > S2C throughput test");
}
-
- /* set the TEST_STATUS flag so the server knows this client will respond to status requests.
- * this will let the server kill off zombie clients from the queue
- * RAC 7/7/09
- */
- if (tests & TEST_STATUS) {
- log_println(1, " > New Client, impliments queuing feedback");
+ if (tests & TEST_META) {
+ log_println(1, " > META test");
}

/* The beginning of the protocol */
@@ -867,6 +871,12 @@
log_println(0, "Simple firewall test FAILED!");
tests &= (~TEST_SFW);
}
+ break;
+ case TEST_META:
+ if (test_meta_clt(ctlSocket, tests, host, conn_options)) {
+ log_println(0, "META test FAILED!");
+ tests &= (~TEST_META);
+ }
break;
default:
log_println(0, "Unknown test ID");
=======================================
--- /branches/android/src/web100srv.c Sun Jul 4 20:51:50 2010
+++ /branches/android/src/web100srv.c Fri Jun 10 09:17:33 2011
@@ -445,6 +445,9 @@
case TEST_SFW:
log_println(6, "Received SIGALRM signal [Simple firewall test]");
break;
+ case TEST_META:
+ log_println(6, "Received SIGALRM signal [META test]");
+ break;
}
fp = fopen(get_logfile(),"a");
if (fp != NULL) {
@@ -470,6 +473,9 @@
case TEST_SFW:
fprintf(fp, " [Simple firewall test]\n");
break;
+ case TEST_META:
+ fprintf(fp, " [META test]\n");
+ break;
default:
fprintf(fp, "\n");
}
@@ -926,6 +932,9 @@
if (testopt->s2copt) {
log_println(1, " > S2C throughput test");
}
+ if (testopt->metaopt) {
+ log_println(1, " > META test");
+ }

/* alarm(15); */
log_println(6, "Starting middlebox test");
@@ -965,6 +974,13 @@
testopt->s2copt = TOPT_DISABLED;
return ret;
}
+
+ log_println(6, "Starting META test");
+ if ((ret = test_meta_srv(ctlsockfd, agent, &*testopt, conn_options)) != 0) {
+ if (ret < 0) {
+ log_println(6, "META test failed with rc=%d", ret);
+ }
+ }

log_println(4, "Finished testing C2S = %0.2f Mbps, S2C = %0.2f Mbps", c2sspd/1000, s2cspd/1000);
for (n=0; n<spd_index; n++) {
@@ -1249,7 +1265,7 @@
SubsequentTimeouts, ThruBytesAcked, peaks.min, peaks.max, peaks.amount);
if (usesyslog == 1) {
sprintf(logstr1,"client_IP=%s,c2s_spd=%2.0f,s2c_spd=%2.0f,Timeouts=%d,SumRTT=%d,CountRTT=%d,PktsRetrans=%d,FastRetran=%d,DataPktsOut=%d,AckPktsOut=%d,CurrentMSS=%d,DupAcksIn=%d,AckPktsIn=%d,",
- rmt_host, s2cspd, c2sspd, Timeouts, SumRTT, CountRTT, PktsRetrans,
+ rmt_host, c2sspd, s2cspd, Timeouts, SumRTT, CountRTT, PktsRetrans,
FastRetran, DataPktsOut, AckPktsOut, CurrentMSS, DupAcksIn, AckPktsIn);
sprintf(logstr2,"MaxRwinRcvd=%d,Sndbuf=%d,MaxCwnd=%d,SndLimTimeRwin=%d,SndLimTimeCwnd=%d,SndLimTimeSender=%d,DataBytesOut=%d,SndLimTransRwin=%d,SndLimTransCwnd=%d,SndLimTransSender=%d,MaxSsthresh=%d,CurrentRTO=%d,CurrentRwinRcvd=%d,",
MaxRwinRcvd, Sndbuf, MaxCwnd, SndLimTimeRwin, SndLimTimeCwnd,
@@ -2371,6 +2387,8 @@
testopt.midopt = TOPT_ENABLED;
if (t_opts & TEST_SFW)
testopt.sfwopt = TOPT_ENABLED;
+ if (t_opts & TEST_META)
+ testopt.metaopt = TOPT_ENABLED;
if (t_opts & TEST_C2S)
testopt.c2sopt = TOPT_ENABLED;
if (t_opts & TEST_S2C)
=======================================
--- /branches/android/tcpbw100.template Fri May 7 04:37:48 2010
+++ /branches/android/tcpbw100.template Fri Jun 10 09:17:33 2011
@@ -5,7 +5,7 @@
<meta http-equiv="Content-Language" content="en">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
-<body>
+<body onload="setTimeout('setUserAgent()', 2000)">
<h3> YOURSITE Web100 based Network Diagnostic Tool (NDT) </h3>
<b>Located at YOURLOCATION;
YOURSPEED network connection</b>
@@ -32,7 +32,7 @@
built into the java program. -->

<table align=center><tr><td>
-<applet code=Tcpbw100.class ARCHIVE="Tcpbw100.jar"
+<applet code=Tcpbw100.class name="NDTApplet" ARCHIVE="Tcpbw100.jar"
width=700 height=320>
<PARAM NAME="H" VALUE="YOURDOMAIN">
<PARAM NAME="U" VALUE="YOUREMAIL">
@@ -196,5 +196,14 @@
Comments to <a href="mailto:"> Rich Carlson </a> email:
<br><i>Created: April 4, 2002 by Rich Carlson
<br>Last Updated: March 16, 2010 by Jason Zurawski</i>
+
+<script language="javascript" type="text/javascript">
+
+ function setUserAgent() {
+ document.NDTApplet.setUserAgent(navigator.userAgent);
+ }
+
+</script>
+
</body>
</html>
=======================================
--- /trunk/HTML5-frontend/fonts/League_Gothic.eot Fri Mar 18 07:44:18
2011
+++ /branches/android/HTML5-frontend/fonts/League_Gothic.eot Fri Jun 10 09:17:33 2011
Binary file, no diff available.
=======================================
--- /trunk/HTML5-frontend/fonts/League_Gothic.otf Fri Mar 18 07:44:18
2011
+++ /branches/android/HTML5-frontend/fonts/League_Gothic.otf Fri Jun 10 09:17:33 2011
Binary file, no diff available.
=======================================
--- /trunk/HTML5-frontend/images/mlab-logo.png Fri Mar 18 07:44:18 2011
+++ /branches/android/HTML5-frontend/images/mlab-logo.png Fri Jun 10 09:17:33 2011
Binary file, no diff available.
=======================================
--- /trunk/HTML5-frontend/images/progress-bar-left.png Fri Mar 18 07:44:18 2011
+++ /branches/android/HTML5-frontend/images/progress-bar-left.png Fri Jun 10 09:17:33 2011
Binary file, no diff available.
=======================================
--- /trunk/HTML5-frontend/images/progress-bar-right.png Fri Mar 18 07:44:18 2011
+++ /branches/android/HTML5-frontend/images/progress-bar-right.png Fri Jun 10 09:17:33 2011
Binary file, no diff available.
=======================================
--- /trunk/HTML5-frontend/images/progress-bar.png Fri Mar 18 07:44:18
2011
+++ /branches/android/HTML5-frontend/images/progress-bar.png Fri Jun 10 09:17:33 2011
Binary file, no diff available.
=======================================
***Additional files exist in this changeset.***


  • [ndt-dev] [ndt] r396 committed - Merge trunk., ndt, 06/10/2011

Archive powered by MHonArc 2.6.16.

Top of Page