Package: pagekite
Version: 1.5.2.200603-2
Severity: wishlist

I tried using pagekite 1.5.2.200603-2 that comes with Debian 11. My configuration was a simple server with only one configuration file /etc/pagekite.d/10_account.rc:

kitename   = *.pagekite.myexamplecorp.com
kitesecret = CENSORED
isfrontend
ports = 1080
protos = raw
rawports = virtual
domain = raw:*.myexamplecorp.com:CENSORED
END

This configuration worked fine in Debian 9 but does not seem to work with Debian 11. After a long debugging session I noticed that I can get the service to work with the following patch

diff -ur ./fixed/pagekite/proto/conns.py 
./pagekite-1.5.2.200603/pagekite/proto/conns.py
--- ./fixed/pagekite/proto/conns.py     2022-01-24 15:22:36.959163732 +0200
+++ ./pagekite-1.5.2.200603/pagekite/proto/conns.py     2020-06-04 
02:37:39.000000000 +0300
@@ -1975,8 +1975,8 @@
         data = None
       try:
         if data:
-          if b'\nHost: ping.pagekite' in data:
-            client.send(self.rejection.encode("utf-8"))
+          if '\nHost: ping.pagekite' in data:
+            client.send(self.rejection)
             client.close()
             self.fast_pinged.append(obfuIp(addr[0]))
           else:
diff -ur ./fixed/pagekite/proto/selectables.py 
./pagekite-1.5.2.200603/pagekite/proto/selectables.py
--- ./fixed/pagekite/proto/selectables.py       2022-01-24 15:20:40.061914811 
+0200
+++ ./pagekite-1.5.2.200603/pagekite/proto/selectables.py       2020-06-04 
02:37:39.000000000 +0300
@@ -344,7 +344,7 @@
   def EatPeeked(self, eat_bytes=None, keep_peeking=False):
     if not self.peeking: return
     if eat_bytes is None: eat_bytes = self.peeked
-    discard = b''
+    discard = ''
     while len(discard) < eat_bytes:
       try:
         bytecount = eat_bytes - len(discard)

I then noticed that these fixes have been in the upstream git already in 2020 (for example in commit 716b7f57102e2a21b8a76154a7885af3b3ed602e) but they just have not released a new version.

Would it be possible to package a new upstream version? Current version does not seem to only work as a client with the SaaS server, you cannot run your own server :(

best regards,
Timo Lindfors

Reply via email to