Store the script options in the engine.
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine.pm
index 84c75e9..2a5f5f7 100644 (file)
@@ -45,9 +45,12 @@ has _response_cb => (
     predicate => '_has_response_cb',
 );
 
+subtype 'Catalyst::Engine::Types::Writer',
+    as duck_type([qw(write close)]);
+
 has _writer => (
     is      => 'ro',
-    isa     => duck_type([qw(write close)]),
+    isa     => 'Catalyst::Engine::Types::Writer',
     writer  => '_set_writer',
     clearer => '_clear_writer',
 );
@@ -128,6 +131,11 @@ sub finalize_cookies {
                 -httponly => $val->{httponly} || 0,
             )
         );
+        if (!defined $cookie) {
+            $c->log->warn("undef passed in '$name' cookie value - not setting cookie")
+                if $c->debug;
+            next;
+        }
 
         push @cookies, $cookie->as_string;
     }
@@ -825,6 +833,7 @@ sub run {
         # instead the $app->handle method is called per request.
         $app->log->warn("Not supplied a Plack engine, falling back to engine auto-loader (are your scripts ancient?)")
     }
+    $app->run_options($options);
     $server->run($psgi, $options);
 }