mirror of
https://github.com/9001/copyparty.git
synced 2025-08-18 01:22:13 -06:00
log filtering by url regex
This commit is contained in:
parent
0fcfe79994
commit
78ba16f722
|
@ -272,11 +272,12 @@ def run_argparse(argv, formatter):
|
||||||
ap2.add_argument("--ssl-dbg", action="store_true", help="dump some tls info")
|
ap2.add_argument("--ssl-dbg", action="store_true", help="dump some tls info")
|
||||||
ap2.add_argument("--ssl-log", metavar="PATH", help="log master secrets")
|
ap2.add_argument("--ssl-log", metavar="PATH", help="log master secrets")
|
||||||
|
|
||||||
ap2 = ap.add_argument_group('Debug options')
|
ap2 = ap.add_argument_group('debug options')
|
||||||
ap2.add_argument("--log-conn", action="store_true", help="print tcp-server msgs")
|
ap2.add_argument("--log-conn", action="store_true", help="print tcp-server msgs")
|
||||||
ap2.add_argument("--no-sendfile", action="store_true", help="disable sendfile")
|
ap2.add_argument("--no-sendfile", action="store_true", help="disable sendfile")
|
||||||
ap2.add_argument("--no-scandir", action="store_true", help="disable scandir")
|
ap2.add_argument("--no-scandir", action="store_true", help="disable scandir")
|
||||||
ap2.add_argument("--ihead", metavar="HEADER", action='append', help="dump incoming header")
|
ap2.add_argument("--ihead", metavar="HEADER", action='append', help="dump incoming header")
|
||||||
|
ap2.add_argument("--lf-url", metavar="RE", type=str, default=r"^/\.cpr/", help="dont log URLs matching")
|
||||||
|
|
||||||
return ap.parse_args(args=argv[1:])
|
return ap.parse_args(args=argv[1:])
|
||||||
# fmt: on
|
# fmt: on
|
||||||
|
|
|
@ -158,6 +158,8 @@ class HttpCli(object):
|
||||||
uparam["b"] = False
|
uparam["b"] = False
|
||||||
cookies["b"] = False
|
cookies["b"] = False
|
||||||
|
|
||||||
|
self.do_log = not self.conn.lf_url or not self.conn.lf_url.match(self.req)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if self.mode in ["GET", "HEAD"]:
|
if self.mode in ["GET", "HEAD"]:
|
||||||
return self.handle_get() and self.keepalive
|
return self.handle_get() and self.keepalive
|
||||||
|
@ -264,6 +266,7 @@ class HttpCli(object):
|
||||||
self.reply(html)
|
self.reply(html)
|
||||||
|
|
||||||
def handle_get(self):
|
def handle_get(self):
|
||||||
|
if self.do_log:
|
||||||
logmsg = "{:4} {}".format(self.mode, self.req)
|
logmsg = "{:4} {}".format(self.mode, self.req)
|
||||||
|
|
||||||
if "range" in self.headers:
|
if "range" in self.headers:
|
||||||
|
@ -315,7 +318,9 @@ class HttpCli(object):
|
||||||
return self.tx_browser()
|
return self.tx_browser()
|
||||||
|
|
||||||
def handle_options(self):
|
def handle_options(self):
|
||||||
|
if self.do_log:
|
||||||
self.log("OPTIONS " + self.req)
|
self.log("OPTIONS " + self.req)
|
||||||
|
|
||||||
self.send_headers(
|
self.send_headers(
|
||||||
None,
|
None,
|
||||||
204,
|
204,
|
||||||
|
@ -836,23 +841,11 @@ class HttpCli(object):
|
||||||
self.log("{} {}".format(vspd, msg))
|
self.log("{} {}".format(vspd, msg))
|
||||||
|
|
||||||
if not nullwrite:
|
if not nullwrite:
|
||||||
# TODO this is bad
|
|
||||||
log_fn = "up.{:.6f}.txt".format(t0)
|
log_fn = "up.{:.6f}.txt".format(t0)
|
||||||
with open(log_fn, "wb") as f:
|
with open(log_fn, "wb") as f:
|
||||||
f.write(
|
ft = "{}:{}".format(self.ip, self.addr[1])
|
||||||
(
|
ft = "{}\n{}\n{}\n".format(ft, msg.rstrip(), errmsg)
|
||||||
"\n".join(
|
f.write(ft.encode("utf-8"))
|
||||||
unicode(x)
|
|
||||||
for x in [
|
|
||||||
":".join(unicode(x) for x in [self.ip, self.addr[1]]),
|
|
||||||
msg.rstrip(),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
+ "\n"
|
|
||||||
+ errmsg
|
|
||||||
+ "\n"
|
|
||||||
).encode("utf-8")
|
|
||||||
)
|
|
||||||
|
|
||||||
self.redirect(self.vpath, msg=msg, flavor="return to")
|
self.redirect(self.vpath, msg=msg, flavor="return to")
|
||||||
self.parser.drop()
|
self.parser.drop()
|
||||||
|
@ -1120,7 +1113,9 @@ class HttpCli(object):
|
||||||
logmsg += unicode(status) + logtail
|
logmsg += unicode(status) + logtail
|
||||||
|
|
||||||
if self.mode == "HEAD" or not do_send:
|
if self.mode == "HEAD" or not do_send:
|
||||||
|
if self.do_log:
|
||||||
self.log(logmsg)
|
self.log(logmsg)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
ret = True
|
ret = True
|
||||||
|
@ -1134,7 +1129,9 @@ class HttpCli(object):
|
||||||
logmsg += " \033[31m" + unicode(upper - remains) + "\033[0m"
|
logmsg += " \033[31m" + unicode(upper - remains) + "\033[0m"
|
||||||
|
|
||||||
spd = self._spd((upper - lower) - remains)
|
spd = self._spd((upper - lower) - remains)
|
||||||
|
if self.do_log:
|
||||||
self.log("{}, {}".format(logmsg, spd))
|
self.log("{}, {}".format(logmsg, spd))
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def tx_zip(self, fmt, uarg, vn, rem, items, dots):
|
def tx_zip(self, fmt, uarg, vn, rem, items, dots):
|
||||||
|
@ -1243,7 +1240,9 @@ class HttpCli(object):
|
||||||
|
|
||||||
logmsg += unicode(status)
|
logmsg += unicode(status)
|
||||||
if self.mode == "HEAD" or not do_send:
|
if self.mode == "HEAD" or not do_send:
|
||||||
|
if self.do_log:
|
||||||
self.log(logmsg)
|
self.log(logmsg)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -1257,7 +1256,9 @@ class HttpCli(object):
|
||||||
self.log(logmsg + " \033[31md/c\033[0m")
|
self.log(logmsg + " \033[31md/c\033[0m")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
if self.do_log:
|
||||||
self.log(logmsg + " " + unicode(len(html)))
|
self.log(logmsg + " " + unicode(len(html)))
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def tx_mounts(self):
|
def tx_mounts(self):
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
from __future__ import print_function, unicode_literals
|
from __future__ import print_function, unicode_literals
|
||||||
|
|
||||||
|
import re
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
@ -38,6 +39,7 @@ class HttpConn(object):
|
||||||
self.workload = 0
|
self.workload = 0
|
||||||
self.u2idx = None
|
self.u2idx = None
|
||||||
self.log_func = hsrv.log
|
self.log_func = hsrv.log
|
||||||
|
self.lf_url = re.compile(self.args.lf_url) if self.args.lf_url else None
|
||||||
self.set_rproxy()
|
self.set_rproxy()
|
||||||
|
|
||||||
def set_rproxy(self, ip=None):
|
def set_rproxy(self, ip=None):
|
||||||
|
|
Loading…
Reference in a new issue