Changed the way Pesterchum quits + TLS fix.
This commit is contained in:
parent
8be8cf9f07
commit
e07e685522
7 changed files with 33 additions and 11 deletions
|
@ -7,6 +7,7 @@
|
|||
- Added styleing/markup to "PESTER" and "ADD GROUP" menu options and some other previously unstyled elements :)
|
||||
- Added pesterchum.spec for use with pyinstaller.
|
||||
- Wrapped socket in SSL context and changed the port appropriately, hostname verification is turned off.
|
||||
- Pesterchum now sends a ``QUIT :reason`` to the server when shutting down instead of just quitting instantly.
|
||||
|
||||
### Changed
|
||||
- Transitioned to Python 3.
|
||||
|
@ -17,6 +18,7 @@
|
|||
### Fixed
|
||||
- Fixed sRGB profile issue with certain images.
|
||||
- Fixed issue where Pesterchum crashed if a quirk was malformed.
|
||||
- Fixed Pesterchum icon getting stuck on the system tray even after shutdown on windows.
|
||||
|
||||
### Deprecated
|
||||
- Removed update system (it seemed to be non-functional).
|
||||
|
|
7
TODO.md
7
TODO.md
|
@ -1,11 +1,12 @@
|
|||
# TODO LIST : )
|
||||
~~Crossed out~~ entries are completed :3c
|
||||
## ADD
|
||||
- A proper prompt for choosing a server.
|
||||
|
||||
## FIX
|
||||
- Pesterchum gets stuck on the system tray even after shutdown on windows.
|
||||
- ~~Pesterchum gets stuck on the system tray even after shutdown on windows.~~
|
||||
- Audio mixer slider in options doesn't always work. (Not working on linux?)
|
||||
- QUIT not send to server on shutdown.
|
||||
- TLS randomly causing socket to break.
|
||||
- ~~QUIT not send to server on shutdown.~~
|
||||
- ~~TLS randomly causing socket to break.~~
|
||||
- Make setup.py work with 32-bit python.
|
||||
- Make setup.py work with py2app (might not be required if pyinstaller works better!!).
|
2
irc.py
2
irc.py
|
@ -420,6 +420,8 @@ class PesterHandler(DefaultCommandHandler):
|
|||
mychumhandle = self.mainwindow.profile().handle
|
||||
mymood = self.mainwindow.profile().mood.value()
|
||||
if not self.mainwindow.config.lowBandwidth():
|
||||
from time import sleep
|
||||
sleep(0.5) # To prevent TLS from dying </3
|
||||
helpers.join(self.client, "#pesterchum")
|
||||
helpers.msg(self.client, "#pesterchum", "MOOD >%d" % (mymood))
|
||||
|
||||
|
|
|
@ -84,8 +84,8 @@ class IRCClient:
|
|||
"""
|
||||
self.context = ssl.create_default_context()
|
||||
self.context.check_hostname = False
|
||||
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.socket = self.context.wrap_socket(self.socket)
|
||||
self.bare_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.socket = self.context.wrap_socket(self.bare_socket)
|
||||
self.nick = None
|
||||
self.real_name = None
|
||||
self.host = None
|
||||
|
@ -221,9 +221,22 @@ class IRCClient:
|
|||
# with extreme prejudice
|
||||
if self.socket:
|
||||
logging.info('shutdown socket')
|
||||
#print("shutdown socket")
|
||||
self._end = True
|
||||
self.socket.shutdown(socket.SHUT_RDWR)
|
||||
self.socket.shutdown(socket.SHUT_WR)
|
||||
self.socket.close()
|
||||
|
||||
def simple_send(self, message):
|
||||
self.socket.send(bytes(message, "UTF-8"))
|
||||
|
||||
def quit(self, msg):
|
||||
# I am going mad :)
|
||||
# Why does this only work 33% of the time </3
|
||||
|
||||
# Somehow, kinda fixed :')
|
||||
print("QUIT")
|
||||
self.socket.send(bytes(msg + "\n", "UTF-8"))
|
||||
|
||||
class IRCApp:
|
||||
""" This class manages several IRCClient instances without the use of threads.
|
||||
(Non-threaded) Timer functionality is also included.
|
||||
|
|
|
@ -101,6 +101,7 @@ class CommandHandler(object):
|
|||
return
|
||||
|
||||
logging.debug('f %s' % f)
|
||||
#logging.info(*args)
|
||||
|
||||
# Because more than 5 arguments can be passed by channelmodeis
|
||||
try:
|
||||
|
|
|
@ -77,9 +77,10 @@ def cs(cli, *args):
|
|||
def identify(cli, passwd, authuser="NickServ"):
|
||||
msg(cli, authuser, "IDENTIFY %s" % passwd)
|
||||
|
||||
def quit(cli, msg='gone'):
|
||||
#print(msg)
|
||||
cli.send("QUIT :%s" % msg)
|
||||
def quit(cli, msg):
|
||||
msg = "QUIT :%s" % msg
|
||||
cli.quit(msg)
|
||||
cli.close()
|
||||
cli._end = 1
|
||||
|
||||
def user(cli, username, realname=None):
|
||||
|
|
|
@ -2934,10 +2934,12 @@ class PesterWindow(MovingWindow):
|
|||
# This seriously needs to be fixed but I don't feel like it </3
|
||||
pesterchum.irc.quit_dc() # Actually send QUIT to server
|
||||
pesterchum.trayicon.hide() # Hopefully,
|
||||
pesterchum.app.quit() # stop the trayicon from sticking around :/
|
||||
#pesterchum.app.quit() # stop the trayicon from sticking around :/
|
||||
|
||||
#from time import sleep
|
||||
#sleep(5)
|
||||
# Just in case.
|
||||
sys.exit()
|
||||
sys.exit() # Actually, just gonna use this, 'cuz sockets are dumb :'3
|
||||
|
||||
pcUpdate = QtCore.pyqtSignal('QString', 'QString')
|
||||
closeToTraySignal = QtCore.pyqtSignal()
|
||||
|
|
Loading…
Reference in a new issue