#ifdef __WIN32
#include <winsock2.h>
#include <stdint.h>
#else
#include <fcntl.h>
#endif
#include <string.h>
#include <stdio.h>
#include <openssl/ssl.h>
}
char buff[128];
printf(
"[S] %s %i\n", buff, sock->
sock);
sleep(1);
}
}
char buff[128];
printf(
"[C] %s %i\n", buff, sock->
sock);
}
}
void socktest(
const char *ipaddr,
int tcp,
int ssl) {
struct fwsocket *serv, *client, *client2;
void *ssl_c = NULL, *ssl_s = NULL, *ssl_c2 = NULL;
char *buff = "client 1";
char *buff2 = "client 2";
int cnt;
if (ssl && tcp) {
ssl_s =
sslv3_init(
"certs/cacert.pem",
"certs/server-cert.pem",
"certs/server-key.pem", SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE);
ssl_c =
sslv3_init(
"certs/cacert.pem",
"certs/client-cert.pem",
"certs/client-key.pem", SSL_VERIFY_NONE);
ssl_c2 =
sslv3_init(
"certs/cacert.pem",
"certs/client-cert.pem",
"certs/client-key.pem", SSL_VERIFY_NONE);
} else if (ssl) {
ssl_s =
dtlsv1_init(
"certs/cacert.pem",
"certs/server-cert.pem",
"certs/server-key.pem", SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE);
ssl_c =
dtlsv1_init(
"certs/cacert.pem",
"certs/client-cert.pem",
"certs/client-key.pem", SSL_VERIFY_NONE);
ssl_c2 =
dtlsv1_init(
"certs/cacert.pem",
"certs/client-cert.pem",
"certs/client-key.pem", SSL_VERIFY_NONE);
}
if (tcp) {
serv =
tcpbind(ipaddr,
"1111", ssl_s, 10);
} else {
serv =
udpbind(ipaddr,
"1111", ssl_s);
}
if (serv && client && client2) {
sleep(5);
} else {
printf("ERROR\n");
}
}
#ifndef __WIN32
char *buff = "client 1";
char *buff2 = "client 2";
struct fwsocket *client, *client2, *server;
sleep(1);
sleep(5);
}
#endif
FRAMEWORK_MAIN(
"Socket Client/Server Echo (TCP/TLS/UDP/DTLS)",
"Gregory Hinton Nietsky",
"gregory@distrotech.co.za",
if (argc < 3) {
#ifndef __WIN32
printf("Requires arguments %s [tcp|tls|udp|dtls|unix_d|unix_s] [ipaddr|socket]\n", argv[0]);
#else
printf("Requires arguments %s [tcp|tls|udp|dtls] ipaddr\n", argv[0]);
#endif
return (-1);
}
if (!strcmp(argv[1], "udp")) {
} else if (!strcmp(argv[1], "dtls")) {
} else if (!strcmp(argv[1], "tcp")) {
} else if (!strcmp(argv[1], "tls")) {
#ifndef __WIN32
} else if (!strcmp(argv[1], "unix_d")) {
} else if (!strcmp(argv[1], "unix_s")) {
#endif
} else {
printf("Invalid Option\n");
}
}