Mercurial > hg > egg-tcls
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 |