--- squid.conf 2016-09-30 11:56:40.584021788 +0200 +++ squid.conf-modified 2016-09-30 16:37:21.437601064 +0200 @@ -178,12 +178,30 @@ return 'dstdom_regex' def acl_dstdomain_regex_i(): return 'dstdom_regex -i' + def acl_proxy_auth_regex(): + return 'proxy_auth_regex' + def acl_rep_mime_type(): + return 'rep_mime_type' + def acl_rep_mime_type_i(): + return 'rep_mime_type -i' + def acl_urlpath_regex(): + return 'urlpath_regex' + def acl_urlpath_regex_i(): + return 'urlpath_regex -i' + def acl_dst(): + return 'dst' acltypes = { 'browser': acl_browser, 'browser-i': acl_browser_i, 'dstdomain': acl_dstdomain_regex, 'dstdomain-i': acl_dstdomain_regex_i, 'port': acl_port, + 'proxy': acl_proxy_auth_regex, + 'mime': acl_rep_mime_type, + 'mime-i': acl_rep_mime_type_i, + 'urlpath': acl_urlpath_regex, + 'urlpath-i': acl_urlpath_regex_i, + 'dst': acl_dst, } def squid_re_escape(value): return r'\x20'.join(map(re.escape, value.split(' '))) @@ -202,6 +220,9 @@ if not 0 <= value <= 65535: raise ValueError('Invalid port number %r' % (value, )) return '%d' % (value, ) + def value_network(value): + return '%s' % (value, ) + valuetypes_regex = { 'string': value_string, 'substring': value_substring, @@ -210,12 +231,21 @@ valuetypes_port = { 'number': value_port_number, } + valuetypes_network = { + 'network': value_network, + } valuetypes = { 'browser': valuetypes_regex, 'browser-i': valuetypes_regex, 'dstdomain': valuetypes_regex, 'dstdomain-i': valuetypes_regex, 'port': valuetypes_port, + 'proxy': valuetypes_regex, + 'mime': valuetypes_regex, + 'mime-i': valuetypes_regex, + 'urlpath': valuetypes_regex, + 'urlpath-i': valuetypes_regex, + 'dst': valuetypes_network, } aclnames = set() for key, value, in configRegistry.items():