comparison urllog.tcl @ 579:fec0911e9ef9

urllog: Remove TLD checks, as they are rather useless nowadays.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 04 Jan 2021 12:17:43 +0200
parents 14dfb925a64a
children 148c7553c50f
comparison
equal deleted inserted replaced
578:14dfb925a64a 579:fec0911e9ef9
39 set urllog_name "URLLog" 39 set urllog_name "URLLog"
40 set urllog_version "2.5.1" 40 set urllog_version "2.5.1"
41 set urllog_message "$urllog_name v$urllog_version (C) 2000-2021 ccr/TNSP" 41 set urllog_message "$urllog_name v$urllog_version (C) 2000-2021 ccr/TNSP"
42 42
43 43
44 set urllog_tld_list [split $urllog_tld_list ","]
45 set urllog_httprep [split "\@|%40|{|%7B|}|%7D|\[|%5B|\]|%5D" "|"] 44 set urllog_httprep [split "\@|%40|{|%7B|}|%7D|\[|%5B|\]|%5D" "|"]
46 set urllog_shorturl_str "ABCDEFGHIJKLNMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" 45 set urllog_shorturl_str "ABCDEFGHIJKLNMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
47 46
48 47
49 ### Binding initializations 48 ### Binding initializations
233 return 1 232 return 1
234 } 233 }
235 234
236 #------------------------------------------------------------------------- 235 #-------------------------------------------------------------------------
237 proc urllog_validate_url { urlNick urlChan urlMStr urlMProto urlMHostName } { 236 proc urllog_validate_url { urlNick urlChan urlMStr urlMProto urlMHostName } {
238 global urllog_tld_list urlmsg_nosuchhost urllog_httprep urlmsg_unknown_tld 237 global urlmsg_nosuchhost urllog_httprep
239 global urllog_shorturl_prefix urllog_shorturl urllog_check_tld 238 global urllog_shorturl_prefix urllog_shorturl
240 upvar 1 $urlMStr urlStr 239 upvar 1 $urlMStr urlStr
241 upvar 1 $urlMProto urlProto 240 upvar 1 $urlMProto urlProto
242 upvar 1 $urlMHostName urlHostName 241 upvar 1 $urlMHostName urlHostName
243
244 set u_checktld 1
245 242
246 ### Hack for removing parenthesis around an URL 243 ### Hack for removing parenthesis around an URL
247 if {[regexp {^\((.+)\)$} $urlStr urlMatch urlClean]} { 244 if {[regexp {^\((.+)\)$} $urlStr urlMatch urlClean]} {
248 set urlStr $urlClean 245 set urlStr $urlClean
249 } 246 }
267 } 264 }
268 if {$ni1 == 0 || $ni1 >= 255 || $ni2 >= 255 || $ni3 >= 255 || $ni4 >= 255} { 265 if {$ni1 == 0 || $ni1 >= 255 || $ni2 >= 255 || $ni3 >= 255 || $ni4 >= 255} {
269 urllog_log "URL pointing to invalid network, ignored ($urlStr)." 266 urllog_log "URL pointing to invalid network, ignored ($urlStr)."
270 return 0 267 return 0
271 } 268 }
272 # Skip TLD check for URLs with IP address
273 set u_checktld 0
274 } 269 }
275 270
276 ### Check now if we have an ShortURL here ... 271 ### Check now if we have an ShortURL here ...
277 if {[string match "$urllog_shorturl_prefix*" $urlStr]} { 272 if {[string match "$urllog_shorturl_prefix*" $urlStr]} {
278 urllog_log "Ignoring ShortURL from $urlNick: $urlStr" 273 urllog_log "Ignoring ShortURL from $urlNick: $urlStr"
306 if {![urllog_isnumber $urlPort] && $urlPort != "" && $urlPort != $urlHostName} { 301 if {![urllog_isnumber $urlPort] && $urlPort != "" && $urlPort != $urlHostName} {
307 urllog_log "Broken URL from $urlNick: ($urlStr) illegal port $urlPort" 302 urllog_log "Broken URL from $urlNick: ($urlStr) illegal port $urlPort"
308 return 0 303 return 0
309 } 304 }
310 305
311 ### Check the Top Level Domain (TLD) validity
312 if {$urllog_check_tld != 0 && $u_checktld != 0} {
313 set u_sane [lindex [split $urlHostName "."] end]
314 set u_tld [lindex [split $u_sane ":"] 0]
315 set u_found 0
316
317 if {[string length $u_tld] == 2} {
318 # Assume all 2-letter domains to be valid :)
319 set u_found 1
320 } else {
321 # Check our list of known TLDs
322 foreach itld $urllog_tld_list {
323 if {[string match $itld $u_tld]} {
324 set u_found 1
325 }
326 }
327 }
328
329 if {$u_found == 0} {
330 urllog_log "Broken URL from $urlNick: ($urlStr) unknown TLD: ${u_tld}."
331 urllog_verb_msg $urlNick $urlChan $urlmsg_unknown_tld
332 return 0
333 }
334 }
335 306
336 set urlStr [string map $urllog_httprep $urlStr] 307 set urlStr [string map $urllog_httprep $urlStr]
337 return 1 308 return 1
338 } 309 }
339 310
609 ### Miscellaneous init messages 580 ### Miscellaneous init messages
610 if {$urllog_extra_checks != 0} { 581 if {$urllog_extra_checks != 0} {
611 putlog " - Additional URL validity checks enabled." 582 putlog " - Additional URL validity checks enabled."
612 } 583 }
613 584
614 if {$urllog_check_tld != 0} {
615 putlog " - Check TLD enabled."
616 }
617
618 if {$urllog_verbose != 0} { 585 if {$urllog_verbose != 0} {
619 putlog " - Verbose mode enabled." 586 putlog " - Verbose mode enabled."
620 } 587 }
621 588
622 589