aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidAsync/AndroidManifest.xml6
-rw-r--r--AndroidAsync/gen/com/koushikdutta/async/R.java3
-rw-r--r--AndroidAsync/res/values/strings.xml1
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/AsyncServer.java10
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/PushParser.java18
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServer.java2
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponse.java3
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java23
-rw-r--r--AndroidAsyncSample/gen/com/koushikdutta/async/R.java11
-rw-r--r--AndroidAsyncSample/gen/com/koushikdutta/async/sample/R.java11
10 files changed, 62 insertions, 26 deletions
diff --git a/AndroidAsync/AndroidManifest.xml b/AndroidAsync/AndroidManifest.xml
index 2c1bacf..7ba5cab 100644
--- a/AndroidAsync/AndroidManifest.xml
+++ b/AndroidAsync/AndroidManifest.xml
@@ -12,11 +12,9 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
- android:icon="@drawable/ic_launcher"
- android:label="@string/name" >
+ android:icon="@drawable/ic_launcher">
<activity
- android:name="com.koushikdutta.test.TestActivity"
- android:label="@string/name" >
+ android:name="com.koushikdutta.test.TestActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
diff --git a/AndroidAsync/gen/com/koushikdutta/async/R.java b/AndroidAsync/gen/com/koushikdutta/async/R.java
index 4f4fe85..5d2ca9b 100644
--- a/AndroidAsync/gen/com/koushikdutta/async/R.java
+++ b/AndroidAsync/gen/com/koushikdutta/async/R.java
@@ -14,7 +14,4 @@ public final class R {
public static int ic_action_search=0x7f020000;
public static int ic_launcher=0x7f020001;
}
- public static final class string {
- public static int name=0x7f030000;
- }
}
diff --git a/AndroidAsync/res/values/strings.xml b/AndroidAsync/res/values/strings.xml
index fd9382d..3261aff 100644
--- a/AndroidAsync/res/values/strings.xml
+++ b/AndroidAsync/res/values/strings.xml
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="name">Async</string>
</resources> \ No newline at end of file
diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncServer.java b/AndroidAsync/src/com/koushikdutta/async/AsyncServer.java
index c333b65..4c79736 100644
--- a/AndroidAsync/src/com/koushikdutta/async/AsyncServer.java
+++ b/AndroidAsync/src/com/koushikdutta/async/AsyncServer.java
@@ -27,9 +27,13 @@ public class AsyncServer {
private static final String LOGTAG = "NIO";
static {
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.FROYO) {
- java.lang.System.setProperty("java.net.preferIPv4Stack", "true");
- java.lang.System.setProperty("java.net.preferIPv6Addresses", "false");
+ try {
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.FROYO) {
+ java.lang.System.setProperty("java.net.preferIPv4Stack", "true");
+ java.lang.System.setProperty("java.net.preferIPv6Addresses", "false");
+ }
+ }
+ catch (Throwable ex) {
}
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/PushParser.java b/AndroidAsync/src/com/koushikdutta/async/PushParser.java
index f076fdf..70e8777 100644
--- a/AndroidAsync/src/com/koushikdutta/async/PushParser.java
+++ b/AndroidAsync/src/com/koushikdutta/async/PushParser.java
@@ -16,6 +16,9 @@ public class PushParser {
int length;
}
+ static class StringWaiter extends BufferWaiter {
+ }
+
static class UntilWaiter {
byte value;
DataCallback callback;
@@ -63,6 +66,14 @@ public class PushParser {
return this;
}
+ public PushParser readString() {
+ readInt();
+ StringWaiter bw = new StringWaiter();
+ bw.length = -1;
+ mWaiting.add(bw);
+ return this;
+ }
+
public PushParser until(byte b, DataCallback callback) {
UntilWaiter waiter = new UntilWaiter();
waiter.value = b;
@@ -163,7 +174,7 @@ public class PushParser {
throw new Exception();
}
}
- else if (waiting instanceof BufferWaiter) {
+ else if (waiting instanceof BufferWaiter || waiting instanceof StringWaiter) {
BufferWaiter bw = (BufferWaiter)waiting;
int length = bw.length;
if (length == -1) {
@@ -185,7 +196,10 @@ public class PushParser {
bb.get(bytes);
}
mNeeded -= length;
- mArgs.add(bytes);
+ if (waiting instanceof StringWaiter)
+ mArgs.add(new String(bytes));
+ else
+ mArgs.add(bytes);
}
else {
Assert.fail();
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServer.java b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServer.java
index b22ac3d..b930a55 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServer.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServer.java
@@ -170,7 +170,7 @@ public class AsyncHttpServer implements ExceptionEmitter {
addAction("GET", regex, callback);
}
- InputStream getAssetStream(final Context context, String asset) {
+ public static InputStream getAssetStream(final Context context, String asset) {
String apkPath = context.getPackageResourcePath();
String assetPath = "assets/" + asset;
try {
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponse.java b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponse.java
index 4831c8c..56e0a88 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponse.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponse.java
@@ -1,5 +1,7 @@
package com.koushikdutta.async.http.server;
+import java.io.File;
+
import org.json.JSONObject;
import com.koushikdutta.async.DataSink;
@@ -10,6 +12,7 @@ public interface AsyncHttpServerResponse extends DataSink {
public void send(String contentType, String string);
public void send(String string);
public void send(JSONObject json);
+ public void sendFile(File file);
public void responseCode(int code);
public ResponseHeaders getHeaders();
public void writeHead();
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java
index 35e7154..3e4ff2d 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.java
@@ -1,5 +1,8 @@
package com.koushikdutta.async.http.server;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
@@ -11,6 +14,8 @@ import com.koushikdutta.async.AsyncSocket;
import com.koushikdutta.async.BufferedDataSink;
import com.koushikdutta.async.ByteBufferList;
import com.koushikdutta.async.FilteredDataSink;
+import com.koushikdutta.async.Util;
+import com.koushikdutta.async.callback.CompletedCallback;
import com.koushikdutta.async.callback.WritableCallback;
import com.koushikdutta.async.http.filter.ChunkedOutputFilter;
import com.koushikdutta.async.http.libcore.RawHeaders;
@@ -126,6 +131,24 @@ public class AsyncHttpServerResponseImpl implements AsyncHttpServerResponse {
public void send(JSONObject json) {
send("application/json", json.toString());
}
+
+ public void sendFile(File file) {
+ try {
+ FileInputStream fin = new FileInputStream(file);
+ mRawHeaders.set("Content-Type", AsyncHttpServer.getContentType(file.getAbsolutePath()));
+ responseCode(200);
+ Util.pump(fin, this, new CompletedCallback() {
+ @Override
+ public void onCompleted(Exception ex) {
+ end();
+ }
+ });
+ }
+ catch (FileNotFoundException e) {
+ responseCode(404);
+ end();
+ }
+ }
@Override
public void responseCode(int code) {
diff --git a/AndroidAsyncSample/gen/com/koushikdutta/async/R.java b/AndroidAsyncSample/gen/com/koushikdutta/async/R.java
index a260ef9..48d7fcd 100644
--- a/AndroidAsyncSample/gen/com/koushikdutta/async/R.java
+++ b/AndroidAsyncSample/gen/com/koushikdutta/async/R.java
@@ -29,12 +29,11 @@ public final class R {
public static final int activity_main=0x7f060000;
}
public static final class string {
- public static final int app_name=0x7f040001;
- public static final int download=0x7f040005;
- public static final int hello_world=0x7f040002;
- public static final int menu_settings=0x7f040003;
- public static final int name=0x7f040000;
- public static final int title_activity_main=0x7f040004;
+ public static final int app_name=0x7f040000;
+ public static final int download=0x7f040004;
+ public static final int hello_world=0x7f040001;
+ public static final int menu_settings=0x7f040002;
+ public static final int title_activity_main=0x7f040003;
}
public static final class style {
public static final int AppTheme=0x7f050000;
diff --git a/AndroidAsyncSample/gen/com/koushikdutta/async/sample/R.java b/AndroidAsyncSample/gen/com/koushikdutta/async/sample/R.java
index 4c6fd91..849c156 100644
--- a/AndroidAsyncSample/gen/com/koushikdutta/async/sample/R.java
+++ b/AndroidAsyncSample/gen/com/koushikdutta/async/sample/R.java
@@ -29,12 +29,11 @@ public final class R {
public static final int activity_main=0x7f060000;
}
public static final class string {
- public static final int app_name=0x7f040001;
- public static final int download=0x7f040005;
- public static final int hello_world=0x7f040002;
- public static final int menu_settings=0x7f040003;
- public static final int name=0x7f040000;
- public static final int title_activity_main=0x7f040004;
+ public static final int app_name=0x7f040000;
+ public static final int download=0x7f040004;
+ public static final int hello_world=0x7f040001;
+ public static final int menu_settings=0x7f040002;
+ public static final int title_activity_main=0x7f040003;
}
public static final class style {
public static final int AppTheme=0x7f050000;