X-Git-Url: http://dolda2000.com/gitweb/?p=fulbank.git;a=blobdiff_plain;f=fulbank%2Ffsb.py;h=8f6280c0e3237bc1cadba287751db7f18afaf94a;hp=c7af807a5ecd4d554cfaed28c8a82c7a6202dfbc;hb=db4731c69885dab2d880a60b538e6909c5c40641;hpb=8cda37c591cee501f0a79efe9728950c9929637f diff --git a/fulbank/fsb.py b/fulbank/fsb.py index c7af807..8f6280c 100644 --- a/fulbank/fsb.py +++ b/fulbank/fsb.py @@ -251,12 +251,13 @@ class session(object): if st != fst: conv.message("Status: %s" % (st,), auth.conv.msg_info) fst = st - continue elif st == "COMPLETE": self._postlogin() return elif st == "CANCELLED": raise autherror("authentication cancelled") + elif st == "OUTSTANDING_TRANSACTION": + raise autherror("another bankid transaction already in progress") else: raise fmterror("unexpected bankid status: " + str(st)) time.sleep(3) @@ -288,6 +289,18 @@ class session(object): self.logout() self._req("v5/framework/clientsession", method="DELETE") + def __getstate__(self): + state = dict(self.__dict__) + state["jar"] = list(state["jar"].cookiejar) + return state + + def __setstate__(self, state): + jar = request.HTTPCookieProcessor() + for cookie in state["jar"]: + jar.cookiejar.set_cookie(cookie) + state["jar"] = jar + self.__dict__.update(state) + def __enter__(self): return self