Debug sessie uit de hel
This commit is contained in:
parent
0bb33f109d
commit
cce9a84554
1 changed files with 16 additions and 87 deletions
|
@ -22,94 +22,15 @@ bool inited = false;
|
||||||
bool stopparsing = false;
|
bool stopparsing = false;
|
||||||
timeval lastrec;
|
timeval lastrec;
|
||||||
|
|
||||||
|
#define DEFAULT_PORT 1935
|
||||||
|
#include "../util/server_setup.cpp"
|
||||||
|
|
||||||
int CONN_fd = 0;
|
int CONN_fd = 0;
|
||||||
#include "../util/ddv_socket.cpp" //DDVTech Socket wrapper
|
|
||||||
#include "../util/flv_sock.cpp" //FLV parsing with SocketW
|
|
||||||
#include "parsechunks.cpp" //chunkstream parsing
|
#include "parsechunks.cpp" //chunkstream parsing
|
||||||
#include "handshake.cpp" //handshaking
|
#include "handshake.cpp" //handshaking
|
||||||
|
|
||||||
|
int mainHandler(int connection){
|
||||||
|
CONN_fd = connection;
|
||||||
int server_socket = 0;
|
|
||||||
|
|
||||||
void termination_handler (int signum){
|
|
||||||
if (server_socket == 0) return;
|
|
||||||
switch (signum){
|
|
||||||
case SIGINT: break;
|
|
||||||
case SIGHUP: break;
|
|
||||||
case SIGTERM: break;
|
|
||||||
default: return; break;
|
|
||||||
}
|
|
||||||
close(server_socket);
|
|
||||||
server_socket = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char ** argv){
|
|
||||||
//setup signal handler
|
|
||||||
struct sigaction new_action;
|
|
||||||
new_action.sa_handler = termination_handler;
|
|
||||||
sigemptyset (&new_action.sa_mask);
|
|
||||||
new_action.sa_flags = 0;
|
|
||||||
sigaction(SIGINT, &new_action, NULL);
|
|
||||||
sigaction(SIGHUP, &new_action, NULL);
|
|
||||||
sigaction(SIGTERM, &new_action, NULL);
|
|
||||||
sigaction(SIGPIPE, &new_action, NULL);
|
|
||||||
|
|
||||||
int listen_port = 1935;
|
|
||||||
bool daemon_mode = true;
|
|
||||||
|
|
||||||
int opt = 0;
|
|
||||||
static const char *optString = "np:h?";
|
|
||||||
static const struct option longOpts[] = {
|
|
||||||
{"help",0,0,'h'},
|
|
||||||
{"port",1,0,'p'},
|
|
||||||
{"no-daemon",0,0,'n'}
|
|
||||||
};
|
|
||||||
while ((opt = getopt_long(argc, argv, optString, longOpts, 0)) != -1){
|
|
||||||
switch (opt){
|
|
||||||
case 'p':
|
|
||||||
listen_port = atoi(optarg);
|
|
||||||
break;
|
|
||||||
case 'n':
|
|
||||||
daemon_mode = false;
|
|
||||||
break;
|
|
||||||
case 'h':
|
|
||||||
case '?':
|
|
||||||
printf("Options: -h[elp], -?, -n[o-daemon], -p[ort] #\n");
|
|
||||||
return 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
server_socket = DDV_Listen(listen_port);
|
|
||||||
fprintf(stderr, "Made a listening socket on port %i...\n", listen_port);
|
|
||||||
if (server_socket > 0){
|
|
||||||
if (daemon_mode){
|
|
||||||
daemon(1, 0);
|
|
||||||
fprintf(stderr, "Going into background mode...");
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
fprintf(stderr, "Error: could not make listening socket");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
int status;
|
|
||||||
while (server_socket > 0){
|
|
||||||
waitpid((pid_t)-1, &status, WNOHANG);
|
|
||||||
CONN_fd = DDV_Accept(server_socket);
|
|
||||||
if (CONN_fd > 0){
|
|
||||||
pid_t myid = fork();
|
|
||||||
if (myid == 0){
|
|
||||||
break;
|
|
||||||
}else{
|
|
||||||
fprintf(stderr, "Spawned new process %i for handling socket %i\n", (int)myid, CONN_fd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (server_socket <= 0){
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int ts;
|
unsigned int ts;
|
||||||
unsigned int fts = 0;
|
unsigned int fts = 0;
|
||||||
unsigned int ftst;
|
unsigned int ftst;
|
||||||
|
@ -141,7 +62,8 @@ int main(int argc, char ** argv){
|
||||||
struct epoll_event events[1];
|
struct epoll_event events[1];
|
||||||
|
|
||||||
|
|
||||||
|
FILE * tmpfile = 0;
|
||||||
|
char tmpstr[200];
|
||||||
|
|
||||||
while (!socketError && !All_Hell_Broke_Loose){
|
while (!socketError && !All_Hell_Broke_Loose){
|
||||||
//only parse input if available or not yet init'ed
|
//only parse input if available or not yet init'ed
|
||||||
|
@ -180,9 +102,11 @@ int main(int argc, char ** argv){
|
||||||
fprintf(stderr, "Everything connected, starting to send video data...\n");
|
fprintf(stderr, "Everything connected, starting to send video data...\n");
|
||||||
#endif
|
#endif
|
||||||
inited = true;
|
inited = true;
|
||||||
|
sprintf(tmpstr, "./tmpfile_socket_%i.flv", CONN_fd);
|
||||||
|
tmpfile = fopen(tmpstr, "w");
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = epoll_wait(poller, events, 1, 1);
|
retval = epoll_wait(sspoller, events, 1, 1);
|
||||||
switch (DDV_ready(ss)){
|
switch (DDV_ready(ss)){
|
||||||
case 0:
|
case 0:
|
||||||
socketError = true;
|
socketError = true;
|
||||||
|
@ -213,6 +137,10 @@ int main(int argc, char ** argv){
|
||||||
tag->data[6] = ftst % 256;
|
tag->data[6] = ftst % 256;
|
||||||
}
|
}
|
||||||
SendMedia((unsigned char)tag->data[0], (unsigned char *)tag->data+11, tag->len-15, ts);
|
SendMedia((unsigned char)tag->data[0], (unsigned char *)tag->data+11, tag->len-15, ts);
|
||||||
|
|
||||||
|
fwrite(tag->data, tag->len, 1, tmpfile);
|
||||||
|
|
||||||
|
|
||||||
lastcheck = getNowMS();
|
lastcheck = getNowMS();
|
||||||
#if DEBUG >= 4
|
#if DEBUG >= 4
|
||||||
fprintf(stderr, "Sent a tag to %i\n", CONN_fd);
|
fprintf(stderr, "Sent a tag to %i\n", CONN_fd);
|
||||||
|
@ -229,6 +157,7 @@ int main(int argc, char ** argv){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
close(CONN_fd);
|
close(CONN_fd);
|
||||||
|
fclose(tmpfile);
|
||||||
if (inited) close(ss);
|
if (inited) close(ss);
|
||||||
#if DEBUG >= 1
|
#if DEBUG >= 1
|
||||||
if (All_Hell_Broke_Loose){fprintf(stderr, "All Hell Broke Loose\n");}
|
if (All_Hell_Broke_Loose){fprintf(stderr, "All Hell Broke Loose\n");}
|
||||||
|
@ -244,4 +173,4 @@ int main(int argc, char ** argv){
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}//main
|
}//mainHandler
|
||||||
|
|
Loading…
Add table
Reference in a new issue