summaryrefslogtreecommitdiffstats
path: root/archives/extend/2012-October/000006.html
diff options
context:
space:
mode:
Diffstat (limited to 'archives/extend/2012-October/000006.html')
-rw-r--r--archives/extend/2012-October/000006.html93
1 files changed, 93 insertions, 0 deletions
diff --git a/archives/extend/2012-October/000006.html b/archives/extend/2012-October/000006.html
new file mode 100644
index 00000000..2e8610ec
--- /dev/null
+++ b/archives/extend/2012-October/000006.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy_http_handler type spec
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy_http_handler%20type%20spec&In-Reply-To=%3C5090660A.2000301%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000005.html">
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy_http_handler type spec</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy_http_handler%20type%20spec&In-Reply-To=%3C5090660A.2000301%40ninenines.eu%3E"
+ TITLE="[99s-extend] cowboy_http_handler type spec">essen at ninenines.eu
+ </A><BR>
+ <I>Wed Oct 31 00:43:06 CET 2012</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000005.html">[99s-extend] cowboy_http_handler type spec
+</A></li>
+
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#6">[ date ]</a>
+ <a href="thread.html#6">[ thread ]</a>
+ <a href="subject.html#6">[ subject ]</a>
+ <a href="author.html#6">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>On 10/31/2012 12:38 AM, rambocoder wrote:
+&gt;<i> Hi everyone, newb questions here:
+</I>&gt;<i>
+</I>&gt;<i> Is the reason why the type specification for the init callback lists
+</I>&gt;<i> various &quot;{loop,...&quot; tuples, because a single module can implement
+</I>&gt;<i> cowboy_loop_handler and cowboy_http_handler?
+</I>&gt;<i> And this way, a dializier warning will not be triggered?
+</I>&gt;<i> <A HREF="https://github.com/extend/cowboy/blob/master/src/cowboy_http_handler.erl#L39">https://github.com/extend/cowboy/blob/master/src/cowboy_http_handler.erl#L39</A>
+</I>
+Yes that's exactly why. Not the best solution but good enough.
+
+&gt;<i> Because looking at the handler code,
+</I>&gt;<i> <A HREF="https://github.com/extend/cowboy/blob/master/src/cowboy_protocol.erl#L473">https://github.com/extend/cowboy/blob/master/src/cowboy_protocol.erl#L473</A> if
+</I>&gt;<i> the {loop, * is returned from init, then the handle(Req,State) will not
+</I>&gt;<i> be processed.
+</I>
+You have this one if you just want loops:
+
+<A HREF="https://github.com/extend/cowboy/blob/master/src/cowboy_loop_handler.erl">https://github.com/extend/cowboy/blob/master/src/cowboy_loop_handler.erl</A>
+
+Having an identical init in both allows us to use the 2 handlers without
+Dialyzer complaining.
+
+&gt;<i> Also, is it safe to say that Handler:init is like &quot;before&quot; in lot's of
+</I>&gt;<i> web frameworks. I can place validation\authentication logic there.
+</I>
+Definitely, prepare what you need in init, do what you need to do in
+handle and clean up in terminate if needed.
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000005.html">[99s-extend] cowboy_http_handler type spec
+</A></li>
+
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#6">[ date ]</a>
+ <a href="thread.html#6">[ thread ]</a>
+ <a href="subject.html#6">[ subject ]</a>
+ <a href="author.html#6">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>