sockscape/server/src/main.cpp

84 lines
1.7 KiB
C++
Raw Normal View History

2018-02-14 01:16:58 +00:00
#include <iostream>
2018-02-28 23:07:39 +00:00
#include <string>
2018-03-23 21:31:13 +00:00
#include <ctime>
2018-04-16 21:56:02 +00:00
#include <thread>
2018-02-15 23:09:09 +00:00
#include "sock/tcpsock.hpp"
2018-02-28 23:07:39 +00:00
#include "utils/string.hpp"
2018-03-01 23:16:47 +00:00
#include "utils/net.hpp"
2018-03-05 23:23:07 +00:00
#include "utils/time.hpp"
2018-03-07 23:07:28 +00:00
#include "sock/tcpsock.hpp"
2018-03-15 04:01:24 +00:00
#include "crypto/sha1.hpp"
2018-03-15 22:02:10 +00:00
#include "crypto/base64.hpp"
2018-03-20 22:42:26 +00:00
#include "crypto/bfish.hpp"
#include "utils/csprng.hpp"
2018-03-21 04:29:24 +00:00
#include "crypto/bcrypt.hpp"
2018-03-21 22:07:30 +00:00
#include "utils/bigint.hpp"
#include "sock/scapesock.hpp"
#include "sock/pool.hpp"
2018-04-16 21:56:02 +00:00
#include "hosts/master.hpp"
#include "hosts/slave.hpp"
2018-07-24 21:41:22 +00:00
bool master_intra(uint16_t port, const sosc::poolinfo_t& info);
bool master_client(uint16_t port, const sosc::poolinfo_t& info);
bool slave(uint16_t port, const sosc::poolinfo_t& info);
2018-02-14 01:16:58 +00:00
int main(int argc, char **argv) {
2018-07-24 21:41:22 +00:00
if(argc < 2)
return -1;
2018-07-24 21:41:22 +00:00
if(argv[1][0] == 'm') {
master_intra(1234, sosc::poolinfo_t());
} else {
slave(1234, sosc::poolinfo_t());
}
2018-07-24 21:41:22 +00:00
2018-02-14 01:16:58 +00:00
return 0;
}
2018-04-16 21:56:02 +00:00
2018-07-23 22:00:05 +00:00
bool master_intra(uint16_t port, const sosc::poolinfo_t& info) {
2018-04-16 21:56:02 +00:00
using namespace sosc;
IntraServer server;
IntraClient client;
if(!server.Listen(port))
return false;
MasterIntraPool pool;
pool.Configure(info);
pool.Start();
while(server.Accept(&client))
pool.AddClient(MasterIntra(client));
2018-07-23 22:00:05 +00:00
pool.Stop();
2018-04-16 21:56:02 +00:00
return true;
}
2018-07-24 21:41:22 +00:00
bool master_client(uint16_t port, const sosc::poolinfo_t& info) {
using namespace sosc;
2018-04-18 13:57:11 +00:00
return true;
2018-04-16 21:56:02 +00:00
}
2018-07-24 21:41:22 +00:00
bool slave(uint16_t port, const sosc::poolinfo_t& info) {
using namespace sosc;
ScapeServer server;
ScapeConnection client;
if(!server.Listen(port))
return false;
SlaveClientPool pool;
pool.Configure(info);
pool.Start();
while(server.Accept(&client))
pool.AddClient(SlaveClient(client));
pool.Stop();
2018-04-18 13:57:11 +00:00
return true;
2018-04-16 21:56:02 +00:00
}