Merge branch 'master' of ssh://boinc.berkeley.edu/boinc

This commit is contained in:
Oliver Bock 2013-03-05 15:06:55 +01:00
commit ee1aa040ec
16 changed files with 241 additions and 34 deletions

View File

@ -34,7 +34,7 @@
android:allowBackup="false">
<activity
android:name="edu.berkeley.boinc.MainActivity"
android:name="edu.berkeley.boinc.BOINCActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>

View File

@ -38,7 +38,7 @@ import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class MainActivity extends TabActivity {
public class BOINCActivity extends TabActivity {
private final String TAG = "MainActivity";
@ -250,7 +250,7 @@ public class MainActivity extends TabActivity {
Log.d(TAG,"tab layout setup done");
MainActivity.logMessage(this, TAG, "tab setup finished");
BOINCActivity.logMessage(this, TAG, "tab setup finished");
}
// triggered by click on noproject_warning, starts login activity

View File

@ -6,6 +6,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
@ -41,6 +42,17 @@ public class ClientRemoteService extends Service {
return mIsMonitorBound;
}
@Override
public int getVersionCode() throws RemoteException {
Integer version = 0;
try {
version = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
} catch (NameNotFoundException e) {
Log.e(TAG,"could not retrieve own version code!",e);
}
return version;
}
@Override
public boolean attachProject(String packageName, String url, String id, String pwd) throws RemoteException {
// TODO store packageName in AppPreferences

View File

@ -23,7 +23,7 @@ import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import edu.berkeley.boinc.MainActivity;
import edu.berkeley.boinc.BOINCActivity;
import edu.berkeley.boinc.definitions.CommonDefs;
import edu.berkeley.boinc.rpc.CcStatus;
import edu.berkeley.boinc.rpc.GlobalPreferences;
@ -109,7 +109,7 @@ public class ClientStatus {
if(!computingParseError && !networkParseError && !setupStatusParseError) {
fire(); // broadcast that status has changed
} else {
MainActivity.logMessage(ctx, TAG, "discard status change due to parse error" + computingParseError + computingStatus + computingSuspendReason + "-" + networkParseError + networkStatus + networkSuspendReason + "-" + setupStatusParseError);
BOINCActivity.logMessage(ctx, TAG, "discard status change due to parse error" + computingParseError + computingStatus + computingSuspendReason + "-" + networkParseError + networkStatus + networkSuspendReason + "-" + setupStatusParseError);
}
}
@ -183,7 +183,7 @@ public class ClientStatus {
} catch (Exception e) {
setupStatusParseError = true;
Log.e(TAG, "parseProjectStatus - Exception", e);
MainActivity.logMessage(ctx, TAG, "error parsing setup status (project state)");
BOINCActivity.logMessage(ctx, TAG, "error parsing setup status (project state)");
}
}
@ -228,7 +228,7 @@ public class ClientStatus {
}
} catch (Exception e) {
Log.e(TAG, "parseComputingStatus - Exception", e);
MainActivity.logMessage(ctx, TAG, "error - client computing status");
BOINCActivity.logMessage(ctx, TAG, "error - client computing status");
}
}
@ -255,7 +255,7 @@ public class ClientStatus {
}
} catch (Exception e) {
Log.e(TAG, "parseNetworkStatus - Exception", e);
MainActivity.logMessage(ctx, TAG, "error - client network status");
BOINCActivity.logMessage(ctx, TAG, "error - client network status");
}
}

View File

