MNode* arg = cell->cdr ();
MLCookieLogin* obj = MObjRef<MLCookieLogin> (mobj, cMLCookieLoginID);
ustring id;
- ustring sessionval;
time_t avail = 0;
time_t limit;
ustring group;
} else {
r.append (uColon);
}
- sessionval = randomKey ();
- obj->db.put (sessionval, r);
+ obj->sessionval = randomKey ();
+ obj->db.put (obj->sessionval, r);
// write a cookie
if (obj->sessionkey.size () > 0) {
if (fsecure) {
if (isHTTPS ()) {
- ustring sessionval2 (randomKey ());
ustring key2 (obj->sessionkey);
- obj->db.put (sessionval2, sessionval);
+ obj->sessionval_ssl = randomKey ();
+ obj->db.put (obj->sessionval_ssl, obj->sessionval);
key2.append (CharConst ("N"));
- mlenv->env->http.setCookie (obj->sessionkey, sessionval, path, span, domain, true, mlenv->env);
- mlenv->env->http.setCookie (key2, sessionval2, path, span, domain, false, mlenv->env);
+ mlenv->env->http.setCookie (obj->sessionkey, obj->sessionval, path, span, domain, true, mlenv->env);
+ mlenv->env->http.setCookie (key2, obj->sessionval_ssl, path, span, domain, false, mlenv->env);
} else {
- mlenv->env->http.setCookie (obj->sessionkey, sessionval, path, span, domain, false, mlenv->env);
+ mlenv->env->http.setCookie (obj->sessionkey, obj->sessionval, path, span, domain, false, mlenv->env);
}
} else {
- mlenv->env->http.setCookie (obj->sessionkey, sessionval, path, span, domain, false, mlenv->env);
+ mlenv->env->http.setCookie (obj->sessionkey, obj->sessionval, path, span, domain, false, mlenv->env);
}
}
obj->closedb ();
return NULL;
}
+/*DOC:
+====session-key====
+ (session-key) -> STRING
+
+*/
+//#SFUNC session-key ml_cookielogin_session_key
+MNode* ml_cookielogin_session_key (MNode* cell, MlEnv* mlenv, MLFunc* mobj) {
+ MNode* arg = cell->cdr ();
+ MLCookieLogin* obj = MObjRef<MLCookieLogin> (mobj, cMLCookieLoginID);
+
+ if (arg)
+ throw (uErrorWrongNumber);
+
+ return newMNode_str (new ustring (obj->sessionval));
+}
+
+/*DOC:
+====session-key-ssl====
+ (session-key-ssl) -> STRING
+
+*/
+//#SFUNC session-key-ssl ml_cookielogin_session_key_ssl
+MNode* ml_cookielogin_session_key_ssl (MNode* cell, MlEnv* mlenv, MLFunc* mobj) {
+ MNode* arg = cell->cdr ();
+ MLCookieLogin* obj = MObjRef<MLCookieLogin> (mobj, cMLCookieLoginID);
+
+ if (arg)
+ throw (uErrorWrongNumber);
+
+ return newMNode_str (new ustring (obj->sessionval_ssl));
+}
FileMacro lock;
ustring dbpath;
ustring sessionkey;
+ ustring sessionval;
+ ustring sessionval_ssl;
MLCookieLogin (MlEnv* _mlenv): MLFunc (cMLCookieLoginID, _mlenv) {};
virtual ~MLCookieLogin () {
MNode* ml_cookielogin_check (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
MNode* ml_cookielogin_delete (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
MNode* ml_cookielogin_clear (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
+MNode* ml_cookielogin_session_key (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
+MNode* ml_cookielogin_session_key_ssl (MNode* cell, MlEnv* mlenv, MLFunc* mobj);
#endif /* ML_COOKIELOGIN_H */