if (aenv.debugDump) {
close (2);
dup (1);
-// env.standardResponse (ustring (kMIME_TEXT), ustring (kCODE_UTF8));
- env.standardResponse (ustring (kMIME_TEXT), uUTF8, uEmpty, false);
- cout.flush ();
- cerr.flush ();
+ if (form->method != CGIForm::M_NONE) {
+ env.standardResponse (ustring (kMIME_TEXT), uUTF8, uEmpty, false);
+ cout.flush ();
+ cerr.flush ();
+ } else {
+ env.responseDone = true;
+ }
}
#ifdef DEBUG
}
return newMNode_str (new ustring (val));
}
+
+/*DOC:
+===set-cookie===
+ (set-cookie NAME VALUE [:path PATH] [:domain DOMAIN] [:span TIME] [:limit TIME]) -> NIL
+
+*/
+//#AFUNC set-cookie ml_set_cookie
+MNode* ml_set_cookie (MNode* cell, MlEnv* mlenv) {
+ MNode* arg = cell->cdr ();
+ ustring name;
+ ustring value;
+ ustring path;
+ ustring domain;
+ time_t span = 0;
+ time_t limit = 0;
+ bool fsecure = false;
+ std::vector<MNode*> params;
+ std::vector<MNode*> keywords;
+ static paramList kwlist[] = {
+ {CharConst ("path"), false},
+ {CharConst ("domain"), false},
+ {CharConst ("span"), false},
+ {CharConst ("limit"), false},
+ {CharConst ("secure"), true},
+ {NULL, 0, 0}
+ };
+
+ setParams (arg, 2, ¶ms, kwlist, &keywords, NULL);
+ name = eval_asciiword (params[0], mlenv);
+ value = eval_str (params[1], mlenv);
+ if (keywords[0])
+ path = eval_asciiword (keywords[0], mlenv);
+ if (keywords[1])
+ domain = eval_asciiword (keywords[1], mlenv);
+ if (keywords[2])
+ span = eval_int (keywords[2], mlenv);
+ if (keywords[3])
+ limit = eval_int (keywords[3], mlenv);
+ if (keywords[4])
+ fsecure = eval_bool (keywords[4], mlenv);
+ if (name.length () > 128)
+ throw ("too long name.");
+ if (value.length () > 512)
+ throw ("too long value.");
+
+ mlenv->env->http.setCookie (name, value, path, span, domain, fsecure, mlenv->env);
+
+ return NULL;
+}