@ -33,6 +33,11 @@ interface IClientRemoteService {
/* Checks whether interface recipient is ready to serve commands.
* returns success*/
boolean isReady();
/* Returns the version code specified in AndroidManifest.xml.
* can be used to detect new AIDL versions.
* returns version code as Integer*/
int getVersionCode();
//== project management ==
/* Attach project to BOINC application.

View File

@ -38,7 +38,7 @@ import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
import edu.berkeley.boinc.LoginActivity;
import edu.berkeley.boinc.MainActivity;
import edu.berkeley.boinc.BOINCActivity;
import edu.berkeley.boinc.AppPreferences;
import edu.berkeley.boinc.R;
import edu.berkeley.boinc.rpc.AccountIn;
@ -179,7 +179,7 @@ public class Monitor extends Service{
public void restartMonitor() {
if(Monitor.monitorActive) { //monitor is already active, launch cancelled
MainActivity.logMessage(getApplicationContext(), TAG, "monitor active - restart cancelled");
BOINCActivity.logMessage(getApplicationContext(), TAG, "monitor active - restart cancelled");
}
else {
Log.d(TAG,"restart monitor");
@ -418,7 +418,7 @@ public class Monitor extends Service{
if((status!=null)&&(results!=null)&&(projects!=null)&&(transfers!=null)&&(clientPrefs!=null)) {
Monitor.clientStatus.setClientStatus(status,results,projects,transfers,clientPrefs,msgs);
} else {
MainActivity.logMessage(getApplicationContext(), TAG, "client status connection problem");
BOINCActivity.logMessage(getApplicationContext(), TAG, "client status connection problem");
}
Intent clientStatus = new Intent();
@ -437,7 +437,7 @@ public class Monitor extends Service{
@Override
protected void onProgressUpdate(String... arg0) {
Log.d(TAG+"-onProgressUpdate",arg0[0]);
MainActivity.logMessage(getApplicationContext(), TAG, arg0[0]);
BOINCActivity.logMessage(getApplicationContext(), TAG, arg0[0]);
}
@Override
@ -487,7 +487,7 @@ public class Monitor extends Service{
@Override
protected void onProgressUpdate(String... arg0) {
Log.d(TAG+"-onProgressUpdate",arg0[0]);
MainActivity.logMessage(getApplicationContext(), TAG, arg0[0]);
BOINCActivity.logMessage(getApplicationContext(), TAG, arg0[0]);
}
private Boolean startUp() {
@ -509,7 +509,7 @@ public class Monitor extends Service{
Boolean connected = false;
Integer counter = 0;
while(!(connected=connectClient()) && (counter<retryAttempts)) { //re-trys setting up the client several times, before giving up.
MainActivity.logMessage(getApplicationContext(), TAG, "--- restart setup ---");
BOINCActivity.logMessage(getApplicationContext(), TAG, "--- restart setup ---");
counter++;
try {
Thread.sleep(retryRate);
@ -857,10 +857,10 @@ public class Monitor extends Service{
protected Boolean doInBackground(Void... params) {
Log.d(TAG, "doInBackground");
Boolean success = rpc.quit();
MainActivity.logMessage(getApplicationContext(), TAG, "graceful shutdown returned " + success);
BOINCActivity.logMessage(getApplicationContext(), TAG, "graceful shutdown returned " + success);
if(!success) {
clientProcess.destroy();
MainActivity.logMessage(getApplicationContext(), TAG, "process killed ");
BOINCActivity.logMessage(getApplicationContext(), TAG, "process killed ");
}
return success;
}

View File

@ -19,7 +19,7 @@
package edu.berkeley.boinc.receiver;
import edu.berkeley.boinc.AppPreferences;
import edu.berkeley.boinc.MainActivity;
import edu.berkeley.boinc.BOINCActivity;
import edu.berkeley.boinc.R;
import edu.berkeley.boinc.client.Monitor;
import android.app.Notification;
@ -49,7 +49,7 @@ public class BootReceiver extends BroadcastReceiver {
mNM = (NotificationManager) context.getSystemService(Service.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.boinc, context.getString(R.string.autostart_notification_header), System.currentTimeMillis());
PendingIntent contentIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, new Intent(context.getApplicationContext(), MainActivity.class), 0);
PendingIntent contentIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, new Intent(context.getApplicationContext(), BOINCActivity.class), 0);
// Set current view for notification panel
notification.setLatestEventInfo(context.getApplicationContext(), context.getString(R.string.autostart_notification_header), context.getString(R.string.autostart_notification_text), contentIntent);

View File

@ -35,7 +35,7 @@
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.projectapp.MainActivity"
android:name="com.example.projectapp.ProjectExampleMainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@ -23,6 +23,6 @@
<string name="client_android_package_name">edu.berkeley.boinc</string>
<string name="client_download_url">http://fridgelike.com/boinc/BOINC.apk</string>
<string name="client_remote_service_name">edu.berkeley.boinc.client.ClientRemoteService</string>
<string name="client_main_activity_name">edu.berkeley.boinc.AndroidBOINCActivity</string>
<string name="client_main_activity_name">edu.berkeley.boinc.BOINCActivity</string>
<!-- DO NOT CHANGE! -->
</resources>

View File

@ -35,7 +35,7 @@ import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
public class ProjectExampleMainActivity extends Activity implements OnClickListener{
private final String TAG = "MainActivity";

View File

@ -33,6 +33,11 @@ interface IClientRemoteService {
/* Checks whether interface recipient is ready to serve commands.
* returns success*/
boolean isReady();
/* Returns the version code specified in AndroidManifest.xml.
* can be used to detect new AIDL versions.
* returns version code as Integer*/
int getVersionCode();
//== project management ==
/* Attach project to BOINC application.

View File

@ -23,10 +23,10 @@
#include "util.h"
class MemFSHashObj : public wxObject
class BOINCMemFSHashObj : public wxObject
{
public:
MemFSHashObj(wxInputStream* stream, const wxString& mime, const wxString& key)
BOINCMemFSHashObj(wxInputStream* stream, const wxString& mime, const wxString& key)
{
if (stream) {
wxMemoryOutputStream out;
@ -43,7 +43,7 @@ public:
m_Time = wxDateTime::Now();
}
virtual ~MemFSHashObj()
virtual ~BOINCMemFSHashObj()
{
delete[] m_Data;
}
@ -54,7 +54,7 @@ public:
wxDateTime m_Time;
wxString m_Key;
DECLARE_NO_COPY_CLASS(MemFSHashObj)
DECLARE_NO_COPY_CLASS(BOINCMemFSHashObj)
};
@ -510,7 +510,7 @@ wxFSFile* CBOINCInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wx
if (m_Hash)
{
MemFSHashObj* obj = (MemFSHashObj*)m_Hash->Get(strLocation);
BOINCMemFSHashObj* obj = (BOINCMemFSHashObj*)m_Hash->Get(strLocation);
if (obj == NULL)
{
wxString right = GetProtocol(strLocation) + wxT(":") + StripProtocolAnchor(strLocation);
@ -533,7 +533,7 @@ wxFSFile* CBOINCInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wx
strMIME = GetMimeTypeFromExt(strLocation);
}
obj = new MemFSHashObj(m_InputStream, strMIME, strLocation);
obj = new BOINCMemFSHashObj(m_InputStream, strMIME, strLocation);
delete m_InputStream;
m_InputStream = NULL;
@ -596,7 +596,7 @@ void CBOINCInternetFSHandler::UnchacheMissingItems() {
wxHashTable::Node* node = m_Hash->Next();
for(;;) {
if (node == NULL) break; // End of cache
MemFSHashObj* obj = (MemFSHashObj*)node->GetData();
BOINCMemFSHashObj* obj = (BOINCMemFSHashObj*)node->GetData();
// We must get next node before deleting this one
node = m_Hash->Next();
if (obj->m_Len == 0) {

View File

@ -42,6 +42,7 @@
#include "res/windowsicon.xpm"
#include "res/macosicon.xpm"
#include "res/linuxicon.xpm"
#include "res/freebsdicon.xpm"
#include "res/atiicon.xpm"
#include "res/nvidiaicon.xpm"
#include "res/blankicon.xpm"
@ -59,6 +60,7 @@ class CProjectInfo : public wxObject
m_bProjectSupportsWindows = false;
m_bProjectSupportsMac = false;
m_bProjectSupportsLinux = false;
m_bProjectSupportsFreeBSD = false;
m_bProjectSupportsCUDA = false;
m_bProjectSupportsCAL = false;
}
@ -74,6 +76,7 @@ public:
bool m_bProjectSupportsWindows;
bool m_bProjectSupportsMac;
bool m_bProjectSupportsLinux;
bool m_bProjectSupportsFreeBSD;
bool m_bProjectSupportsCUDA;
bool m_bProjectSupportsCAL;
};
@ -158,6 +161,7 @@ bool CProjectInfoPage::Create( CBOINCBaseWizard* parent )
m_pProjectDetailsSupportedPlatformWindowsCtrl = NULL;
m_pProjectDetailsSupportedPlatformMacCtrl = NULL;
m_pProjectDetailsSupportedPlatformLinuxCtrl = NULL;
m_pProjectDetailsSupportedPlatformFreeBSDCtrl = NULL;
m_pProjectDetailsSupportedPlatformATICtrl = NULL;
m_pProjectDetailsSupportedPlatformNvidiaCtrl = NULL;
m_pProjectDetailsSupportedPlatformBlankCtrl = NULL;
@ -300,6 +304,9 @@ void CProjectInfoPage::CreateControls()
m_pProjectDetailsSupportedPlatformLinuxCtrl = new wxStaticBitmap( itemWizardPage23, wxID_STATIC, GetBitmapResource(wxT("linuxicon.xpm")), wxDefaultPosition, wxSize(16,16), 0 );
itemBoxSizer26->Add(m_pProjectDetailsSupportedPlatformLinuxCtrl, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5);
m_pProjectDetailsSupportedPlatformFreeBSDCtrl = new wxStaticBitmap( itemWizardPage23, wxID_STATIC, GetBitmapResource(wxT("freebsdicon.xpm")), wxDefaultPosition, wxSize(16,16), 0 );
itemBoxSizer26->Add(m_pProjectDetailsSupportedPlatformFreeBSDCtrl, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5);
m_pProjectDetailsSupportedPlatformATICtrl = new wxStaticBitmap( itemWizardPage23, wxID_STATIC, GetBitmapResource(wxT("atiicon.xpm")), wxDefaultPosition, wxSize(16,16), 0 );
itemBoxSizer26->Add(m_pProjectDetailsSupportedPlatformATICtrl, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5);
@ -389,6 +396,11 @@ wxBitmap CProjectInfoPage::GetBitmapResource( const wxString& name )
wxBitmap bitmap(Linux_xpm);
return bitmap;
}
else if (name == wxT("freebsdicon.xpm"))
{
wxBitmap bitmap(FreeBSD_xpm);
return bitmap;
}
else if (name == wxT("atiicon.xpm"))
{
wxBitmap bitmap(atiicon_xpm);
@ -449,10 +461,12 @@ void CProjectInfoPage::OnProjectCategorySelected( wxCommandEvent& WXUNUSED(event
}
// Set the first item to be the selected item and then pop the next event.
m_pProjectsCtrl->SetSelection(0);
wxCommandEvent evtEvent(wxEVT_COMMAND_LISTBOX_SELECTED, ID_PROJECTS);
ProcessEvent(evtEvent);
if (m_pProjectsCtrl->GetCount() > 0) {
m_pProjectsCtrl->SetSelection(0);
wxCommandEvent evtEvent(wxEVT_COMMAND_LISTBOX_SELECTED, ID_PROJECTS);
ProcessEvent(evtEvent);
}
wxLogTrace(wxT("Function Start/End"), wxT("CProjectInfoPage::OnProjectCategorySelected - Function End"));
}
@ -486,11 +500,13 @@ void CProjectInfoPage::OnProjectSelected( wxCommandEvent& WXUNUSED(event) ) {
m_pProjectDetailsSupportedPlatformWindowsCtrl->Hide();
m_pProjectDetailsSupportedPlatformMacCtrl->Hide();
m_pProjectDetailsSupportedPlatformLinuxCtrl->Hide();
m_pProjectDetailsSupportedPlatformFreeBSDCtrl->Hide();
m_pProjectDetailsSupportedPlatformATICtrl->Hide();
m_pProjectDetailsSupportedPlatformNvidiaCtrl->Hide();
if (pProjectInfo->m_bProjectSupportsWindows) m_pProjectDetailsSupportedPlatformWindowsCtrl->Show();
if (pProjectInfo->m_bProjectSupportsMac) m_pProjectDetailsSupportedPlatformMacCtrl->Show();
if (pProjectInfo->m_bProjectSupportsLinux) m_pProjectDetailsSupportedPlatformLinuxCtrl->Show();
if (pProjectInfo->m_bProjectSupportsFreeBSD) m_pProjectDetailsSupportedPlatformFreeBSDCtrl->Show();
if (pProjectInfo->m_bProjectSupportsCAL) m_pProjectDetailsSupportedPlatformATICtrl->Show();
if (pProjectInfo->m_bProjectSupportsCUDA) m_pProjectDetailsSupportedPlatformNvidiaCtrl->Show();
@ -556,6 +572,7 @@ void CProjectInfoPage::OnPageChanged( wxWizardExEvent& event ) {
wxASSERT(m_pProjectDetailsSupportedPlatformWindowsCtrl);
wxASSERT(m_pProjectDetailsSupportedPlatformMacCtrl);
wxASSERT(m_pProjectDetailsSupportedPlatformLinuxCtrl);
wxASSERT(m_pProjectDetailsSupportedPlatformFreeBSDCtrl);
wxASSERT(m_pProjectDetailsSupportedPlatformATICtrl);
wxASSERT(m_pProjectDetailsSupportedPlatformNvidiaCtrl);
wxASSERT(m_pProjectURLStaticCtrl);
@ -676,6 +693,10 @@ void CProjectInfoPage::OnPageChanged( wxWizardExEvent& event ) {
if (strProjectPlatform.Find(_T("linux")) != wxNOT_FOUND) {
pProjectInfo->m_bProjectSupportsLinux = true;
}
if (strProjectPlatform.Find(_T("freebsd")) != wxNOT_FOUND) {
pProjectInfo->m_bProjectSupportsFreeBSD = true;
}
if (strProjectPlatform.Find(_T("[cuda")) != wxNOT_FOUND) {
pProjectInfo->m_bProjectSupportsCUDA = true;
@ -701,10 +722,11 @@ void CProjectInfoPage::OnPageChanged( wxWizardExEvent& event ) {
wxLogTrace(
wxT("Function Status"),
wxT("CProjectInfoPage::OnPageChanged - Windows: '%d', Mac: '%d', Linux: '%d', Nvidia: '%d', ATI: '%d', Platform: '%d'"),
wxT("CProjectInfoPage::OnPageChanged - Windows: '%d', Mac: '%d', Linux: '%d', FreeBSD: '%d', Nvidia: '%d', ATI: '%d', Platform: '%d'"),
pProjectInfo->m_bProjectSupportsWindows,
pProjectInfo->m_bProjectSupportsMac,
pProjectInfo->m_bProjectSupportsLinux,
pProjectInfo->m_bProjectSupportsFreeBSD,
pProjectInfo->m_bProjectSupportsCUDA,
pProjectInfo->m_bProjectSupportsCAL,
pProjectInfo->m_bSupportedPlatformFound

View File

@ -126,6 +126,7 @@ public:
wxStaticBitmap* m_pProjectDetailsSupportedPlatformWindowsCtrl;
wxStaticBitmap* m_pProjectDetailsSupportedPlatformMacCtrl;
wxStaticBitmap* m_pProjectDetailsSupportedPlatformLinuxCtrl;
wxStaticBitmap* m_pProjectDetailsSupportedPlatformFreeBSDCtrl;
wxStaticBitmap* m_pProjectDetailsSupportedPlatformATICtrl;
wxStaticBitmap* m_pProjectDetailsSupportedPlatformNvidiaCtrl;
wxStaticBitmap* m_pProjectDetailsSupportedPlatformBlankCtrl;

View File

@ -0,0 +1,154 @@
/* XPM */
static const char *FreeBSD_xpm[] = {
"14 14 137 2",
" c None",
". c #99120F",
"+ c #EBA49E",
"@ c #B4755C",
"# c #B2B3B2",
"$ c #F1F1F1",
"% c #F4F4F5",
"& c #F2EAEA",
"* c #F2EBEA",
"= c #C0C3C2",
"- c #AD8674",
"; c #EFBAB4",
"> c #9E1411",
", c #8E0403",
"' c #D63128",
") c #FFF0ED",
"! c #FFFFFF",
"~ c #FEFDF8",
"{ c #FEFBF9",
"] c #FDF9FA",
"^ c #D58686",
"/ c #EAB0A4",
"( c #FFF4F2",
"_ c #DE6059",
": c #900908",
"< c #952C2C",
"[ c #DDABAA",
"} c #FDF3F0",
"| c #FCE9DC",
"1 c #FCE9DE",
"2 c #FCEBDA",
"3 c #F0D4D2",
"4 c #FACDC0",
"5 c #F86D62",
"6 c #AB0903",
"7 c #A1494A",
"8 c #7A7475",
"9 c #FFECE5",
"0 c #FFFAF7",
"a c #FDDFD8",
"b c #FCB49F",
"c c #F79C7D",
"d c #E38581",
"e c #DA8E8F",
"f c #D06762",
"g c #C10A03",
"h c #B54D4B",
"i c #80797A",
"j c #DCCACB",
"k c #F7C7B3",
"l c #FEEDD9",
"m c #F66541",
"n c #F71C0B",
"o c #E20601",
"p c #C40303",
"q c #AD0303",
"r c #991212",
"s c #852222",
"t c #804645",
"u c #C1AEA6",
"v c #D9968E",
"w c #F39B62",
"x c #F57B39",
"y c #E80200",
"z c #EA0000",
"A c #D00000",
"B c #BB0000",
"C c #A50000",
"D c #8F0000",
"E c #810101",
"F c #680F10",
"G c #BC806E",
"H c #C66F66",
"I c #E42700",
"J c #EB3001",
"K c #DF0800",
"L c #DC0000",
"M c #BD0000",
"N c #AB0000",
"O c #9E0000",
"P c #AD0000",
"Q c #940000",
"R c #740000",
"S c #D89378",
"T c #C48B8A",
"U c #CA0E00",
"V c #E22401",
"W c #DB1701",
"X c #CD0000",
"Y c #A80000",
"Z c #A30000",
"` c #BC0000",
" . c #B20000",
".. c #750000",
"+. c #9F1808",
"@. c #F7EBB8",
"#. c #B9B9B9",
"$. c #A80C02",
"%. c #D61802",
"&. c #DD2302",
"*. c #CE1301",
"=. c #920000",
"-. c #B70000",
";. c #B00000",
">. c #860001",
",. c #E5824E",
"'. c #C1C2B0",
"). c #B46866",
"!. c #C40A00",
"~. c #D01701",
"{. c #D52402",
"]. c #BE2102",
"^. c #BC1101",
"/. c #B60F00",
"(. c #CC2603",
"_. c #D8450F",
":. c #E08F7C",
"<. c #7A6F6F",
"[. c #B22724",
"}. c #C20600",
"|. c #CC1701",
"1. c #CA2302",
"2. c #DC2F02",
"3. c #E63B02",
"4. c #EE4200",
"5. c #F58C5C",
"6. c #88736D",
"7. c #6B6B6A",
"8. c #B2302B",
"9. c #C8160E",
"0. c #D01E0B",
"a. c #E62F0A",
"b. c #E7480E",
"c. c #DF8E3B",
"d. c #74665F",
"e. c #622623",
"f. c #6B3626",
" ",
" . + @ # $ % & * = - ; > ",
" , ' ) ! ~ { ] ^ / ( _ : ",
" < [ } } | 1 2 3 4 5 6 7 ",
" 8 9 0 a b c d e f g h i ",
" j k l m n o p q r s t u ",
" v w x y z A B C D E F G ",
" H I J K L M N O P Q R S ",
" T U V W X Y Z ` ...+.@. ",
" #.$.%.&.*.=.-.;.C >.,.'. ",
" ).!.~.{.].^./.(._.:. ",
" <.[.}.|.1.2.3.4.5.6. ",
" 7.8.9.0.a.b.c.d. ",
" e.f. "};

View File

@ -46,7 +46,11 @@ if test "x${SSL_LIBS}" = "x" ; then
SSLDIR="${ssldir}"
SSL_CFLAGS="-I$ssldir/include -I$ssldir/include/openssl";
SSL_CXXFLAGS="-I$ssldir/include -I$ssldir/include/openssl";
SSL_LIBS="-L$ssldir -L$ssldir/lib -lssl -lcrypto -ldl -lz"
SSL_LIBS="-L$ssldir -L$ssldir/lib -lssl -lcrypto"
AC_CHECK_LIB([dl], [dlopen],
[SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"])
AC_CHECK_LIB([z], [gzopen],
[SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"])
break;
fi
if test -f "$dir/include/ssl.h"; then
@ -55,6 +59,10 @@ if test "x${SSL_LIBS}" = "x" ; then
SSL_CFLAGS="-I$ssldir/include/"
SSL_CXXFLAGS="-I$ssldir/include/"
SSL_LIBS="-L$ssldir -L$ssldir/lib -lssl -lcrypto"
AC_CHECK_LIB([dl], [dlopen],
[SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"])
AC_CHECK_LIB([z], [gzopen],
[SSL_LIBS="${SSL_LIBS} ${sah_lib_last}"])
break;
fi
done