summaryrefslogtreecommitdiff
path: root/yhttpd/src
diff options
context:
space:
mode:
authorPaul Buetow (mars.fritz.box) <paul@buetow.org>2013-12-15 11:49:02 +0100
committerPaul Buetow (mars.fritz.box) <paul@buetow.org>2013-12-15 11:49:02 +0100
commit3a96ab7e91145b367d05e98533b5f426f762f83f (patch)
treeac7758a706066e14b785ab6e5f7071a54baa856b /yhttpd/src
parent332d7b2107833018b3ef67b64ffe121bff1ef4fb (diff)
add packagespackages
Diffstat (limited to 'yhttpd/src')
-rw-r--r--yhttpd/src/Makefile.in21
-rw-r--r--yhttpd/src/cli/cli.cpp300
-rw-r--r--yhttpd/src/cli/cli.h61
-rw-r--r--yhttpd/src/conf/conf.cpp186
-rw-r--r--yhttpd/src/conf/conf.h29
-rwxr-xr-xyhttpd/src/configure350
-rw-r--r--yhttpd/src/contrib/README5
-rw-r--r--yhttpd/src/contrib/xml/README504
-rw-r--r--yhttpd/src/contrib/xml/tinyxml.cpp1428
-rw-r--r--yhttpd/src/contrib/xml/tinyxml.h1630
-rw-r--r--yhttpd/src/contrib/xml/tinyxmlerror.cpp51
-rw-r--r--yhttpd/src/contrib/xml/tinyxmlparser.cpp1553
-rw-r--r--yhttpd/src/glob.h198
-rw-r--r--yhttpd/src/html.cpp133
-rw-r--r--yhttpd/src/html.h38
-rw-r--r--yhttpd/src/incl.h13
-rw-r--r--yhttpd/src/logd.cpp175
-rw-r--r--yhttpd/src/logd.h37
-rw-r--r--yhttpd/src/main.cpp101
-rw-r--r--yhttpd/src/maps/hashmap.h53
-rw-r--r--yhttpd/src/maps/hashmap.tmpl126
-rw-r--r--yhttpd/src/maps/mtools.h11
-rw-r--r--yhttpd/src/maps/mtools.tmpl12
-rw-r--r--yhttpd/src/maps/nhashmap.h21
-rw-r--r--yhttpd/src/maps/nhashmap.tmpl11
-rw-r--r--yhttpd/src/maps/shashmap.h49
-rw-r--r--yhttpd/src/maps/shashmap.tmpl157
-rw-r--r--yhttpd/src/monitor/dump.cpp109
-rw-r--r--yhttpd/src/monitor/dump.h62
-rw-r--r--yhttpd/src/monitor/stats.cpp102
-rw-r--r--yhttpd/src/monitor/stats.h36
-rw-r--r--yhttpd/src/msgs.h145
-rw-r--r--yhttpd/src/name.cpp49
-rw-r--r--yhttpd/src/name.h24
-rw-r--r--yhttpd/src/ncur/menu.cpp117
-rw-r--r--yhttpd/src/ncur/menu.h39
-rw-r--r--yhttpd/src/ncur/ncur.cpp259
-rw-r--r--yhttpd/src/ncur/ncur.h51
-rw-r--r--yhttpd/src/reqp.cpp285
-rw-r--r--yhttpd/src/reqp.h41
-rw-r--r--yhttpd/src/sign.cpp54
-rw-r--r--yhttpd/src/sign.h21
-rw-r--r--yhttpd/src/sock/sock.cpp473
-rw-r--r--yhttpd/src/sock/sock.h91
-rw-r--r--yhttpd/src/sock/sslsock.cpp141
-rw-r--r--yhttpd/src/sock/sslsock.h41
-rw-r--r--yhttpd/src/thrd/pool.cpp157
-rw-r--r--yhttpd/src/thrd/pool.h55
-rw-r--r--yhttpd/src/thrd/thro.cpp43
-rw-r--r--yhttpd/src/thrd/thro.h30
-rw-r--r--yhttpd/src/time/timo.cpp38
-rw-r--r--yhttpd/src/time/timo.h22
-rw-r--r--yhttpd/src/time/timr.cpp177
-rw-r--r--yhttpd/src/time/timr.h64
-rw-r--r--yhttpd/src/tool/dir.cpp66
-rw-r--r--yhttpd/src/tool/dir.h35
-rw-r--r--yhttpd/src/tool/tool.cpp240
-rw-r--r--yhttpd/src/tool/tool.h29
-rw-r--r--yhttpd/src/wrap.cpp121
-rw-r--r--yhttpd/src/wrap.h105
60 files changed, 0 insertions, 10575 deletions
diff --git a/yhttpd/src/Makefile.in b/yhttpd/src/Makefile.in
deleted file mode 100644
index 262f3a6..0000000
--- a/yhttpd/src/Makefile.in
+++ /dev/null
@@ -1,21 +0,0 @@
-SRCS=WILLBEADDEDBYCONFIGURE
-OBJS=$(addprefix ../obj/,$(SRCS:.cpp=.o))
-CC=WILLBEADDEDBYCONFIGURE
-LIBADD=`cat libs.add`
-LDFLAGS=$(LIBADD) -lstdc++
-LDADD=-pthread -D_THREAD_SAFE -export-dynamic -ldl
-INCLUDES=`cat includes.add`
-CFLAGS=-fno-inline -fno-default-inline -frepo
-all: yhttpd
-$(SRCS):
- $(CC) $(INCLUDES) $(CFLAGS) -c $*.cpp
-infotext:
- @echo Compiling base
-yhttpd: infotext $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDADD)
- @mv yhttpd ../bin
- @echo -n "Size of linked executable: "
- @du -hc ../bin/yhttpd | tail -n 1
-clean:
- @echo Cleaning base obj
- @if test -d ../obj; then rm -Rf ../obj; fi
diff --git a/yhttpd/src/cli/cli.cpp b/yhttpd/src/cli/cli.cpp
deleted file mode 100644
index dbbc729..0000000
--- a/yhttpd/src/cli/cli.cpp
+++ /dev/null
@@ -1,300 +0,0 @@
-#ifndef CLI_CPP
-#define CLI_CPP
-
-#include "cli.h"
-
-#ifdef CLI
-using namespace std;
-
-cli::cli( )
-{
-#ifdef NCURSES
- start();
-#endif
-}
-
-cli::~cli()
-{}
-
-int
-cli::parse_input( string s_input )
-{
- string s_param = "";
- unsigned i_pos = s_input.find_first_of(" ");
-
- if ( i_pos != string::npos )
- {
- s_param = s_input.substr(i_pos+1);
- s_input = s_input.substr(0, i_pos);
- }
-
- if ( s_input.compare("help") == 0 || s_input.compare("h") == 0)
- {
- cout << CLIPRMO << "COMMAND LINE INTERFACE HELP MENU" << endl
- << CLIPRMO << " !command - Uses system to run a command" << endl;
-#ifdef DEBUG
-
- cout << CLIPRMO << " (d)ebug - Starts debug routine (cli.cpp)" << endl;
-#endif
-
- cout << CLIPRMO << " (du)mp [part] - Prints out a dump of the data structure" << endl;
- cout << CLIPRMO << " (Run without part to list all possibilities)" << endl;
- cout << CLIPRMO << " (e)cho VAR - Prints out configuration value of VAR" << endl;
- cout << CLIPRMO << " Wildcards can be used too, example: echo http*" << endl;
-#ifdef NCURSES
-
- cout << CLIPRMO << " (ex)it - Quits CLI mode and respawns ncurses mode" << endl;
-#endif
-
- cout << CLIPRMO << " (h)elp - Prints out this help!" << endl;
-#ifdef EXPERIM
-
- cout << CLIPRMO << " (re)conf - Reloads configuration (EXPERIMENTAL)" << endl;
-#endif
-
- cout << CLIPRMO << " (r)usage - Shows current resource usage" << endl
- << CLIPRMO << " (ru)sageh - Shows resource usage history (yhttpd needs to run > 1 day)" << endl
- << CLIPRMO << " (set) VAR VAL - Sets configuration value VAR to VAL" << endl
- << CLIPRMO << " (sh)ell - Runs a system shell" << endl
- << CLIPRMO << " (s)hutdown - Shuts down the whole server" << endl
- << CLIPRMO << " (t)ime - Prints out time and uptime" << endl;
- cout << CLIPRMO << " (u)nset VAR - Deletes configuration value VAR" << endl
- << CLIPRMO << " (v)ersion - Prints out version" << endl;
- cout << CLIPRMI;
- }
- else if( s_input.at(0) == '!' )
- {
- system( s_input.substr(1).c_str() );
- cout << CLIPRMI;
- }
-
-#ifdef DEBUG
- else if ( s_input.compare("d") == 0 || s_input.compare("debug") == 0 )
- {
- debug_routine();
- cout << CLIPRMI;
- }
-#endif
- else if ( s_input.compare("du") == 0 || s_input.compare("dump") == 0 )
- {
- dump d(vectorize(s_param));
- cout << CLIPRMI;
- }
- else if( s_input.compare("echo") == 0 || s_input.compare("e") == 0 )
- {
- string s_val;
-
- // Check wildcards
- unsigned i_pos = s_param.find("*");
- if ( i_pos != string::npos )
- {
- s_param = s_param.substr( 0, i_pos );
- vector<string>* p_vec = wrap::CONF->get_key_vector();
- sort(p_vec->begin(), p_vec->end());
- vector<string>::iterator iter;
-
- for ( iter = p_vec->begin(); iter != p_vec->end(); iter++ )
- if ( iter->find(s_param) == 0 )
- s_val.append( *iter + " := " + wrap::CONF->get_elem(*iter) + "\n" + CLIPRMO );
- delete p_vec;
- }
- else
- {
- s_val = wrap::CONF->get_elem(s_param);
- }
-
- if( s_val.empty() )
- s_val = "Value not set";
-
- cout << CLIPRMO << s_val << endl;
- cout << CLIPRMI;
- }
-
-
-#ifdef NCURSES
- else if( s_input.compare("exit") == 0 || s_input.compare("ex") == 0 )
- {
- return 0;
- }
-#endif
-
-
-#ifdef EXPERIM
- else if( s_input.compare("reconf") == 0 || s_input.compare("re") == 0 )
- {
- wrap::HTTPD->reconf();
- cout << CLIPRMI;
- }
-#endif
-
- else if( s_input.compare("rusage") == 0 || s_input.compare("r") == 0 )
- {
- print_rusage();
- cout << CLIPRMI;
- }
- else if( s_input.compare("ru") == 0 || s_input.compare("rusageh") == 0 )
- {
- cout << wrap::STAT->get_rusage_history( "ru_maxrss", string(CLIPRMO) + " " );
- cout << CLIPRMI;
- }
- else if( s_input.compare("set") == 0 )
- {
- string s_varname = "";
- i_pos = s_param.find_first_of(" ");
-
- if ( i_pos != string::npos )
- {
- s_varname = s_param.substr(0, i_pos);
-
- if ( s_param.length() > i_pos+1 )
- s_param = s_param.substr(i_pos+1);
-
- else
- s_param = "";
- }
-
- string s_old_val = wrap::CONF->get_elem(s_varname);
-
- if ( !s_old_val.empty() )
- {
- cout << CLIPRMO << "Old value: " << s_old_val << endl;
- wrap::CONF->del_elem(s_varname);
- }
-
- wrap::CONF->add_elem(s_param, s_varname);
- cout << CLIPRMO << "New value: " << s_param << endl;
- cout << CLIPRMI;
- }
- else if( s_input.compare("shell") == 0 || s_input.compare("sh") == 0 )
- {
- cout << CLIPRMO << CLISHEL << endl;
- system(wrap::CONF->get_elem("httpd.system.shell").c_str());
- cout << CLIPRMO << CLIWELC << endl;
- cout << CLIPRMI;
- }
- else if( s_input.compare("shutdown") == 0 || s_input.compare("s") == 0 )
- {
- exit(0);
- }
- else if( s_input.compare("t") == 0 || s_input.compare("time") == 0 )
- {
- cout << CLIPRMO << "Time: " << wrap::TIMR->get_time() << endl
- << CLIPRMO << "Uptime: " << wrap::TIMR->get_uptime() << endl;
- cout << CLIPRMI;
- }
-
-
- else if( s_input.compare("u") == 0 || s_input.compare("unset") == 0 )
- {
- if (!s_param.empty())
- {
- string s_old_val = wrap::CONF->get_elem(s_param);
- if ( !s_old_val.empty() )
- {
- cout << CLIPRMO << "Deleted variable " << s_param << " with value: " << s_old_val << endl;
- wrap::CONF->del_elem(s_param);
- }
- else
- {
- cout << CLIPRMO << "Variable " << s_param << " was not set" << endl;
- }
- cout << CLIPRMI;
- }
- }
- else if( s_input.compare("v") == 0 || s_input.compare("version") == 0 )
- {
- cout << CLIPRMO << tool::yhttpd_version() << " " << UNAME << endl;
- cout << CLIPRMI;
- }
- else
- {
- cout << CLIPRMO << CLIHELP << "\"" << s_input << "\"" << endl;
- cout << CLIPRMI;
- }
-
- return 1;
-}
-
-void
-#ifndef NCURSES
-cli::start(void* p_void)
-#else
-cli::start()
-#endif
-{
- cout << CLIPRMO << CLIWELC << endl;
-
- string s_input;
- cout << CLIPRMI;
-
- do
- {
- getline(cin, s_input);
- }
- while( parse_input(s_input) );
-}
-
-void
-cli::print_rusage()
-{
- rusage* p_rusage = new rusage;
- getrusage( RUSAGE_SELF, p_rusage );
-
- cout << CLIPRMO << "ru_maxrss: " << p_rusage->ru_maxrss << "\t(max resident set size)" << endl
- << CLIPRMO << "ru_ixrss: " << p_rusage->ru_ixrss << "\t(integral shared text memory size)" << endl
- << CLIPRMO << "ru_idrss: " << p_rusage->ru_idrss << "\t(integral unshared data size)" << endl
- << CLIPRMO << "ru_isrss: " << p_rusage->ru_isrss << "\t(integral unshared stack size)" << endl
- << CLIPRMO << "ru_minflt: " << p_rusage->ru_minflt << "\t(page reclaims)" << endl
- << CLIPRMO << "ru_majflt: " << p_rusage->ru_majflt << "\t(page faults)" << endl
- << CLIPRMO << "ru_nswap: " << p_rusage->ru_nswap << "\t(swaps)" << endl
- << CLIPRMO << "ru_inblock: " << p_rusage->ru_inblock << "\t(block input operations)" << endl
- << CLIPRMO << "ru_oublock: " << p_rusage->ru_oublock << "\t(block output operations)" << endl
- << CLIPRMO << "ru_msgsnd: " << p_rusage->ru_msgsnd << "\t(messages sent)" << endl
- << CLIPRMO << "ru_msgrcv: " << p_rusage->ru_msgrcv << "\t(messages received)" << endl
- << CLIPRMO << "ru_nsignals: " << p_rusage->ru_nsignals << "\t(signals received)" << endl
- << CLIPRMO << "ru_nvcsw: " << p_rusage->ru_nvcsw << "\t(voluntary context switches)" << endl
- << CLIPRMO << "ru_nivcsw: " << p_rusage->ru_nivcsw << "\t(involuntary context switches)" << endl;
-
- delete p_rusage;
-}
-
-vector<string>
-cli::vectorize(string s_param)
-{
- vector<string> vec_ret;
- unsigned i_pos;
-
- for (i_pos = s_param.find(" ");
- i_pos != string::npos;
- i_pos = s_param.find(" "))
- {
- vec_ret.push_back(s_param.substr(0, i_pos));
- s_param = s_param.substr(i_pos+1);
- }
-
- if (!s_param.empty())
- vec_ret.push_back(s_param);
-
- return vec_ret;
-}
-
-#ifdef DEBUG
-void
-cli::debug_routine()
-{
- rusage* p_rusage = new rusage;
- for(;;)
- {
- /*
- ossl *p_tmp = new ossl;
- getrusage( RUSAGE_SELF, p_rusage );
- cout << CLIPRMO << "ru_maxrss: " << p_rusage->ru_maxrss << "\t(max resident set size)" << endl;
- delete p_tmp;
- */
- }
- delete p_rusage;
-}
-#endif
-
-#endif
-#endif
diff --git a/yhttpd/src/cli/cli.h b/yhttpd/src/cli/cli.h
deleted file mode 100644
index 8ec75cb..0000000
--- a/yhttpd/src/cli/cli.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <iostream>
-#include <vector>
-
-#ifndef RUSAGE_SELF
-#define RUSAGE_SELF 0
-#endif
-#ifndef RUSAGE_CHILDREN
-#define RUSAGE_CHILDREN -1
-#endif
-
-#include "../incl.h"
-
-#ifndef CLI_H
-#define CLI_H
-#ifdef CLI
-
-#ifndef NCURSES
-#include "../thrd/thro.h"
-#endif
-
-#include "../monitor/dump.h"
-
-using namespace std;
-
-#ifndef NCURSES
-class cli : public thro
-{
-#else
-class cli
-{
-#endif
-private:
- int parse_input(string s_input);
- vector<string> vectorize(string s_param);
-
-public:
- cli( );
- ~cli( );
-
-#ifdef DEBUG
-
- void debug_routine();
-#endif
-
- void print_rusage();
-
-#ifndef NCURSES
-
- void start(void* p_void);
-#else
-
- void start();
-#endif
-};
-
-#endif
-#endif
diff --git a/yhttpd/src/conf/conf.cpp b/yhttpd/src/conf/conf.cpp
deleted file mode 100644
index 25884ca..0000000
--- a/yhttpd/src/conf/conf.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef CONF_CPP
-#define CONF_CPP
-
-#include <fstream>
-#include "conf.h"
-
-using namespace std;
-
-conf::conf( string s_conf, map<string,string>* p_main_loop_params ) : name::name( s_conf )
-{
- string s_check[] = {
- get_name(),
- string(getenv("HOME"))+string("/.yhttpd/") + get_name(),
- string("./etc/") + get_name(),
- string("/etc/") + get_name(),
- string(PREFIX+string("etc/")+get_name()) };
-
- string s_config;
-
- for ( int i = 0; i < 4; ++i )
- {
- cout << "Checking for " << s_check[i];
- ifstream if_check( s_check[i].c_str() );
- if( if_check )
- {
- s_config = s_check[i];
- if_check.close();
- cout << "... ok!" << endl;
- break;
- }
- cout << "... not ok!" << endl;
- }
-
- if ( s_config.empty() )
- {
- cout << CFILEFA << endl;
- exit(1);
- }
-
- else
- {
- cout << CFILEOK << "..." << endl;
- }
-
- p_xml = new TiXmlDocument(s_config.c_str());
- TiXmlBase::SetCondenseWhiteSpace( false );
-
- if ( !p_xml->LoadFile() )
- {
- cout << XMLER1 << endl;
- exit(1);
- }
-
- vector<string> vec_string;
- parse_xml(p_xml, &vec_string);
-
- shashmap<string>::add_elem_insecure(tool::yhttpd_version(), "yhttpd.version");
-
- // Overrides yhttpd.conf values with command line options (yhttpd -o key1 value1 -o key2 value2 ...)
- map<string,string>::iterator iter;
- for ( iter = p_main_loop_params->begin(); iter != p_main_loop_params->end(); iter++ )
- {
- shashmap<string>::del_elem_insecure(iter->first);
- shashmap<string>::add_elem_insecure(iter->second, iter->first);
- }
-
- delete p_xml;
-}
-
-void
-conf::parse_xml(TiXmlNode* p_node, vector<string>* p_vec)
-{
- if ( p_node->NoChildren() )
- return;
-
- for ( TiXmlNode* p_child = p_node->FirstChild(); p_child; p_child = p_child->NextSibling() )
- {
- //cout << p_vec->size() << ": (Value:" << p_child->Value() << ") (Type:" << p_child->Type() << ")" << endl;
-
- if ( strcmp(p_child->Value(),"config") == 0 )
- {
- parse_xml(p_child, p_vec);
- }
-
- else if ( strcmp(p_child->Value(),"category") == 0 )
- {
- p_vec->push_back(p_child->ToElement()->Attribute("name"));
- parse_xml(p_child, p_vec);
- p_vec->pop_back();
- }
-
- else if ( strcmp(p_child->Value(),"option") == 0 )
- {
- string s_option_name = "";
-
- for ( vector<string>::iterator iter = p_vec->
- begin();
- iter != p_vec->end();
- ++iter )
- s_option_name.append(*iter + ".");
-
- TiXmlElement* p_element = p_child->ToElement();
- exit_if_xml_error();
-
- s_option_name.append(p_element->Attribute("name"));
-
-#ifdef VERBOSE
- cout << XMLREAD << s_option_name;
-#endif
-
- TiXmlNode *p_node_value = p_element->FirstChild("value");
- TiXmlNode *p_node_descr = p_element->FirstChild("descr");
-
- TiXmlText* p_text_value = NULL;
- TiXmlText* p_text_descr = NULL;
-
- if ( p_node_value && p_node_value->FirstChild()
- )
- p_text_value = p_node_value->FirstChild()->ToText();
-
- if ( p_node_descr && p_node_descr->FirstChild()
- )
- p_text_descr = p_node_descr->FirstChild()->ToText();
-
- if ( !p_text_value )
- continue;
-
-#ifdef VERBOSE
- cout << " := " << p_text_value->Value() << endl;
-#endif
-
- shashmap<string>::add_elem_insecure(p_text_value->Value(), s_option_name);
-
- if ( !p_text_descr )
- continue;
-
- s_option_name.append(".descr");
-#ifdef VERBOSE
- cout << XMLREAD << s_option_name << endl;
-#endif
- shashmap<string>::add_elem_insecure(p_text_descr->Value(), s_option_name);
- }
- }
-
- exit_if_xml_error()
- ;
-}
-
-conf::~conf()
-{
- delete p_xml;
-}
-
-void
-conf::exit_if_xml_error() const
-{
- if ( p_xml->Error() )
- {
- cout << XMLERR << p_xml->ErrorDesc() << endl;
- exit(1);
- }
-}
-
-
-int
-conf::get_int(string s_key)
-{
- return tool::string2int(get_elem(s_key));
-}
-
-vector<string>
-conf::get_vector(string s_key)
-{
- vector<string> vec_ret;
- string s_val = get_elem(s_key);
-
- for (unsigned i_pos = s_val.find(" "); i_pos != string::npos; i_pos = s_val.find(" "))
- {
- vec_ret.push_back(s_val.substr(0, i_pos));
- s_val = s_val.substr(i_pos+1);
- }
-
- vec_ret.push_back(s_val);
- return vec_ret;
-}
-#endif
diff --git a/yhttpd/src/conf/conf.h b/yhttpd/src/conf/conf.h
deleted file mode 100644
index b083d8c..0000000
--- a/yhttpd/src/conf/conf.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef CONF_H
-#define CONF_H
-
-class conf; // Predefine for nmap.tmpl
-
-#include <map>
-#include "../incl.h"
-#include "../maps/shashmap.h"
-#include "../name.h"
-#include "../contrib/xml/tinyxml.h"
-
-using namespace std;
-
-class conf : public shashmap<string>, name
-{
-private:
- TiXmlDocument* p_xml;
- void exit_if_xml_error() const;
- void parse_xml( TiXmlNode* p_node, vector<string>* p_vec);
-
-public:
- conf(string s_conf, map<string,string>* p_main_loop_params);
- ~conf();
-
- int get_int(string s_key);
- vector<string> get_vector(string s_key);
-};
-
-#endif
diff --git a/yhttpd/src/configure b/yhttpd/src/configure
deleted file mode 100755
index 54cf650..0000000
--- a/yhttpd/src/configure
+++ /dev/null
@@ -1,350 +0,0 @@
-#!/bin/sh
-
-#
-# The yhttpd Project (2003 - 2005)
-#
-
-if ! ../scripts/checkperl.sh
-then
- exit 1
-fi
-
-if ! test -f ../g++.version
-then
- echo You need to run ./configure of the top level source dir first
- exit 1
-fi
-
-perl -e '
- use strict;
- $|=1;
-
- my %libadd;
- my %incadd;
- my $deepness = 500;
-
- my @headers = (
- "dlfcn.h",
- "pthread.h",
- "netinet/in.h",
- "time.h",
- "ncurses.h",
- "openssl/ssl.h",
- "::test::ext/hash_map"
- );
-
- my @libs = (
- "libncurses.so",
- "libssl.so",
- "libcrypto.so"
- );
-
- my @headerpaths = (
- $ENV{HOME}."/include",
- $ENV{HOME}."/usr/include",
- "/include",
- "/usr/include",
- "/usr/local/include",
- "/usr/lib/",
- "/usr/pkg/include",
- "/opt/include",
- "/opt/local/include"
- );
-
- my @libpaths = (
- $ENV{HOME}."/lib",
- $ENV{HOME}."/usr/lib",