Commit Diff


commit - 94691153c4c35c89935793ee6ddd108306bac566
commit + 71d9d1b3a833b3b8041da66cd1bccab141d2a9fa
blob - c7ac521478186bb7bea8b5f7b1d11cc26867a89c
blob + 42310276aa55497370d2c5580474ae784cb0f663
--- http/http.ha
+++ http/http.ha
@@ -75,17 +75,6 @@ type connection = struct {
 	mux: *mux,
 };
 
-// XXX generic listen would be very handy!
-// something like: http::listen("localhost:8080") or maybe even
-// http::listen("unix:/run/foo.sock")
-
-export fn listen_sock(f: io::file, mux: nullable *mux) void = {
-	ev::add(f, ev::READ, &acceptconn, match(mux) {
-		case null => yield &global;
-		case => yield mux;
-	});
-};
-
 fn acceptconn(f: io::file, ev: ev::event, data: nullable *opaque) void = {
 	let sock = match(net::accept(f, net::sockflag::NONBLOCK)) {
 	case let err: net::error =>
blob - /dev/null
blob + 0d9c7994a7ab2346a7b0ed2658822cebcd5d2c7f (mode 644)
--- /dev/null
+++ http/listen.ha
@@ -0,0 +1,39 @@
+// This is free and unencumbered software released into the public domain.
+//
+// Anyone is free to copy, modify, publish, use, compile, sell, or
+// distribute this software, either in source code form or as a compiled
+// binary, for any purpose, commercial or non-commercial, and by any
+// means.
+//
+// In jurisdictions that recognize copyright laws, the author or authors
+// of this software dedicate any and all copyright interest in the
+// software to the public domain. We make this dedication for the benefit
+// of the public at large and to the detriment of our heirs and
+// successors. We intend this dedication to be an overt act of
+// relinquishment in perpetuity of all present and future rights to this
+// software under copyright law.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+
+use io;
+use net::dns;
+use strings;
+
+use ev;
+
+// XXX generic listen would be very handy!
+// something like: http::listen("localhost:8080") or maybe even
+// http::listen("unix:/run/foo.sock")
+
+export fn listen_sock(f: io::file, mux: nullable *mux) void = {
+	ev::add(f, ev::READ, &acceptconn, match(mux) {
+		case null => yield &global;
+		case => yield mux;
+	});
+};