mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-03 03:41:04 -05:00
Tweaked tabs and order. Added NewsFeed.
Added Template functions for ssl+xpgp code. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@853 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
01a2ca1468
commit
77cb7314bc
@ -310,3 +310,91 @@ bool GPGAuthMgr::SignData(const void *data, const uint32_t len, std::string &sig
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
|
||||
bool setupSSL(SSL_CTX *ctx)
|
||||
{
|
||||
/* signer is done by pgp, so we have to manually authenticate the certificate.
|
||||
*/
|
||||
|
||||
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, verify_pgp_callback);
|
||||
SSL_CTX_set_verify_depth(1);
|
||||
|
||||
/* generate a certificate */
|
||||
|
||||
}
|
||||
|
||||
|
||||
static int verify_pgp_callback(int preverify_ok, X509_STORE_CTX *ctx)
|
||||
{
|
||||
char buf[256];
|
||||
X509 *err_cert;
|
||||
int err, depth;
|
||||
SSL *ssl;
|
||||
mydata_t *mydata;
|
||||
|
||||
err_cert = X509_STORE_CTX_get_current_cert(ctx);
|
||||
err = X509_STORE_CTX_get_error(ctx);
|
||||
depth = X509_STORE_CTX_get_error_depth(ctx);
|
||||
|
||||
/*
|
||||
* Retrieve the pointer to the SSL of the connection currently treated
|
||||
* and the application specific data stored into the SSL object.
|
||||
*/
|
||||
ssl = X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx());
|
||||
mydata = SSL_get_ex_data(ssl, mydata_index);
|
||||
|
||||
X509_NAME_oneline(X509_get_subject_name(err_cert), buf, 256);
|
||||
|
||||
/*
|
||||
* Catch a too long certificate chain. The depth limit set using
|
||||
* SSL_CTX_set_verify_depth() is by purpose set to "limit+1" so
|
||||
* that whenever the "depth>verify_depth" condition is met, we
|
||||
* have violated the limit and want to log this error condition.
|
||||
* We must do it here, because the CHAIN_TOO_LONG error would not
|
||||
* be found explicitly; only errors introduced by cutting off the
|
||||
* additional certificates would be logged.
|
||||
*/
|
||||
|
||||
|
||||
if (depth > mydata->verify_depth) {
|
||||
preverify_ok = 0;
|
||||
err = X509_V_ERR_CERT_CHAIN_TOO_LONG;
|
||||
X509_STORE_CTX_set_error(ctx, err);
|
||||
}
|
||||
if (!preverify_ok) {
|
||||
printf("verify error:num=%d:%s:depth=%d:%s\n", err,
|
||||
X509_verify_cert_error_string(err), depth, buf);
|
||||
}
|
||||
else if (mydata->verbose_mode)
|
||||
{
|
||||
printf("depth=%d:%s\n", depth, buf);
|
||||
}
|
||||
|
||||
/*
|
||||
* At this point, err contains the last verification error. We can use
|
||||
* it for something special
|
||||
*/
|
||||
|
||||
if (!preverify_ok && (err == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT))
|
||||
{
|
||||
X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert), buf, 256);
|
||||
printf("issuer= %s\n", buf);
|
||||
}
|
||||
|
||||
if (mydata->always_continue)
|
||||
return 1;
|
||||
else
|
||||
return preverify_ok;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -157,6 +157,24 @@ class GPGAuthMgr: public p3AuthMgr
|
||||
bool SignData(std::string input, std::string &sign);
|
||||
bool SignData(const void *data, const uint32_t len, std::string &sign);
|
||||
|
||||
/*********************************************************************************/
|
||||
/************************* PGP Specific functions ********************************/
|
||||
/*********************************************************************************/
|
||||
|
||||
/*
|
||||
* These support the authentication process.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
bool checkSignature(std::string id, std::string hash, std::string signature);
|
||||
|
||||
|
||||
|
||||
|
||||
/*********************************************************************************/
|
||||
/************************* OTHER FUNCTIONS ***************************************/
|
||||
/*********************************************************************************/
|
||||
@ -182,6 +200,15 @@ class GPGAuthMgr: public p3AuthMgr
|
||||
gpgme_ctx_t CTX;
|
||||
};
|
||||
|
||||
/*****
|
||||
*
|
||||
* Support Functions for OpenSSL verification.
|
||||
*
|
||||
*/
|
||||
|
||||
int verify_pgp_callback(int preverify_ok, X509_STORE_CTX *ctx);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -27,12 +27,17 @@
|
||||
#include <QIcon>
|
||||
#include <QPixmap>
|
||||
|
||||
#include "ChannelFeed.h"
|
||||
#include "ForumsDialog.h"
|
||||
|
||||
#include "NetworkView.h"
|
||||
#include "LinksDialog.h"
|
||||
#include "GamesDialog.h"
|
||||
#include "PhotoDialog.h"
|
||||
#include "channels/channelsDialog.h"
|
||||
#include "ForumsDialog.h"
|
||||
#include "NewsFeed.h"
|
||||
#include "PeersFeed.h"
|
||||
#include "TransferFeed.h"
|
||||
#include "MsgFeed.h"
|
||||
#include "ChannelFeed.h"
|
||||
|
||||
|
||||
#include <rshare.h>
|
||||
#include "MainWindow.h"
|
||||
@ -93,6 +98,7 @@
|
||||
#define IMAGE_MINIMIZE ":/images/window_nofullscreen.png"
|
||||
#define IMAGE_MAXIMIZE ":/images/window_fullscreen.png"
|
||||
#define IMG_HELP ":/images/help.png"
|
||||
#define IMAGE_NEWSFEED ":/images/konqsidebar_news24.png"
|
||||
|
||||
/* Keys for UI Preferences */
|
||||
#define UI_PREF_PROMPT_ON_QUIT "UIOptions/ConfirmOnQuit"
|
||||
@ -160,26 +166,40 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
|
||||
QActionGroup *grp = new QActionGroup(this);
|
||||
|
||||
|
||||
ui.stackPages->add(networkDialog = new NetworkDialog(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_NETWORK), tr("Network"), grp));
|
||||
NewsFeed *newsFeed = NULL;
|
||||
ui.stackPages->add(newsFeed = new NewsFeed(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_NEWSFEED), tr("News Feed"), grp));
|
||||
|
||||
|
||||
ui.stackPages->add(peersDialog = new PeersDialog(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_PEERS), tr("Friends"), grp));
|
||||
|
||||
|
||||
//PeersFeed *peersFeed = NULL;
|
||||
//ui.stackPages->add(peersFeed = new PeersFeed(ui.stackPages),
|
||||
// createPageAction(QIcon(IMAGE_PEERS), tr("Peers"), grp));
|
||||
|
||||
ui.stackPages->add(searchDialog = new SearchDialog(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_SEARCH), tr("Search"), grp));
|
||||
|
||||
ui.stackPages->add(transfersDialog = new TransfersDialog(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_TRANSFERS), tr("Transfers"), grp));
|
||||
createPageAction(QIcon(IMAGE_TRANSFERS), tr("Transfers"), grp));
|
||||
|
||||
//TransferFeed *transferFeed = NULL;
|
||||
//ui.stackPages->add(transferFeed = new TransferFeed(ui.stackPages),
|
||||
// createPageAction(QIcon(IMAGE_LINKS), tr("Transfers"), grp));
|
||||
|
||||
ui.stackPages->add(sharedfilesDialog = new SharedFilesDialog(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_FILES), tr("Files"), grp));
|
||||
|
||||
//ui.stackPages->add(chatDialog = new ChatDialog(ui.stackPages),
|
||||
// createPageAction(QIcon(IMAGE_CHAT), tr("Chat"), grp));
|
||||
|
||||
//MsgFeed *msgFeed = NULL;
|
||||
//ui.stackPages->add(msgFeed = new MsgFeed(ui.stackPages),
|
||||
// createPageAction(QIcon(IMAGE_MESSAGES), tr("Messages"), grp));
|
||||
|
||||
ui.stackPages->add(messagesDialog = new MessagesDialog(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_MESSAGES), tr("Messages"), grp));
|
||||
createPageAction(QIcon(IMAGE_MESSAGES), tr("Messages"), grp));
|
||||
|
||||
LinksDialog *linksDialog = NULL;
|
||||
|
||||
@ -197,6 +217,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
|
||||
ui.stackPages->add(forumsDialog = new ForumsDialog(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_FORUMS), tr("Forums"), grp));
|
||||
|
||||
|
||||
#else
|
||||
channelsDialog = NULL;
|
||||
ui.stackPages->add(linksDialog = new LinksDialog(ui.stackPages),
|
||||
@ -211,6 +232,10 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
|
||||
|
||||
#endif
|
||||
|
||||
ui.stackPages->add(networkDialog = new NetworkDialog(ui.stackPages),
|
||||
createPageAction(QIcon(IMAGE_NETWORK), tr("Network"), grp));
|
||||
|
||||
|
||||
//ui.stackPages->add(new HelpDialog(ui.stackPages),
|
||||
// createPageAction(QIcon(IMAGE_ABOUT), tr("About/Help"), grp));
|
||||
|
||||
@ -540,8 +565,8 @@ void MainWindow::createActions()
|
||||
_appAct = new QAction(QIcon(IMAGE_UNFINISHED), tr("Applications"), this);
|
||||
connect(_appAct, SIGNAL(triggered()),this, SLOT(showApplWindow()));
|
||||
|
||||
_smplayerAct = new QAction(QIcon(IMAGE_SMPLAYER), tr("SMPlayer"), this);
|
||||
connect(_smplayerAct, SIGNAL(triggered()),this, SLOT(showsmplayer()));
|
||||
//_smplayerAct = new QAction(QIcon(IMAGE_SMPLAYER), tr("SMPlayer"), this);
|
||||
//connect(_smplayerAct, SIGNAL(triggered()),this, SLOT(showsmplayer()));
|
||||
|
||||
_helpAct = new QAction(QIcon(IMG_HELP), tr("Help"), this);
|
||||
connect(_helpAct, SIGNAL(triggered()), this, SLOT(showHelpDialog()));
|
||||
@ -668,14 +693,17 @@ void MainWindow::startqcheckers()
|
||||
/** Shows smplayer */
|
||||
void MainWindow::showsmplayer()
|
||||
{
|
||||
static SMPlayer * smplayer = 0;
|
||||
|
||||
return;
|
||||
|
||||
if (mSMPlayer == 0)
|
||||
{
|
||||
mSMPlayer = new SMPlayer(QString::null, this);
|
||||
mSMPlayer->gui()->hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
mSMPlayer->gui()->show();
|
||||
}
|
||||
mSMPlayer->gui()->show();
|
||||
|
||||
}
|
||||
|
||||
void MainWindow::playFiles(QStringList files)
|
||||
@ -686,7 +714,8 @@ void MainWindow::playFiles(QStringList files)
|
||||
|
||||
std::cerr << "MainWindow::playFiles() showsmplayer() done" << std::endl;
|
||||
|
||||
mSMPlayer->gui()->openFiles(files);
|
||||
if (mSMPlayer)
|
||||
mSMPlayer->gui()->openFiles(files);
|
||||
|
||||
std::cerr << "MainWindow::playFiles() done" << std::endl;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user