das konstrukt an sich soll auch gar nichts machen.
das war einfach und kurz.
mein problem ist, dass ein dictionairy nicht gefüllt wird!
ich habe so eine konstruktion, wie du sie gesehen hast,
aber nach dem aufruf der funktion, die das dictionairy füllen soll, sieht alles genauso aus.
aber an sich funktioniert auch die funktion, nur mit der einschränkung,
dass sie nur funktioniert, solange ich entweder nur einen thread habe oder den root-login tätigt.
also hier mal mein print-out:
murph@murphs:~/own_project$ ./servertest.py
load...
6E(�S&
[(0, u'root', u'4829764b4082d0c138feac79de89b24275a769dd', 1), (1, u'murph2', u'ffc6cb613cefc081b38d82bd770ee01fa2ef0446', 0)]
-->[ok]
it is Thu Aug 10 11:46:59 2006
server will run till Thu Aug 10 11:47:19 2006
the multithreadversion
this is the login-sid :ct}��*
someone tried to logged in :ct}��*
the uid: 1
i am the userthread! the usrsid is :ct}��*
Unhandled exception in thread started by <function userthread at 0xb7dadf0c>
Traceback (most recent call last):
File "/home/murph/own_project/sqliteserver.py", line 408, in userthread
usrcon = self.conn.connection(usrsid)
File "/home/murph/own_project/sqliteserver.py", line 62, in connection
uid = self.session[sid]
KeyError: ':c\x92t}\xcb;\x1f\xe3\xc4\xf8\xf9\x10\x02\x16*'
test[1] is the same as usrsid
{'\xfc6\xf9\x83\xa0\x91E(\xa6\x8e\x81\xcb\xf2\xc1\x93&': 0}
ATTACK! Wrong SID! [':c\x92t}\xcb;\x1f\xe3\xc4\xf8\xf9\x10\x02\x16*', 'execute', 'SELECT * FROM test']
ATTACK from known user
durch einige prints werde ich noch mehr verunsichert:
es wird eine sid ermittelt beim login, die wird dreimal angezeigt!
zuerst direkt im login, danach im main-part, danach im userthread.
der userthread kann die uid (userid) ziehen, die man braucht, um auf die datenbanken zuzugreifen.
dann das verwunderliche: ich kann die connection und den cursor nicht "abholen" (code:)
Code: Alles auswählen
def connection(self,sid):
uid = self.session[sid]
return self.conn[uid]
def cursor(self,sid):
uid = self.session[sid]
return self.cur[uid]
das ist an sich einfach nur das returnen von einem dic.inhalt, der beim login festgelegt wurde (die connection aufgebaut, der cursor initialisiert).
aber wie zu sehen ist, ist dort der sid-eintrag auf einmal verschwunden!
danach wird noch ausgegeben, dass die sid gleich der in einer liste abgespeicherten liste angegeben ist.
//edit:
ich habe es aus diesem konstrukt genommen, und es hat funktioniert!
vllt irgendein self oder so, keine ahnung!