Fix excessive clearing

This commit is contained in:
Andika Wasisto 2020-05-25 12:40:13 +07:00
parent e156c778b9
commit d73e26f9d1
3 changed files with 18 additions and 4 deletions

View file

@ -37,16 +37,19 @@ qng_wrapper = QngWrapper()
@app.route('/api/randint32') @app.route('/api/randint32')
def api_randint32(): def api_randint32():
qng_wrapper.clear()
return Response(str(qng_wrapper.randint32()), content_type='text/plain') return Response(str(qng_wrapper.randint32()), content_type='text/plain')
@app.route('/api/randuniform') @app.route('/api/randuniform')
def api_randuniform(): def api_randuniform():
qng_wrapper.clear()
return Response(str(qng_wrapper.randuniform()), content_type='text/plain') return Response(str(qng_wrapper.randuniform()), content_type='text/plain')
@app.route('/api/randnormal') @app.route('/api/randnormal')
def api_randnormal(): def api_randnormal():
qng_wrapper.clear()
return Response(str(qng_wrapper.randnormal()), content_type='text/plain') return Response(str(qng_wrapper.randnormal()), content_type='text/plain')
@ -54,6 +57,7 @@ def api_randnormal():
def api_randbytes(): def api_randbytes():
try: try:
length = int(request.args.get('length')) length = int(request.args.get('length'))
qng_wrapper.clear()
return Response(qng_wrapper.randbytes(length), content_type='application/octet-stream') return Response(qng_wrapper.randbytes(length), content_type='application/octet-stream')
except ValueError as e: except ValueError as e:
return Response(str(e), status=400, content_type='text/plain') return Response(str(e), status=400, content_type='text/plain')
@ -70,31 +74,39 @@ def handle_ws_message(message, websocket, subscribed):
try: try:
split_message = message.strip().lower().split() split_message = message.strip().lower().split()
if split_message[0] == 'randint32': if split_message[0] == 'randint32':
qng_wrapper.clear()
websocket.send(str(qng_wrapper.randint32())) websocket.send(str(qng_wrapper.randint32()))
elif split_message[0] == 'randuniform': elif split_message[0] == 'randuniform':
qng_wrapper.clear()
websocket.send(str(qng_wrapper.randuniform())) websocket.send(str(qng_wrapper.randuniform()))
elif split_message[0] == 'randnormal': elif split_message[0] == 'randnormal':
qng_wrapper.clear()
websocket.send(str(qng_wrapper.randnormal())) websocket.send(str(qng_wrapper.randnormal()))
elif split_message[0] == 'randbytes': elif split_message[0] == 'randbytes':
length = int(split_message[1]) length = int(split_message[1])
qng_wrapper.clear()
websocket.send(qng_wrapper.randbytes(length)) websocket.send(qng_wrapper.randbytes(length))
elif split_message[0] == 'subscribeint32': elif split_message[0] == 'subscribeint32':
if not subscribed[0]: if not subscribed[0]:
subscribed[0] = True subscribed[0] = True
qng_wrapper.clear()
while subscribed[0] and not websocket.closed: while subscribed[0] and not websocket.closed:
websocket.send(str(qng_wrapper.randint32())) websocket.send(str(qng_wrapper.randint32()))
elif split_message[0] == 'subscribeuniform': elif split_message[0] == 'subscribeuniform':
if not subscribed[0]: if not subscribed[0]:
subscribed[0] = True subscribed[0] = True
qng_wrapper.clear()
while subscribed[0] and not websocket.closed: while subscribed[0] and not websocket.closed:
websocket.send(str(qng_wrapper.randuniform())) websocket.send(str(qng_wrapper.randuniform()))
elif split_message[0] == 'subscribenormal': elif split_message[0] == 'subscribenormal':
if not subscribed[0]: if not subscribed[0]:
subscribed[0] = True subscribed[0] = True
qng_wrapper.clear()
while subscribed[0] and not websocket.closed: while subscribed[0] and not websocket.closed:
websocket.send(str(qng_wrapper.randnormal())) websocket.send(str(qng_wrapper.randnormal()))
elif split_message[0] == 'subscribebytes': elif split_message[0] == 'subscribebytes':
chunk = int(split_message[1]) chunk = int(split_message[1])
qng_wrapper.clear()
if not subscribed[0]: if not subscribed[0]:
subscribed[0] = True subscribed[0] = True
while subscribed[0] and not websocket.closed: while subscribed[0] and not websocket.closed:

View file

@ -28,7 +28,6 @@ class QngWrapper:
def randint32(self): def randint32(self):
try: try:
self.qng.Clear()
return self.qng.RandInt32 return self.qng.RandInt32
except: except:
self.qng.Reset() self.qng.Reset()
@ -36,7 +35,6 @@ class QngWrapper:
def randuniform(self): def randuniform(self):
try: try:
self.qng.Clear()
return self.qng.RandUniform return self.qng.RandUniform
except: except:
self.qng.Reset() self.qng.Reset()
@ -44,7 +42,6 @@ class QngWrapper:
def randnormal(self): def randnormal(self):
try: try:
self.qng.Clear()
return self.qng.RandNormal return self.qng.RandNormal
except: except:
self.qng.Reset() self.qng.Reset()
@ -52,8 +49,10 @@ class QngWrapper:
def randbytes(self, length): def randbytes(self, length):
try: try:
self.qng.Clear()
return self.qng.RandBytes(length) return self.qng.RandBytes(length)
except: except:
self.qng.Reset() self.qng.Reset()
return self.qng.RandBytes(length) return self.qng.RandBytes(length)
def clear(self):
self.qng.Clear()

View file

@ -35,3 +35,6 @@ class QngWrapperMock:
def randbytes(self, length): def randbytes(self, length):
return secrets.token_bytes(nbytes=length) return secrets.token_bytes(nbytes=length)
def clear(self):
pass