differenciate new connection and client request, add tcpdump
This commit is contained in:
parent
6cc00ecac4
commit
3a42e864c6
7
Makefile
7
Makefile
@ -6,7 +6,7 @@
|
|||||||
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
|
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2022/12/01 17:27:29 by apommier #+# #+# #
|
# Created: 2022/12/01 17:27:29 by apommier #+# #+# #
|
||||||
# Updated: 2022/12/06 22:07:24 by apommier ### ########.fr #
|
# Updated: 2022/12/09 23:21:35 by apommier ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -15,10 +15,13 @@ SRCS := main.cpp\
|
|||||||
epoll.cpp\
|
epoll.cpp\
|
||||||
start_server.cpp\
|
start_server.cpp\
|
||||||
utils.cpp\
|
utils.cpp\
|
||||||
|
client_request.cpp\
|
||||||
|
new_connection.cpp\
|
||||||
server_loop.cpp
|
server_loop.cpp
|
||||||
|
|
||||||
CC = c++
|
CC = c++
|
||||||
#FLAGS = -g -Wall -Wextra -Werror
|
FLAGS = -g
|
||||||
|
#-Wall -Wextra -Werror
|
||||||
DIR_OBJ := obj
|
DIR_OBJ := obj
|
||||||
DIR_INC = -I ./includes/
|
DIR_INC = -I ./includes/
|
||||||
DIR_SRCS := ./srcs
|
DIR_SRCS := ./srcs
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/01 17:27:37 by apommier #+# #+# */
|
/* Created: 2022/12/01 17:27:37 by apommier #+# #+# */
|
||||||
/* Updated: 2022/12/06 22:06:07 by apommier ### ########.fr */
|
/* Updated: 2022/12/09 23:18:30 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -21,6 +21,17 @@
|
|||||||
#include <sys/epoll.h> //epoll ensemble
|
#include <sys/epoll.h> //epoll ensemble
|
||||||
#include <unistd.h> //close()
|
#include <unistd.h> //close()
|
||||||
|
|
||||||
|
#define MAX_EVENTS 5
|
||||||
|
#define READ_SIZE 10
|
||||||
|
|
||||||
|
struct fdList
|
||||||
|
{
|
||||||
|
int epollFd;
|
||||||
|
int serverFd;
|
||||||
|
int userList[MAX_EVENTS];
|
||||||
|
int nbrUser;
|
||||||
|
};
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* *********************************UTILS************************************ */
|
/* *********************************UTILS************************************ */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
@ -33,11 +44,18 @@ void close_fd(int fd);
|
|||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
void initialize(char **av); //1st
|
void initialize(char **av); //1st
|
||||||
void start_loop(int epollFd, int oldSock, int newSock); //3rd
|
void start_loop(fdList allFds); //3rd
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* *****************************EPOLL UTILITY******************************** */
|
/* *****************************EPOLL UTILITY******************************** */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
void epoll_add(int epollFd, int fd);
|
void epoll_add(int epollFd, int fd);
|
||||||
int epoll_start(); //2nd
|
int epoll_start(); //2nd
|
||||||
|
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* *****************************EPOLL UTILITY******************************** */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
void new_connection(struct epoll_event newClient);
|
||||||
|
bool clientRequest(fdList allFds, int newFd);
|
||||||
19
srcs/client_request.cpp
Normal file
19
srcs/client_request.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* client_request.cpp :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2022/12/09 22:34:36 by apommier #+# #+# */
|
||||||
|
/* Updated: 2022/12/09 23:18:46 by apommier ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "../includes/ft_irc.hpp"
|
||||||
|
|
||||||
|
bool clientRequest(fdList allFds, int newFd)
|
||||||
|
{
|
||||||
|
std::cout << "client request!" << std::endl;
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/01 17:27:33 by apommier #+# #+# */
|
/* Created: 2022/12/01 17:27:33 by apommier #+# #+# */
|
||||||
/* Updated: 2022/12/06 21:50:25 by apommier ### ########.fr */
|
/* Updated: 2022/12/09 23:46:24 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -16,6 +16,7 @@ int main(int ac, char **av)
|
|||||||
{
|
{
|
||||||
if (!(ac == 3 || ac == 2))
|
if (!(ac == 3 || ac == 2))
|
||||||
ft_error("wrong number of arguments\nFORMAT: ./ircserv <port> <password>");
|
ft_error("wrong number of arguments\nFORMAT: ./ircserv <port> <password>");
|
||||||
|
std::cout << "============Homemade IRC Server start============" << std::endl;
|
||||||
initialize(av);
|
initialize(av);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
@ -1,66 +0,0 @@
|
|||||||
// Server side C/C++ program to demonstrate Socket
|
|
||||||
// programming
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <iostream>
|
|
||||||
#define PORT 8080
|
|
||||||
int main(int argc, char const* argv[])
|
|
||||||
{
|
|
||||||
int server_fd, new_socket, valread;
|
|
||||||
struct sockaddr_in address;
|
|
||||||
int opt = 1;
|
|
||||||
int addrlen = sizeof(address);
|
|
||||||
char buffer[1024] = { 0 };
|
|
||||||
const char* hello = "Hello from server";
|
|
||||||
|
|
||||||
// Creating socket file descriptor
|
|
||||||
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
|
|
||||||
perror("socket failed");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Forcefully attaching socket to the port 8080
|
|
||||||
if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt)))
|
|
||||||
{
|
|
||||||
perror("setsockopt");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::cout << PORT << std::endl;
|
|
||||||
address.sin_family = AF_INET;
|
|
||||||
address.sin_addr.s_addr = INADDR_ANY;
|
|
||||||
address.sin_port = htons(PORT);
|
|
||||||
|
|
||||||
// Forcefully attaching socket to the port 8080
|
|
||||||
if (bind(server_fd, (struct sockaddr*)&address,
|
|
||||||
sizeof(address))
|
|
||||||
< 0) {
|
|
||||||
perror("bind failed");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (listen(server_fd, 3) < 0) {
|
|
||||||
perror("listen");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if ((new_socket
|
|
||||||
= accept(server_fd, (struct sockaddr*)&address,
|
|
||||||
(socklen_t*)&addrlen))
|
|
||||||
< 0) {
|
|
||||||
perror("accept");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
// valread = read(new_socket, buffer, 1024);
|
|
||||||
// printf("%s\n", buffer);
|
|
||||||
// send(new_socket, hello, strlen(hello), 0);
|
|
||||||
// printf("Hello message sent\n");
|
|
||||||
|
|
||||||
// // closing the connected socket
|
|
||||||
// close(new_socket);
|
|
||||||
// // closing the listening socket
|
|
||||||
// shutdown(server_fd, SHUT_RDWR);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
18
srcs/new_connection.cpp
Normal file
18
srcs/new_connection.cpp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* new_connection.cpp :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2022/12/09 22:26:27 by apommier #+# #+# */
|
||||||
|
/* Updated: 2022/12/09 22:38:40 by apommier ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "../includes/ft_irc.hpp"
|
||||||
|
|
||||||
|
void new_connection(struct epoll_event newClient)
|
||||||
|
{
|
||||||
|
std::cout << "new connection !" << std::endl;
|
||||||
|
}
|
||||||
@ -6,34 +6,41 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/06 21:58:13 by apommier #+# #+# */
|
/* Created: 2022/12/06 21:58:13 by apommier #+# #+# */
|
||||||
/* Updated: 2022/12/07 01:16:41 by apommier ### ########.fr */
|
/* Updated: 2022/12/09 23:56:24 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "../includes/ft_irc.hpp"
|
#include "../includes/ft_irc.hpp"
|
||||||
|
|
||||||
#define MAX_EVENTS 5
|
void start_loop(fdList allFds)
|
||||||
#define READ_SIZE 10
|
|
||||||
|
|
||||||
void start_loop(int epollFd, int oldSock, int newSock)
|
|
||||||
{
|
{
|
||||||
|
bool alive = true;
|
||||||
char buffer[1024] = { 0 };
|
char buffer[1024] = { 0 };
|
||||||
|
struct epoll_event events[MAX_EVENTS];
|
||||||
int readChar;
|
int readChar;
|
||||||
|
int eventNbr;
|
||||||
|
|
||||||
std::cout << "loop start\n";
|
while (alive)
|
||||||
while (strncmp("/quit", buffer, 5))
|
|
||||||
{
|
{
|
||||||
// std::cout << "hehe\n";
|
// std::cout << "hehe\n";
|
||||||
readChar = read(newSock, buffer, 1024);
|
// readChar = read(allFds.serverFd, buffer, 1024);
|
||||||
buffer[readChar] = '\0';
|
//recv(int allFds.serverFd, void *buf, size_t len, int flags);
|
||||||
std::cout << "buffer: " << buffer << std::endl;
|
//buffer[readChar] = '\0';
|
||||||
// send(newSock, "message received", 18, 0);
|
std::cout << "serverFd: " << allFds.serverFd << std::endl;
|
||||||
|
// send(clientFd, "message received", 18, 0);
|
||||||
|
|
||||||
//event_count = epoll_wait(epoll_fd, events, MAX_EVENTS, 30000);
|
eventNbr = epoll_wait(allFds.epollFd, events, MAX_EVENTS, 5000);
|
||||||
//for (i = 0; i < event_count; i++)
|
std::cout << "eventNbr: " << eventNbr << std::endl;
|
||||||
//{
|
for (int i = 0; i < eventNbr; i++)
|
||||||
|
{
|
||||||
//}
|
std::cout << "event[i]'s fd: " << events[i].data.fd << std::endl;
|
||||||
|
if (events[i].data.fd == allFds.serverFd)
|
||||||
|
new_connection(events[i]);
|
||||||
|
else if (!clientRequest(allFds, events[i].data.fd))
|
||||||
|
alive = false;
|
||||||
|
//if (strncmp("QUIT", buffer, 4))
|
||||||
|
// alive = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!strncmp("/quit", buffer, 5))
|
if (!strncmp("/quit", buffer, 5))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/06 21:44:20 by apommier #+# #+# */
|
/* Created: 2022/12/06 21:44:20 by apommier #+# #+# */
|
||||||
/* Updated: 2022/12/07 01:25:31 by apommier ### ########.fr */
|
/* Updated: 2022/12/09 23:57:24 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -14,17 +14,18 @@
|
|||||||
|
|
||||||
void initialize(char **av)
|
void initialize(char **av)
|
||||||
{
|
{
|
||||||
int sockFd;
|
//int allFds.serverFd;
|
||||||
int epollFd;
|
//int epollFd;
|
||||||
int newSockFd = 0;
|
//int newSockFd = 0;
|
||||||
int opt = 1;
|
int opt = 1;
|
||||||
struct sockaddr_in addr;
|
struct sockaddr_in addr;
|
||||||
int addrLen = sizeof(addr);
|
int addrLen = sizeof(addr);
|
||||||
|
fdList allFds;
|
||||||
|
|
||||||
sockFd = socket(AF_INET, SOCK_STREAM, 0);
|
allFds.serverFd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
if (sockFd == -1)
|
if (allFds.serverFd == -1)
|
||||||
ft_error("socket() error");
|
ft_error("socket() error");
|
||||||
if (setsockopt(sockFd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt)))
|
if (setsockopt(allFds.serverFd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt)))
|
||||||
ft_error("setsockopt() error");
|
ft_error("setsockopt() error");
|
||||||
|
|
||||||
addr.sin_port = htons(atoi(av[1]));
|
addr.sin_port = htons(atoi(av[1]));
|
||||||
@ -33,26 +34,25 @@ void initialize(char **av)
|
|||||||
|
|
||||||
if (addr.sin_port <= 0)
|
if (addr.sin_port <= 0)
|
||||||
ft_error("wrong format for <port>\nneed to be an positive integer");
|
ft_error("wrong format for <port>\nneed to be an positive integer");
|
||||||
if (bind(sockFd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
|
if (bind(allFds.serverFd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
|
||||||
ft_error("bind() error");
|
ft_error("bind() error");
|
||||||
if (listen(sockFd, 100) == -1)
|
if (listen(allFds.serverFd, 100) == -1)
|
||||||
ft_error("listen() error");
|
ft_error("listen() error");
|
||||||
newSockFd = accept(sockFd, (struct sockaddr *)&addr, (socklen_t*)&addrLen);
|
|
||||||
if (newSockFd == -1)
|
// newSockFd = accept(allFds.serverFd, (struct sockaddr *)&addr, (socklen_t*)&addrLen);
|
||||||
ft_error("accept() error");
|
// if (newSockFd == -1)
|
||||||
|
// ft_error("accept() error");
|
||||||
|
|
||||||
char buffer[1024];
|
// char buffer[1024];
|
||||||
int nbrRead;
|
// int nbrRead;
|
||||||
while (strncmp("/quit", buffer, 5))
|
// while (strncmp("/quit", buffer, 5))
|
||||||
{
|
// {
|
||||||
nbrRead = read()
|
// nbrRead = read()
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
epollFd = epoll_start();
|
|
||||||
epoll_add(epollFd, newSockFd);
|
|
||||||
start_loop(epollFd, sockFd, newSockFd);
|
|
||||||
|
|
||||||
|
allFds.epollFd = epoll_start();
|
||||||
|
epoll_add(allFds.epollFd, allFds.serverFd);
|
||||||
|
start_loop(allFds);
|
||||||
|
|
||||||
//send(newSockFd, "hello", 5, 0);
|
//send(newSockFd, "hello", 5, 0);
|
||||||
}
|
}
|
||||||
11
tcpdump/Dockerfile
Normal file
11
tcpdump/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
from debian:11
|
||||||
|
|
||||||
|
run apt-get update && apt-get upgrade -y \
|
||||||
|
&& apt-get install -y openssl vim iproute2 tcpdump inspircd \
|
||||||
|
&& mkdir /var/run/inspircd
|
||||||
|
|
||||||
|
COPY ./irc_conf /etc/inspircd
|
||||||
|
|
||||||
|
expose 6667
|
||||||
|
|
||||||
|
cmd inspircd --runasroot ; tail -f
|
||||||
106
tcpdump/irc_conf/inspircd.conf
Normal file
106
tcpdump/irc_conf/inspircd.conf
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
# This is just a more or less working example configuration file, please
|
||||||
|
# customize it for your needs!
|
||||||
|
#
|
||||||
|
# Once more: Please see the examples in /usr/share/doc/inspircd/examples/
|
||||||
|
|
||||||
|
<server name="irc.local"
|
||||||
|
description="Local IRC Server"
|
||||||
|
network="Localnet">
|
||||||
|
|
||||||
|
<admin name="Root Penguin"
|
||||||
|
nick="Nick"
|
||||||
|
email="root@localhost">
|
||||||
|
|
||||||
|
<bind address="0.0.0.0" port="6667" type="clients">
|
||||||
|
|
||||||
|
<power diepass="3456" restartpass="7890" pause="2">
|
||||||
|
|
||||||
|
<connect allow="*"
|
||||||
|
timeout="60"
|
||||||
|
flood="20"
|
||||||
|
threshold="1"
|
||||||
|
pingfreq="120"
|
||||||
|
sendq="262144"
|
||||||
|
recvq="8192"
|
||||||
|
localmax="3"
|
||||||
|
globalmax="3">
|
||||||
|
|
||||||
|
<class name="Shutdown"
|
||||||
|
commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOAD">
|
||||||
|
<class name="ServerLink"
|
||||||
|
commands="CONNECT SQUIT RCONNECT MKPASSWD MKSHA256">
|
||||||
|
<class name="BanControl"
|
||||||
|
commands="KILL GLINE KLINE ZLINE QLINE ELINE">
|
||||||
|
<class name="OperChat"
|
||||||
|
commands="WALLOPS GLOBOPS SETIDLE SPYLIST SPYNAMES">
|
||||||
|
<class name="HostCloak"
|
||||||
|
commands="SETHOST SETIDENT SETNAME CHGHOST CHGIDENT">
|
||||||
|
|
||||||
|
<type name="NetAdmin"
|
||||||
|
classes="OperChat BanControl HostCloak Shutdown ServerLink"
|
||||||
|
host="netadmin.omega.org.za">
|
||||||
|
<type name="GlobalOp"
|
||||||
|
classes="OperChat BanControl HostCloak ServerLink"
|
||||||
|
host="ircop.omega.org.za">
|
||||||
|
<type name="Helper"
|
||||||
|
classes="HostCloak"
|
||||||
|
host="helper.omega.org.za">
|
||||||
|
|
||||||
|
<oper name="root"
|
||||||
|
password="12345"
|
||||||
|
host="*@localhost"
|
||||||
|
type="NetAdmin">
|
||||||
|
|
||||||
|
<files motd="/etc/inspircd/inspircd.motd"
|
||||||
|
rules="/etc/inspircd/inspircd.rules">
|
||||||
|
|
||||||
|
<channels users="20"
|
||||||
|
opers="60">
|
||||||
|
|
||||||
|
<dns server="127.0.0.1" timeout="5">
|
||||||
|
|
||||||
|
<pid file="/var/run/inspircd/inspircd.pid">
|
||||||
|
|
||||||
|
<options prefixquit="Quit: "
|
||||||
|
noservices="no"
|
||||||
|
qaprefixes="no"
|
||||||
|
deprotectself="no"
|
||||||
|
deprotectothers="no"
|
||||||
|
flatlinks="no"
|
||||||
|
hideulines="no"
|
||||||
|
syntaxhints="no"
|
||||||
|
cyclehosts="yes"
|
||||||
|
ircumsgprefix="no"
|
||||||
|
announcets="yes"
|
||||||
|
disablehmac="no"
|
||||||
|
hostintopic="yes"
|
||||||
|
quietbursts="yes"
|
||||||
|
pingwarning="15"
|
||||||
|
allowhalfop="yes"
|
||||||
|
exemptchanops="">
|
||||||
|
|
||||||
|
<security hidewhois=""
|
||||||
|
userstats="Pu"
|
||||||
|
customversion=""
|
||||||
|
hidesplits="no"
|
||||||
|
hidebans="no"
|
||||||
|
operspywhois="no"
|
||||||
|
hidemodes="eI"
|
||||||
|
maxtargets="20">
|
||||||
|
|
||||||
|
<performance nouserdns="no"
|
||||||
|
maxwho="128"
|
||||||
|
softlimit="1024"
|
||||||
|
somaxconn="128"
|
||||||
|
netbuffersize="10240">
|
||||||
|
|
||||||
|
<whowas groupsize="10"
|
||||||
|
maxgroups="100000"
|
||||||
|
maxkeep="3d">
|
||||||
|
|
||||||
|
<timesync enable="no" master="no">
|
||||||
|
|
||||||
|
<badnick nick="ChanServ" reason="Reserved For Services">
|
||||||
|
<badnick nick="NickServ" reason="Reserved For Services">
|
||||||
|
<badnick nick="OperServ" reason="Reserved For Services">
|
||||||
|
<badnick nick="MemoServ" reason="Reserved For Services">
|
||||||
6
tcpdump/irc_conf/inspircd.motd
Normal file
6
tcpdump/irc_conf/inspircd.motd
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
+---------------------------------------------------+
|
||||||
|
| z I R C o n |
|
||||||
|
+---------------------------------------------------+
|
||||||
|
Sitio's testing server
|
||||||
|
|
||||||
|
GTFO if not invited
|
||||||
11
tcpdump/launch_tcpdump.sh
Normal file
11
tcpdump/launch_tcpdump.sh
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
IMAGE_NAME="ttt"
|
||||||
|
CONTAINER_NAME=$IMAGE_NAME
|
||||||
|
|
||||||
|
docker build ./ -t $IMAGE_NAME
|
||||||
|
docker images
|
||||||
|
docker ps -a
|
||||||
|
docker run -d -p 6667:6667 --name $CONTAINER_NAME $IMAGE_NAME
|
||||||
|
docker exec -it $CONTAINER_NAME tcpdump -Aqq port 6667
|
||||||
|
|
||||||
1
tcpdump/log.txt
Normal file
1
tcpdump/log.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
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
|
||||||
11
tcpdump/main.c
Normal file
11
tcpdump/main.c
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
ssize_t i = 0;
|
||||||
|
|
||||||
|
i = send(2222, "hello", 6, 0);
|
||||||
|
|
||||||
|
return (i);
|
||||||
|
|
||||||
|
}
|
||||||
20
tcpdump/main.cpp
Normal file
20
tcpdump/main.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include <vector>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
|
||||||
|
void print(std::string c)
|
||||||
|
{
|
||||||
|
if (c == "")
|
||||||
|
std::cout << "NULL" << std::endl;
|
||||||
|
std::cout << c << std::endl;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
|
||||||
|
std::vector<std::string> vec;
|
||||||
|
|
||||||
|
vec.insert(vec.begin(), "bonjour");
|
||||||
|
print(vec[3]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user