Some SFTP stuff
This commit is contained in:
parent
0682db31a2
commit
aaff81f6bb
2
Makefile
2
Makefile
@ -1,6 +1,6 @@
|
||||
CXX = $(shell wx-config --cxx) -Wno-c++11-compat-deprecated-writable-strings
|
||||
TARGET = build/Tyro
|
||||
LDLIBS = $(shell wx-config --libs all)
|
||||
LDLIBS = $(shell wx-config --libs all) -lssh2
|
||||
WX_CXXFLAGS = -I./src -I./include -static $(shell wx-config --cxxflags)
|
||||
DEV_CXXFLAGS = -g -Wall -Wextra $(WX_CXXFLAGS)
|
||||
CXXFLAGS = -Os -s $(WX_CXXFLAGS)
|
||||
|
47
Tyro.cbp
47
Tyro.cbp
@ -1,47 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_project_file>
|
||||
<FileVersion major="1" minor="6" />
|
||||
<Project>
|
||||
<Option title="Tyro" />
|
||||
<Option pch_mode="2" />
|
||||
<Option compiler="clang" />
|
||||
<Build>
|
||||
<Target title="Debug">
|
||||
<Option output="bin/Debug/Tyro" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj/Debug/" />
|
||||
<Option type="0" />
|
||||
<Option compiler="gcc" />
|
||||
<Compiler>
|
||||
<Add option="-Wextra" />
|
||||
<Add option="-g" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
<Target title="Release">
|
||||
<Option output="bin/Release/Tyro" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj/Release/" />
|
||||
<Option type="0" />
|
||||
<Option compiler="gccs" />
|
||||
<Option projectLinkerOptionsRelation="2" />
|
||||
<Compiler>
|
||||
<Add option="-Os" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
</Build>
|
||||
<Compiler>
|
||||
<Add option="`wx-config --cflags`" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add option="`wx-config --libs all`" />
|
||||
</Linker>
|
||||
<Unit filename="src/DocFrame.cpp" />
|
||||
<Unit filename="src/DocFrame.h" />
|
||||
<Unit filename="src/Main.cpp" />
|
||||
<Unit filename="src/Main.h" />
|
||||
<Unit filename="src/TyroApp.cpp" />
|
||||
<Unit filename="src/TyroApp.h" />
|
||||
<Extensions>
|
||||
<code_completion />
|
||||
<debugger />
|
||||
</Extensions>
|
||||
</Project>
|
||||
</CodeBlocks_project_file>
|
@ -25,3 +25,18 @@ EditPane::EditPane(
|
||||
}
|
||||
|
||||
EditPane::~EditPane() {}
|
||||
|
||||
void EditPane::OnMenuFileOpen(wxCommandEvent &WXUNUSED(event))
|
||||
{
|
||||
wxFileDialog *OpenDialog = new wxFileDialog(this, _T("Choose a file"), _(""), _(""), _("*.*"), wxFD_OPEN);
|
||||
|
||||
if (OpenDialog->ShowModal() == wxID_OK)
|
||||
{
|
||||
// Load the file into a new notebook tab and styled text control
|
||||
}
|
||||
OpenDialog->Close();
|
||||
}
|
||||
|
||||
void EditPane::OnMenuFileSave(wxCommandEvent &WXUNUSED(event))
|
||||
{
|
||||
}
|
@ -19,6 +19,8 @@ public:
|
||||
wxVSCROLL
|
||||
);
|
||||
~EditPane();
|
||||
void OnMenuFileOpen(wxCommandEvent &event);
|
||||
void OnMenuFileSave(wxCommandEvent &event);
|
||||
private:
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
25
src/Main.cpp
25
src/Main.cpp
@ -12,8 +12,8 @@
|
||||
BEGIN_EVENT_TABLE(MainFrame, wxFrame)
|
||||
EVT_CLOSE(MainFrame::OnClose)
|
||||
EVT_MENU(wxID_NEW, MainFrame::OnMenuFileNew)
|
||||
EVT_MENU(wxID_OPEN, MainFrame::OnMenuFileOpen)
|
||||
EVT_MENU(wxID_SAVE, MainFrame::OnMenuFileSave)
|
||||
EVT_MENU(wxID_OPEN, EditPane::OnMenuFileOpen)
|
||||
EVT_MENU(wxID_SAVE, EditPane::OnMenuFileSave)
|
||||
EVT_MENU(wxID_EXIT, MainFrame::OnQuit)
|
||||
EVT_MENU(wxID_ABOUT, MainFrame::OnAbout)
|
||||
END_EVENT_TABLE()
|
||||
@ -108,9 +108,9 @@ void MainFrame::SetupMenu()
|
||||
helpMenu->Append(wxID_ABOUT, _T("&About...\tF1"), _T("Show info about this application"));
|
||||
|
||||
// Add the menus to the menubar
|
||||
mbar->Append(fileMenu, _("&File"));
|
||||
mbar->Append(editMenu, _("&Edit"));
|
||||
mbar->Append(helpMenu, _("&Help"));
|
||||
mbar->Append(fileMenu, _T("&File"));
|
||||
mbar->Append(editMenu, _T("&Edit"));
|
||||
mbar->Append(helpMenu, _T("&Help"));
|
||||
|
||||
#ifdef __WXMAC__
|
||||
wxMenuBar::MacSetCommonMenuBar(mbar);
|
||||
@ -135,21 +135,6 @@ void MainFrame::OnMenuFileNew(wxCommandEvent &WXUNUSED(event))
|
||||
notebook->AddTab();
|
||||
}
|
||||
|
||||
void MainFrame::OnMenuFileOpen(wxCommandEvent &WXUNUSED(event))
|
||||
{
|
||||
wxFileDialog *OpenDialog = new wxFileDialog(this, _T("Choose a file"), _(""), _(""), _("*.*"), wxFD_OPEN);
|
||||
|
||||
if (OpenDialog->ShowModal() == wxID_OK)
|
||||
{
|
||||
// Load the file into a new notebook tab and styled text control
|
||||
}
|
||||
OpenDialog->Close();
|
||||
}
|
||||
|
||||
void MainFrame::OnMenuFileSave(wxCommandEvent &WXUNUSED(event))
|
||||
{
|
||||
}
|
||||
|
||||
void MainFrame::OnQuit(wxCommandEvent &WXUNUSED(event))
|
||||
{
|
||||
Destroy();
|
||||
|
@ -25,8 +25,6 @@ class MainFrame: public wxFrame
|
||||
void SetupToolbar();
|
||||
void SetupStatusBar();
|
||||
void OnMenuFileNew(wxCommandEvent &event);
|
||||
void OnMenuFileOpen(wxCommandEvent &event);
|
||||
void OnMenuFileSave(wxCommandEvent &event);
|
||||
void OnClose(wxCloseEvent &event);
|
||||
void OnQuit(wxCommandEvent &event);
|
||||
void OnAbout(wxCommandEvent &event);
|
||||
|
45
src/SFTP.cpp
Normal file
45
src/SFTP.cpp
Normal file
@ -0,0 +1,45 @@
|
||||
#include "SFTP.h"
|
||||
|
||||
SFTP::SFTP(const char *host, string user, string pass) {
|
||||
struct addrinfo host_info;
|
||||
struct addrinfo *host_info_list;
|
||||
int sock;
|
||||
int status;
|
||||
int rc;
|
||||
|
||||
// Clear out memory in addr structure
|
||||
memset(&host_info, 0, sizeof host_info);
|
||||
|
||||
host_info.ai_family = AF_UNSPEC;
|
||||
host_info.ai_socktype = SOCK_STREAM;
|
||||
|
||||
status = getaddrinfo(host, "22", &host_info, &host_info_list);
|
||||
|
||||
if (status != 0)
|
||||
{
|
||||
cout << "getaddrinfo error" << gai_strerror(status) << endl;
|
||||
}
|
||||
|
||||
// Start libssh2
|
||||
rc = libssh2_init(0);
|
||||
|
||||
if (rc != 0)
|
||||
{
|
||||
cout << "Libssh2 initialization failed " << "(" << rc << ")" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
|
||||
session = libssh2_session_init();
|
||||
|
||||
/* Since we have set non-blocking, tell libssh2 we are blocking */
|
||||
libssh2_session_set_blocking(session, 1);
|
||||
|
||||
// Actually do the ssh handshake
|
||||
rc = libssh2_session_handshake(session, sock);
|
||||
};
|
||||
|
||||
SFTP::~SFTP() {
|
||||
|
||||
};
|
34
src/SFTP.h
Normal file
34
src/SFTP.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* File: SFTP.h
|
||||
* Author: twarren
|
||||
*
|
||||
* Created on April 6, 2015, 2:22 PM
|
||||
*/
|
||||
|
||||
#ifndef SFTP_H
|
||||
#define SFTP_H
|
||||
|
||||
#define LIBSSH_STATIC 1
|
||||
#include "common.h"
|
||||
|
||||
// libssh2 includes
|
||||
#include <libssh2.h>
|
||||
#include <libssh2_sftp.h>
|
||||
|
||||
// Socket includes
|
||||
#include <cstring>
|
||||
#include <sys/socket.h>
|
||||
#include <netdb.h>
|
||||
|
||||
class SFTP {
|
||||
public:
|
||||
SFTP(const char *host, string user, string pass);
|
||||
~SFTP();
|
||||
private:
|
||||
LIBSSH2_SESSION *session;
|
||||
LIBSSH2_SFTP *sftp_session;
|
||||
unsigned long hostaddr;
|
||||
};
|
||||
|
||||
#endif /* SFTP_H */
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
#endif // TYRO_COMMON_H
|
||||
|
Loading…
Reference in New Issue
Block a user