diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rwxr-xr-x | bin/incoming/buckypoll.pl | 21 | ||||
| -rwxr-xr-x | bin/incoming/dl.pl | 238 | ||||
| -rwxr-xr-x | bin/incoming/fixnames.pl | 17 | ||||
| -rwxr-xr-x | bin/incoming/groupfiles.pl | 62 | ||||
| -rwxr-xr-x | bin/incoming/prefix.pl | 33 | ||||
| -rw-r--r-- | conf/khl-httpd.conf | 411 |
7 files changed, 783 insertions, 0 deletions
@@ -5,3 +5,4 @@ old_shit *~ *.swp install +thumbs diff --git a/bin/incoming/buckypoll.pl b/bin/incoming/buckypoll.pl new file mode 100755 index 0000000..4ed9d7a --- /dev/null +++ b/bin/incoming/buckypoll.pl @@ -0,0 +1,21 @@ +#!/usr/bin/perl + +# bucky ftp monitor +# should be owned by bucky:psacln and chmod 0755 + +# nohup ./.buckypoll.pl > .output.log 2>&1 & + +use strict; +my $localpath = "/var/www/vhosts/carbonpictures.com/bucky/incoming"; + +while (1) + { + if (-e "$localpath/.importnow") + { + system("mv", "$localpath/.importnow", "$localpath/.importing"); + system("chmod", "-R", "0777", $localpath); + system("rm", "$localpath/.importing"); + } + sleep(5); + } + diff --git a/bin/incoming/dl.pl b/bin/incoming/dl.pl new file mode 100755 index 0000000..d0a2cff --- /dev/null +++ b/bin/incoming/dl.pl @@ -0,0 +1,238 @@ +#!/usr/bin/perl + +use strict; +my $DEBUG = 1; + +my $DIRNAME = '.'; +my $PREFIX = ''; +my $SOURCE_URL = ''; +my $GREP_BY = ''; +my $URL_FILE = 'index.html'; +my $BASE_HREF = ''; +my $WGET = "/usr/bin/wget"; +my $WGET_SINGLE = $WGET; +my $WGET_WEBPAGE = $WGET; +my $BIN_MV = "/bin/mv"; +my $TYPE_A = "html|txt|pdf"; +my $TYPE_I = "gif|jpe?g|png|tiff?"; +my $TYPE_B = $TYPE_I."|mp3|mov|avi|wav|aiff?|tiff?|zip|bz2|compress|m4a|m4b"; +my $VALID_TYPES = "$TYPE_A|$TYPE_B"; +my %SEEN = (); +my %FILES = (); + +foreach my $ARG (@ARGV) + { + $ARG = strip($ARG); + if ($ARG =~ /^http/) + { + $SOURCE_URL = $ARG; + } + elsif ($ARG =~ /\|/ || $ARG =~ /($VALID_TYPES)/) + { + $GREP_BY = $ARG; + $GREP_BY =~ s/^\(//; + $GREP_BY =~ s/\)$//; + } + elsif ($ARG =~ /\// || $ARG eq ".") + { + $DIRNAME = $ARG; + } + else + { + $PREFIX = $ARG; + $PREFIX =~ s/[^a-zA-Z0-9\.\/]//g; + } + } + +$BASE_HREF = get_basehref($SOURCE_URL); +$URL_FILE = get_local_filename($SOURCE_URL); +$GREP_BY ||= $VALID_TYPES; + +if ($DEBUG == 1) + { + print STDERR <<ARGZ; +DIRNAME = $DIRNAME +PREFIX = $PREFIX +SOURCE_URL = $SOURCE_URL +BASE_HREF = $BASE_HREF +GREP_BY = $GREP_BY +URL_FILE = $URL_FILE +ARGZ + } + +if (length($DIRNAME) == 0) + { + print STDERR "usage: ./dl.pl DIRNAME http://... '$VALID_TYPES'\n"; + exit; + } + +my ($WGET_SINGLE, $WGET_WEBPAGE) = make_wget_commands(); + +wget_single($SOURCE_URL); +if (! -e $URL_FILE) + { + print STDERR "\n**** $URL_FILE DOES NOT EXIST\n"; + exit; + } + +open URLZ, $URL_FILE or die $!; +foreach my $line (<URLZ>) + { + $line = strip($line); + process_line($line); + } +close URLZ; + +sub process_line + { + my ($line) = @_; + my $catch = "href"; + unless ( $line =~ /<a.*href/i && $line =~ /($GREP_BY)/i) + { + if ( $line =~ /<img.*src/i && $GREP_BY =~ /($TYPE_I)/i ) + { $catch = "src"; } + else + { return; } + } +# <p align=Center> <a href="newsamples/outtake6_20thcentury.wav">outtake6_20thcentury</a></td> + $line =~ /$catch=('|")?/i; + my $quote = $1; + my ($pre, $post) = split(/$catch=$quote/i, $line, 2); + my ($url, $rest) = split(/$quote/, $post, 2); +# if ($DEBUG == 1) +# { print STDERR $post."\n\n"; } + $url =~ s/(\"|\').*$//; + if ($url =~ /($GREP_BY)/) + { + wget_single($url); + foil_redirect($url); + } + process_line($rest); + } + +sub wget_single + { + my ($url) = @_; + return if $url =~ /\#/; + return if length($url) < 1; + return if $SEEN{$url}; + $SEEN{$url} = 1; + + my $file = get_local_filename($url); + + $url = $BASE_HREF.$url unless ($url =~ /^http:\/\//); + my $cmd = $WGET_SINGLE." '$url'"; + + system($cmd); + sleep 1; + if ($PREFIX) + { + my $prefixed = $file; + $prefixed =~ s/\//\/$PREFIX\-/; + system('/bin/mv', $file, $prefixed); + } + } + +sub foil_redirect + { + my ($_url) = @_; + my $_file = get_local_filename($_url); + if ( ! -e $_file ) + { + print STDERR "weird: no $_file\n\n"; + return; + } + return unless ($_file =~ /($TYPE_B)/); + open FILE, "$_file" or die $!; + my $scanning = 0; + foreach my $line (<FILE>) + { + if ($line =~ /<html>/) + { $scanning = 1; } + next unless $scanning; + next unless $line =~ /(src=)/; + print STDERR "$line"; + $line =~ /src=('|")?/; + my $quote = $1; + my ($pre, $post) = split(/src=$quote/, $line, 2); + my ($url, $rest) = split(/$quote/, $post, 2); + close FILE; + my ($_newfile) = get_filename($url); + if ($_file =~ $_newfile) + { system($BIN_MV, $_file, "$_file.temp"); } + wget_single($url); + if (-e $_newfile) + { system($BIN_MV, $_newfile, get_local_filename($_newfile)); } + last; + } + print STDERR "^^^ SUSPICIOUS\n" if $scanning; + close FILE; + } +sub get_basehref + { + my ($url) = @_; + $url =~ s/\/([^\/]*)$/\//; + return $url; + } +sub get_type + { + my ($_url) = @_; + $_url =~ s/\/([^\/]*).(\w+)$/\//; + my $_type = $2; + return $_type; + } +sub get_local_filename + { + my ($_url) = @_; + my $_file; + if ($_url =~ /\//) + { $_file = get_filename($_url); } + else + { $_file = $_url; } + $_file = "$DIRNAME/$_file"; + $_file =~ s/\/+/\//g; +print STDERR " -> $_url => $_file\n" if $DEBUG == 1; + return $_file; + } +sub get_filename + { + my ($_url) = @_; + my $_file = ''; + $_url =~ s/\#*$//; + if ($_url =~ /\/$/) + { + $_file = "index.html"; + } + else + { + if ($_url =~ /\?$/) + { print STDERR "possible cgi: $_url\n"; } + $_file = $_url; + my $_basehref = get_basehref($_url); + $_file =~ s/$_basehref//; + print STDERR "u: $_url\nb: $_basehref\nf: $_file\n"; + } + return $_file; + } + +sub make_wget_commands + { + my $ua = ("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705)"); + my $dp = $DIRNAME || "."; + +# -E = --html-extension +# -H = --span-hosts +# -k = --convert-links +# -K = --backup-converted +# -p = --page-requisite + + my $SINGLE = "$WGET -erobots=off --user-agent='$ua' --directory-prefix=$dp"; + my $WEBPAGE = "$WGET -erobots=off -d -o wgetlog " . + "--user-agent='$ua' -E -H -K -k -p --no-directories " . + "--directory-prefix=$dp"; + return ($SINGLE, $WEBPAGE); + } + +sub strip + { my ($q) = @_; $q =~ s/^\s+//; $q =~ s/\s+$//; return $q; } + diff --git a/bin/incoming/fixnames.pl b/bin/incoming/fixnames.pl new file mode 100755 index 0000000..1a0249f --- /dev/null +++ b/bin/incoming/fixnames.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl +# remove non-alphanumerics from filenames in current directory +my @files = (); +opendir D, "."; +while (my $f = readdir D) + { + push @files, $f unless -d $f || $f =~ /^\./; + } +closedir D; +foreach my $f (@files) + { + my $newf = $f; + $newf =~ s/[^-_a-zA-Z0-9 .]//g; + next unless $newf; + print join " ", ("/bin/mv", $f,"\n", $newf, "\n"); + system("/bin/mv", $f, $newf); + } diff --git a/bin/incoming/groupfiles.pl b/bin/incoming/groupfiles.pl new file mode 100755 index 0000000..62b6fa5 --- /dev/null +++ b/bin/incoming/groupfiles.pl @@ -0,0 +1,62 @@ +#!/usr/bin/perl +# - display counts of mixed-up album mp3s in the current directory +# - add prefixes to the filenames +use MP3::Tag; +my @t; +#my $TAG = shift @ARGV || die "NO TAG SPECIFIED"; +my $BIN_MV = "/bin/mv"; +opendir D, "." or die $!; +while (my $f = readdir D) + { + push (@t, $f) if $f =~ /mp3$/ + } +closedir D; +my $albs = {}; +foreach my $t (sort @t) + { + my $a; + my $mp3 = MP3::Tag->new($t); + $mp3->get_tags(); + + my ($title, $track, $artist, $album, $comment, $year, $genre) = $mp3->autoinfo(); + +$track = sprintf "%02d", $track; +$artist =~ /^(..?.?)/; +my $art = lc $1; +$album =~ /^(The )?(..?.?)/; +my $alb = lc $2; + +# my $newf = "$art-$alb-$track $title.mp3"; +my $newf = "$track $title.mp3"; +$newf =~ s/[^-A-Za-z0-9 _\.]//g; +print $newf."\n"; + +system($BIN_MV, $t, $newf); + + $albs->{$art} ||= {}; + $albs->{$art}->{$alb} ||= []; + $albs->{$art}->{$alb} = 1; + + +# if (! $a) { print STDERR "TAGLESS: $t\n"; next; } +# my $id = $mp3->track0(2); +# my $newt = $TAG. '-' . $id . '-' . $t; +# print "$newt\n"; +# system($BIN_MV, $t, $newt); +# $albs->{$a} ||= []; +# push @{ $albs->{$a} }, $t; + } + +map {print $_, " => ", join ",", keys(%{$albs->{$_}}), "\n" } keys %$albs; +#my @keyz = qw[ZENC ZEND ZENE ZENF]; +#my $q = 0; +#foreach my $a (sort keys %$albs) +# { +# my $count = scalar @{ $albs->{$a} }; +## print "$keyz[$q] : $a : $count\n"; +# foreach my $f (@{ $albs->{$a} }) +# { +# # system($BIN_MV, $f, $keyz[$q] . "-" . $f); +# } +# $q++; +# } diff --git a/bin/incoming/prefix.pl b/bin/incoming/prefix.pl new file mode 100755 index 0000000..9cf59e4 --- /dev/null +++ b/bin/incoming/prefix.pl @@ -0,0 +1,33 @@ +#!/usr/bin/perl + +my $DIR, $PREFIX; +my $BIN_MV = "/bin/mv"; +usage() unless scalar(@ARGV); +foreach my $arg (@ARGV) + { + if (-d $arg && ! $DIR) + { + $DIR = $arg; + } + else + { + $PREFIX = $arg; + } + } +$DIR ||= "."; +opendir DIR, $DIR || die $!; +my @files = (); +while (my $file = readdir DIR) + { + next if $file =~ /^\./; + push @files, $file; + } +closedir DIR; +foreach my $file (@files) + { + system($BIN_MV, "$DIR/$file", "$DIR/$PREFIX-$file"); + } +sub usage + { + print "$ ./.prefix.pl DIR/ prefix\n"; + } diff --git a/conf/khl-httpd.conf b/conf/khl-httpd.conf new file mode 100644 index 0000000..bf9f0bd --- /dev/null +++ b/conf/khl-httpd.conf @@ -0,0 +1,411 @@ +# +# This is the main Apache HTTP server configuration file. It contains the +# configuration directives that give the server its instructions. +# See <URL:http://httpd.apache.org/docs/2.2> for detailed information. +# In particular, see +# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html> +# for a discussion of each configuration directive. +# +# Do NOT simply read the instructions in here without understanding +# what they do. They're here only as hints or reminders. If you are unsure +# consult the online docs. You have been warned. +# +# Configuration and logfile names: If the filenames you specify for many +# of the server's control files begin with "/" (or "drive:/" for Win32), the +# server will use that explicit path. If the filenames do *not* begin +# with "/", the value of ServerRoot is prepended -- so "logs/foo.log" +# with ServerRoot set to "/web/engine/" will be interpreted by the +# server as "/web/engine//logs/foo.log". + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# Do not add a slash at the end of the directory path. If you point +# ServerRoot at a non-local disk, be sure to point the LockFile directive +# at a local disk. If you wish to share the same ServerRoot for multiple +# httpd daemons, you will need to change at least LockFile and PidFile. +# +ServerRoot "/web/engine/" + +# +# Listen: Allows you to bind Apache to specific IP addresses and/or +# ports, instead of the default. See also the <VirtualHost> +# directive. +# +# Change this to Listen on specific IP addresses as shown below to +# prevent Apache from glomming onto all bound IP addresses. +# +#Listen 12.34.56.78:80 +Listen 80 + +# +# Dynamic Shared Object (DSO) Support +# +# To be able to use the functionality of a module which was built as a DSO you +# have to place corresponding `LoadModule' lines at this location so the +# directives contained in it are actually available _before_ they are used. +# Statically compiled modules (those listed by `httpd -l') do not need +# to be loaded here. +# +# Example: +# LoadModule foo_module modules/mod_foo.so +# + +<IfModule !mpm_netware_module> +# +# If you wish httpd to run as a different user or group, you must run +# httpd as root initially and it will switch. +# +# User/Group: The name (or #number) of the user/group to run httpd as. +# It is usually good practice to create a dedicated user and group for +# running httpd, as with most system services. +# +User nobody +Group nobody +</IfModule> + +# 'Main' server configuration +# +# The directives in this section set up the values used by the 'main' +# server, which responds to any requests that aren't handled by a +# <VirtualHost> definition. These values also provide defaults for +# any <VirtualHost> containers you may define later in the file. +# +# All of these directives may appear inside <VirtualHost> containers, +# in which case these default settings will be overridden for the +# virtual host being defined. +# + +# +# ServerAdmin: Your address, where problems with the server should be +# e-mailed. This address appears on some server-generated pages, such +# as error documents. e.g. admin@your-domain.com +# +ServerAdmin webmaster@foodhacking.com + +# +# ServerName gives the name and port that the server uses to identify itself. +# This can often be determined automatically, but we recommend you specify +# it explicitly to prevent problems during startup. +# +# If your host doesn't have a registered DNS name, enter its IP address here. +# +#ServerName www.example.com:80 +ServerName kitchenhacklab.foodhacking.com + +# +# DocumentRoot: The directory out of which you will serve your +# documents. By default, all requests are taken from this directory, but +# symbolic links and aliases may be used to point to other locations. +# +DocumentRoot "/web/engine/docs" + +# +# Each directory to which Apache has access can be configured with respect +# to which services and features are allowed and/or disabled in that +# directory (and its subdirectories). +# +# First, we configure the "default" to be a very restrictive set of +# features. +# +<Directory /> + Options FollowSymLinks + AllowOverride None + Order deny,allow + Deny from all +</Directory> + +# +# Note that from this point forward you must specifically allow +# particular features to be enabled - so if something's not working as +# you might expect, make sure that you have specifically enabled it +# below. +# + +# +# This should be changed to whatever you set DocumentRoot to. +# +<Directory "/web/engine/docs"> + # + # Possible values for the Options directive are "None", "All", + # or any combination of: + # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews + # + # Note that "MultiViews" must be named *explicitly* --- "Options All" + # doesn't give it to you. + # + # The Options directive is both complicated and important. Please see + # http://httpd.apache.org/docs/2.2/mod/core.html#options + # for more information. + # + Options FollowSymLinks + + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # Options FileInfo AuthConfig Limit + # + AllowOverride All + + # + # Controls who can get stuff from this server. + # + Order allow,deny + Allow from all + +</Directory> + +# +# DirectoryIndex: sets the file that Apache will serve if a directory +# is requested. +# +<IfModule dir_module> + DirectoryIndex index.html +</IfModule> + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# +<FilesMatch "^\.ht"> + Order allow,deny + Deny from all + Satisfy All +</FilesMatch> + +# +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a <VirtualHost> +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a <VirtualHost> +# container, that host's errors will be logged there and not here. +# +ErrorLog logs/errors + +# +# LogLevel: Control the number of messages logged to the error_log. +# Possible values include: debug, info, notice, warn, error, crit, +# alert, emerg. +# +LogLevel warn + +<IfModule log_config_module> + # + # The following directives define some format nicknames for use with + # a CustomLog directive (see below). + # + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined + LogFormat "%h %l %u %t \"%r\" %>s %b" common + + <IfModule logio_module> + # You need to enable mod_logio.c to use %I and %O + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio + </IfModule> + + # + # The location and format of the access logfile (Common Logfile Format). + # If you do not define any access logfiles within a <VirtualHost> + # container, they will be logged here. Contrariwise, if you *do* + # define per-<VirtualHost> access logfiles, transactions will be + # logged therein and *not* in this file. + # + CustomLog logs/access common + + # + # If you prefer a logfile with access, agent, and referer information + # (Combined Logfile Format) you can use the following directive. + # + #CustomLog logs/access_log combined +</IfModule> + +<IfModule alias_module> + # + # Redirect: Allows you to tell clients about documents that used to + # exist in your server's namespace, but do not anymore. The client + # will make a new request for the document at its new location. + # Example: + # Redirect permanent /foo http://www.example.com/bar + + # + # Alias: Maps web paths into filesystem paths and is used to + # access content that does not live under the DocumentRoot. + # Example: + # Alias /webpath /full/filesystem/path + # + # If you include a trailing / on /webpath then the server will + # require it to be present in the URL. You will also likely + # need to provide a <Directory> section to allow access to + # the filesystem path. + # + # ScriptAlias: This controls which directories contain server scripts. + # ScriptAliases are essentially the same as Aliases, except that + # documents in the target directory are treated as applications and + # run by the server when requested rather than as documents sent to the + # client. The same rules about trailing "/" apply to ScriptAlias + # directives as to Alias. + # + ScriptAlias /cgi-bin/ "/web/engine/cgi-bin/" + +</IfModule> + +<IfModule cgid_module> + # + # ScriptSock: On threaded servers, designate the path to the UNIX + # socket used to communicate with the CGI daemon of mod_cgid. + # + #Scriptsock logs/cgisock +</IfModule> + +# +# "/web/engine//cgi-bin" should be changed to whatever your ScriptAliased +# CGI directory exists, if you have that configured. +# +<Directory "/web/engine/cgi-bin"> + AllowOverride None + Options FollowSymLinks + Order allow,deny + Allow from all +</Directory> + +RedirectMatch ^/$ /index +<Location ~ "^/(login|logout|adminz|comment|details|import|inbox|index|library|invite|maintain|message|murder|post|profile|settings|user|services_f|services_k|services_th|category|tag|invite)"> + Options ExecCGI + SetHandler cgi-script +</Location> +# +# DefaultType: the default MIME type the server will use for a document +# if it cannot otherwise determine one, such as from filename extensions. +# If your server contains mostly text or HTML documents, "text/plain" is +# a good value. If most of your content is binary, such as applications +# or images, you may want to use "application/octet-stream" instead to +# keep browsers from trying to display binary files as though they are +# text. +# +DefaultType text/plain + +<IfModule mime_module> + # + # TypesConfig points to the file containing the list of mappings from + # filename extension to MIME-type. + # + TypesConfig conf/mime.types + + # + # AddType allows you to add to or override the MIME configuration + # file specified in TypesConfig for specific file types. + # + #AddType application/x-gzip .tgz + # + # AddEncoding allows you to have certain browsers uncompress + # information on the fly. Note: Not all browsers support this. + # + #AddEncoding x-compress .Z + #AddEncoding x-gzip .gz .tgz + # + # If the AddEncoding directives above are commented-out, then you + # probably should define those extensions to indicate media types: + # + AddType application/x-compress .Z + AddType application/x-gzip .gz .tgz + + # + # AddHandler allows you to map certain file extensions to "handlers": + # actions unrelated to filetype. These can be either built into the server + # or added with the Action directive (see below) + # + # To use CGI scripts outside of ScriptAliased directories: + # (You will also need to add "ExecCGI" to the "Options" directive.) + # + #AddHandler cgi-script .cgi + + # For type maps (negotiated resources): + #AddHandler type-map var + + # + # Filters allow you to process content before it is sent to the client. + # + # To parse .shtml files for server-side includes (SSI): + # (You will also need to add "Includes" to the "Options" directive.) + # + #AddType text/html .shtml + #AddOutputFilter INCLUDES .shtml +</IfModule> + +# +# The mod_mime_magic module allows the server to use various hints from the +# contents of the file itself to determine its type. The MIMEMagicFile +# directive tells the module where the hint definitions are located. +# +#MIMEMagicFile conf/magic + +# +# Customizable error responses come in three flavors: +# 1) plain text 2) local redirects 3) external redirects +# +# Some examples: +#ErrorDocument 500 "The server made a boo boo." +#ErrorDocument 404 /missing.html +#ErrorDocument 404 "/cgi-bin/missing_handler.pl" +#ErrorDocument 402 http://www.example.com/subscription_info.html +# + +# +# EnableMMAP and EnableSendfile: On systems that support it, +# memory-mapping or the sendfile syscall is used to deliver +# files. This usually improves server performance, but must +# be turned off when serving from networked-mounted +# filesystems or if support for these functions is otherwise +# broken on your system. +# +#EnableMMAP off +#EnableSendfile off + +# Supplemental configuration +# +# The configuration files in the conf/extra/ directory can be +# included to add extra features or to modify the default configuration of +# the server, or you may simply copy their contents here and change as +# necessary. + +# Server-pool management (MPM specific) +#Include conf/extra/httpd-mpm.conf + +# Multi-language error messages +#Include conf/extra/httpd-multilang-errordoc.conf + +# Fancy directory listings +#Include conf/extra/httpd-autoindex.conf + +# Language settings +#Include conf/extra/httpd-languages.conf + +# User home directories +#Include conf/extra/httpd-userdir.conf + +# Real-time info on requests and configuration +#Include conf/extra/httpd-info.conf + +# Virtual hosts +#Include conf/extra/httpd-vhosts.conf + +# Local access to the Apache HTTP Server Manual +#Include conf/extra/httpd-manual.conf + +# Distributed authoring and versioning (WebDAV) +#Include conf/extra/httpd-dav.conf + +# Various default settings +#Include conf/extra/httpd-default.conf + +# Secure (SSL/TLS) connections +Include conf/extra/httpd-ssl.conf +# +# Note: The following must must be present to support +# starting without SSL on platforms with no /dev/random equivalent +# but a statically compiled-in mod_ssl. +# +<IfModule ssl_module> +SSLRandomSeed startup builtin +SSLRandomSeed connect builtin +</IfModule> |
