Skip to content

Commit fa0c7e6

Browse files
committed
gui-warp.py: Minor changes about log-file size and FW-file selection under Linux
1 parent 2d67b9d commit fa0c7e6

File tree

4 files changed

+40
-23
lines changed

4 files changed

+40
-23
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# CHANGELOG
22

3-
* **2024.09.30 Current**
3+
* **2024.11.08 Current**
4+
* `gui-warp.py`: Minor changes about log-file size and FW-file selection under `Linux`
45
* `ts-warp.c`: Null-pointer dereference in `PIDS` table processing fixed
56
* `ts-warp.c`: `ACT` reporting `[SECTIONS]`
67
* `inifile.c`: Correct usage of multiple links of a proxy-chain

gui/gui-warp.py.in

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class App:
6262

6363
self.password = ''
6464

65-
self.version = 'v1.0.25'
65+
self.version = 'v1.0.26'
6666
self.width = width
6767
self.height = height
6868

@@ -147,7 +147,8 @@ class App:
147147
'tsw01:' + subprocess.Popen([prefix + '/bin/ts-pass', self.tswhash.get().encode()],
148148
stdout=subprocess.PIPE).stdout.read().decode().strip('\n\r'))
149149

150-
ttk.Label(frm_tab_ini_top, text='Save changes:').grid(column=2, row=0, sticky=tk.E)
150+
sch = ttk.Label(frm_tab_ini_top, text='Save configuration:')
151+
sch.grid(column=2, row=0, sticky=tk.E)
151152
btn_save_ini = ttk.Button(frm_tab_ini_top, width=self._btnw, text='▲')
152153
btn_save_ini.grid(column=3, row=0, sticky=tk.W, padx=self._padx, pady=self._pady)
153154
btn_save_ini['command'] = lambda: self.savefile(ini_txt, inifile)
@@ -358,11 +359,11 @@ It is a free and open-source software, but if you want to support it, please do'
358359
"""
359360

360361
t_widget.config(state='normal')
361-
with open(filename, 'r', encoding='utf-8') as f:
362-
sz = os.path.getsize(filename)
363-
if sz > self.log_size:
362+
sz = os.path.getsize(filename)
363+
if sz > self.log_size:
364+
with open(filename, 'r', encoding='utf-8') as f:
365+
f.seek(self.log_size)
364366
self.log_size = sz
365-
t_widget.delete(1.0, tk.END)
366367
t_widget.insert(tk.END, ''.join(f.readlines()))
367368
t_widget.see(tk.END)
368369

@@ -536,7 +537,7 @@ if __name__ == "__main__":
536537

537538
runcmd = prefix + '/etc/ts-warp.sh'
538539
inifile = prefix + '/etc/ts-warp.ini'
539-
fwfile = prefix + ('/etc/ts-warp_pf.conf' if platform.system() != 'Linux' else '/etc/ts-warp_nftables.sh')
540+
fwfile = prefix + ('/etc/ts-warp_pf.conf' if platform.system() != 'Linux' else '/etc/ts-warp_nftables.sh' if os.path.isfile('/etc/ts-warp_nftables.sh') else '/etc/ts-warp_iptables.sh')
540541
logfile = prefix + '/var/log/ts-warp.log'
541542
pidfile = prefix + '/var/run/ts-warp.pid'
542543
actfile = prefix + '/var/spool/ts-warp/ts-warp.act'

gui/ports/macOS/gui-warp.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ prefix = ~/ts-warp
1010
inifile = /etc/ts-warp.ini
1111
# fwfile = /etc/ts-warp_pf.conf # This should be autoconfigured
1212
logfile = /var/log/ts-warp.log
13+
logfile_size = 3145728
1314
pidfile = /var/run/ts-warp.pid
1415
actfile = /var/spool/ts-warp/ts-warp.act
1516
daemon_options =

gui/ports/macOS/gui-warp.py

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,13 @@ def __init__(self, width=800, height=560,
5555
daemon_options="",
5656
fwfile='/usr/local/etc/ts-warp_pf.conf',
5757
logfile='/usr/local/var/log/ts-warp.log',
58+
logfile_size=3145728,
5859
pidfile='/usr/local/var/run/ts-warp.pid',
5960
url_new_vesrsion=''):
6061

6162
self.password = ''
6263

63-
self.version = 'v1.0.32-mac'
64+
self.version = 'v1.0.33-mac'
6465
self.width = width
6566
self.height = height
6667

@@ -134,11 +135,11 @@ def __init__(self, width=800, height=560,
134135
btn_pause = ttk.Button(tab_log, width=self._btnw, text='■')
135136
btn_pause.grid(column=1, row=0, sticky=tk.W, padx=self._padx, pady=self._pady)
136137
self.pause_log = False
137-
btn_pause['command'] = lambda: self.pauselog(btn_pause, log_txt, logfile)
138+
btn_pause['command'] = lambda: self.pauselog(btn_pause, log_txt, logfile, logfile_size)
138139

139140
log_txt = tk.Text(tab_log, highlightthickness=0, state='disabled')
140141
log_txt.grid(column=0, row=1, columnspan=2, sticky=tk.NSEW)
141-
tab_log.bind("<Visibility>", self.readfile_log(log_txt, logfile, refresh=True))
142+
tab_log.bind("<Visibility>", self.readfile_log(log_txt, logfile, logfile_size, refresh=True))
142143

143144
scroll_log = ttk.Scrollbar(tab_log, orient=tk.VERTICAL)
144145
scroll_log.grid(column=2, row=1, sticky=tk.NSEW)
@@ -166,14 +167,16 @@ def __init__(self, width=800, height=560,
166167
'tsw01:' + subprocess.Popen(['./ts-pass', self.tswhash.get().encode()],
167168
stdout=subprocess.PIPE).stdout.read().decode().strip('\n\r'))
168169

169-
ttk.Label(frm_tab_ini_top, text='Save changes:').grid(column=2, row=0, sticky=tk.E)
170+
sch = ttk.Label(frm_tab_ini_top, text='Save configuration:', foreground='green')
171+
sch.grid(column=2, row=0, sticky=tk.E)
170172
btn_save_ini = ttk.Button(frm_tab_ini_top, width=self._btnw, text='▲')
171173
btn_save_ini.grid(column=3, row=0, sticky=tk.W, padx=self._padx, pady=self._pady)
172174
btn_save_ini['command'] = lambda: self.saveini(ini_txt, inifile)
173175

174176
ini_txt = tk.Text(tab_ini, highlightthickness=0)
175177
ini_txt.grid(column=0, row=1, columnspan=2, sticky=tk.NSEW)
176178
tab_ini.bind("<Visibility>", self.readfile_ini(ini_txt, inifile))
179+
# ini_txt.bind('<<Modified>>', lambda: sch.config(foreground='red') if ini_txt.edit_modified() == 1 else sch.config(foreground='green'))
177180

178181
scroll_ini = ttk.Scrollbar(tab_ini, orient=tk.VERTICAL)
179182
scroll_ini.grid(column=2, row=1, sticky=tk.NSEW)
@@ -331,25 +334,31 @@ def readfile_ini(self, t_widget, filename):
331334
t_widget.insert(tk.END, ''.join(f.readlines()))
332335
t_widget.see(tk.END)
333336

337+
# t_widget.edit_modified(False)
338+
334339
# ---------------------------------------------------------------------------------------------------------------- #
335-
def readfile_log(self, t_widget, filename, refresh=False):
340+
def readfile_log(self, t_widget, filename, logfile_size, refresh=False):
336341
"""
337342
Read contents of the LOG-file
338343
"""
339344

340345
t_widget.config(state='normal')
341-
with open(filename, 'r', encoding='utf-8') as f:
342-
sz = os.path.getsize(filename)
343-
if sz > self.log_size:
344-
self.log_size = sz
345-
t_widget.delete(1.0, tk.END)
346-
t_widget.insert(tk.END, ''.join(f.readlines()))
347-
t_widget.see(tk.END)
346+
sz = os.path.getsize(filename)
347+
if sz > self.log_size:
348+
with open(filename, 'r', encoding='utf-8') as f:
349+
if sz > logfile_size:
350+
f.truncate(0)
351+
t_widget.delete(1.0, tk.END)
352+
else:
353+
f.seek(self.log_size)
354+
self.log_size = sz
355+
t_widget.insert(tk.END, ''.join(f.readlines()))
356+
t_widget.see(tk.END)
348357

349358
if refresh:
350359
t_widget.config(state='disabled')
351360
if not self.pause_log:
352-
self.root.after(500, self.readfile_log, t_widget, filename, refresh)
361+
self.root.after(500, self.readfile_log, t_widget, filename, logfile_size, refresh)
353362

354363
# ---------------------------------------------------------------------------------------------------------------- #
355364
def saveini(self, t_widget, filename):
@@ -363,21 +372,23 @@ def saveini(self, t_widget, filename):
363372
f.write(t_widget.get('1.0', tk.END)[:-1]) # Strip extra newline
364373
os.chown(filename, uid, gid)
365374

375+
# t_widget.edit_modified(False)
376+
366377
# Rebuild ts-warp_pf.conf when saving the INI-file
367378
with open(fwfile, 'w', encoding='utf8') as outfw:
368379
subprocess.run(['./ts-warp_autofw.sh', prefix], stdout=outfw, check=False)
369380
os.chown(fwfile, uid, gid)
370381

371382
# ---------------------------------------------------------------------------------------------------------------- #
372-
def pauselog(self, btn, txt, filename):
383+
def pauselog(self, btn, txt, filename, logfile_size):
373384
"""
374385
Pause LOG
375386
"""
376387

377388
if self.pause_log:
378389
self.pause_log = False
379390
btn['text'] = '■' # Pause log auto-refresh
380-
self.readfile_log(txt, filename, refresh=True)
391+
self.readfile_log(txt, filename, logfile_size, refresh=True)
381392
else:
382393
self.pause_log = True
383394
btn['text'] = '↭' # Enable auto-refresh
@@ -528,6 +539,7 @@ def dedupch(s, c='/'):
528539
inifile = prefix + 'etc/ts-warp.ini'
529540
fwfile = prefix + 'etc/ts-warp_pf.conf'
530541
logfile = prefix + 'var/log/ts-warp.log'
542+
logfile_size = 3145728
531543
pidfile = prefix + 'var/run/ts-warp.pid'
532544
actfile = prefix + 'var/spool/ts-warp/ts-warp.act'
533545
daemon_options = ''
@@ -547,6 +559,8 @@ def dedupch(s, c='/'):
547559
fwfile = '/' + dedupch(prefix + gui_ini['GUI-WARP']['fwfile'])
548560
if 'logfile' in gui_ini['GUI-WARP'].keys():
549561
logfile = '/' + dedupch(prefix + gui_ini['GUI-WARP']['logfile'])
562+
if 'logfile_size' in gui_ini['GUI-WARP'].keys():
563+
logfile_size = int(gui_ini['GUI-WARP']['logfile_size'])
550564
if 'pidfile' in gui_ini['GUI-WARP'].keys():
551565
pidfile = '/' + dedupch(prefix + gui_ini['GUI-WARP']['pidfile'])
552566
if 'actfile' in gui_ini['GUI-WARP'].keys():

0 commit comments

Comments
 (0)