mirror of
https://github.com/ChronosX88/netsukuku.git
synced 2024-11-23 02:32:18 +00:00
I've removed some stuff that wasn't really needed, Like that second thread, And I've added more uptime information, Along with some other stuff. This still produces a segmentation fault, Though, So, I will need to keep working/get help on and with this. Anyway, Thank you for reading!
This commit is contained in:
parent
e542a51345
commit
c6209e0436
@ -1,7 +1,5 @@
|
|||||||
LDLIBS=-pthread
|
|
||||||
LIBS=-pthread
|
|
||||||
C=clang
|
C=clang
|
||||||
DEBUG=-g -Wfatal-errors -pedantic -Wunreachable-code -Winline -Wredundant-decls -Wno-vla
|
DEBUG=-g -fno-builtin -Wfatal-errors -pedantic -Wunreachable-code -Winline -Wredundant-decls -Wno-vla
|
||||||
CFLAGS=-Wall ${DEBUG}
|
CFLAGS=-Wall ${DEBUG}
|
||||||
SRCBIN=Netsukuku-Console
|
SRCBIN=Netsukuku-Console
|
||||||
|
|
||||||
|
@ -1,33 +1,5 @@
|
|||||||
#include <pthread.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <utmp.h>
|
|
||||||
#include <sys/un.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include "Netsukuku-Console.h"
|
#include "Netsukuku-Console.h"
|
||||||
|
|
||||||
int sockfd, sockfd1, sendrecv;
|
|
||||||
struct sockaddr_un serveraddr;
|
|
||||||
struct sockaddr ntkdaddr;
|
|
||||||
int rc, length, exit_now;
|
|
||||||
char *request, *response;
|
|
||||||
|
|
||||||
time_t rawtime;
|
|
||||||
struct tm *timeinfo;
|
|
||||||
|
|
||||||
int uptime_sec;
|
|
||||||
int uptime_min;
|
|
||||||
int uptime_hr;
|
|
||||||
|
|
||||||
void usage();
|
|
||||||
|
|
||||||
void clean_up();
|
|
||||||
|
|
||||||
int validity_check(void) {
|
int validity_check(void) {
|
||||||
|
|
||||||
if(request && strncmp(request, "null", (int)strlen(request)) != 0) {
|
if(request && strncmp(request, "null", (int)strlen(request)) != 0) {
|
||||||
@ -82,10 +54,8 @@ int validity_check(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* this function is run by the second thread */
|
/* this function is run by the second thread */
|
||||||
void *ntkd_request(void *argv) {
|
void ntkd_request(void) {
|
||||||
|
|
||||||
while(usleep(200)) {
|
|
||||||
while(request && sendrecv == 1 && strncmp(request, "null", (int)strlen(request) != 0)) {
|
|
||||||
rc = sendto(sockfd1, request, strlen(request), 0, (struct sockaddr *)&serveraddr, (socklen_t)sizeof(&serveraddr));
|
rc = sendto(sockfd1, request, strlen(request), 0, (struct sockaddr *)&serveraddr, (socklen_t)sizeof(&serveraddr));
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
perror("sendto() failed");
|
perror("sendto() failed");
|
||||||
@ -102,10 +72,6 @@ void *ntkd_request(void *argv) {
|
|||||||
printf("Sent and received Successfully!\n The Response was) %s", response);
|
printf("Sent and received Successfully!\n The Response was) %s", response);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void opensocket(void) {
|
void opensocket(void) {
|
||||||
@ -132,7 +98,11 @@ void console_uptime(void) {
|
|||||||
|
|
||||||
int uptime_sec1;
|
int uptime_sec1;
|
||||||
int uptime_min1;
|
int uptime_min1;
|
||||||
int uptime_hr1;
|
int uptime_hour1;
|
||||||
|
|
||||||
|
int uptime_day1;
|
||||||
|
int uptime_month1;
|
||||||
|
int uptime_year1;
|
||||||
|
|
||||||
time(&rawtime);
|
time(&rawtime);
|
||||||
|
|
||||||
@ -140,13 +110,21 @@ void console_uptime(void) {
|
|||||||
|
|
||||||
uptime_sec1 = timeinfo->tm_sec;
|
uptime_sec1 = timeinfo->tm_sec;
|
||||||
uptime_min1 = timeinfo->tm_min;
|
uptime_min1 = timeinfo->tm_min;
|
||||||
uptime_hr1 = timeinfo->tm_hour;
|
uptime_hour1 = timeinfo->tm_hour;
|
||||||
|
|
||||||
|
uptime_day1 = timeinfo->tm_mday;
|
||||||
|
uptime_month1 = timeinfo->tm_mon;
|
||||||
|
uptime_year1 = timeinfo->tm_year;
|
||||||
|
|
||||||
uptime_sec1 -= uptime_sec;
|
uptime_sec1 -= uptime_sec;
|
||||||
uptime_min1 -= uptime_min;
|
uptime_min1 -= uptime_min;
|
||||||
uptime_hr1 -= uptime_hr;
|
uptime_hour1 -= uptime_hour;
|
||||||
|
|
||||||
printf("Total Uptime is: %i, %i, %i\n", uptime_hr1, uptime_min1, uptime_sec1);
|
uptime_day1 -= uptime_day;
|
||||||
|
uptime_month1 -= uptime_month;
|
||||||
|
uptime_year1 -= uptime_year;
|
||||||
|
|
||||||
|
printf("Total Uptime is: %i Year(s), %i Month(s), %i Day(s), %i Hour(s), %i Minute(s), %i Second(s)\n",uptime_year1, uptime_month1, uptime_day1, uptime_hour1, uptime_min1, uptime_sec1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +154,7 @@ void console(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(validity_check() == 0)
|
if(validity_check() == 0)
|
||||||
sendrecv = 1;
|
ntkd_request();
|
||||||
|
|
||||||
if(validity_check() == 1)
|
if(validity_check() == 1)
|
||||||
usage();
|
usage();
|
||||||
@ -186,13 +164,11 @@ void console(void) {
|
|||||||
|
|
||||||
if(validity_check() == 3) {
|
if(validity_check() == 3) {
|
||||||
printf("%s", VERSION_STR);
|
printf("%s", VERSION_STR);
|
||||||
sendrecv = 1;
|
ntkd_request();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(validity_check() == 4)
|
if(validity_check() == 4)
|
||||||
console_uptime();
|
console_uptime();
|
||||||
|
|
||||||
sendrecv = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -204,7 +180,7 @@ int main(void) {
|
|||||||
|
|
||||||
fgets(request_buf, 16, stdin);
|
fgets(request_buf, 16, stdin);
|
||||||
|
|
||||||
printf("uhm %s", request_buf);
|
printf("uhm: %s", request_buf);
|
||||||
|
|
||||||
sendrecv = 0;
|
sendrecv = 0;
|
||||||
|
|
||||||
@ -216,27 +192,15 @@ int main(void) {
|
|||||||
|
|
||||||
uptime_sec = timeinfo->tm_sec;
|
uptime_sec = timeinfo->tm_sec;
|
||||||
uptime_min = timeinfo->tm_min;
|
uptime_min = timeinfo->tm_min;
|
||||||
uptime_hr = timeinfo->tm_hour;
|
uptime_hour = timeinfo->tm_hour;
|
||||||
|
uptime_day = timeinfo->tm_mday;
|
||||||
|
uptime_month = timeinfo->tm_mon;
|
||||||
|
uptime_year = timeinfo->tm_year;
|
||||||
|
|
||||||
opensocket();
|
opensocket();
|
||||||
|
|
||||||
printf("This is the Netsukuku Console, Please type 'help' for more information.\n");
|
printf("This is the Netsukuku Console, Please type 'help' for more information.\n");
|
||||||
|
|
||||||
/* This variable is our reference to the second thread */
|
|
||||||
pthread_t NtkdRequest;
|
|
||||||
|
|
||||||
/* Create a second thread which executes ntkd_request() */
|
|
||||||
if(pthread_create(&NtkdRequest, NULL, ntkd_request, 0)) {
|
|
||||||
fprintf(stderr, "Error creating thread\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Detach the second thread */
|
|
||||||
if(pthread_detach(NtkdRequest)) {
|
|
||||||
fprintf(stderr, "Error detaching thread\n");
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
|
|
||||||
console();
|
console();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1,8 +1,39 @@
|
|||||||
#ifndef NETSUKUKUCONSOLE_H
|
#ifndef NETSUKUKUCONSOLE_H
|
||||||
#define NETSUKUKUCONSOLE_H
|
#define NETSUKUKUCONSOLE_H
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <utmp.h>
|
||||||
|
#include <sys/un.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#define SERVER_PATH "/tmp/ntk-console"
|
#define SERVER_PATH "/tmp/ntk-console"
|
||||||
#define VERSION_STR "0.0.1"
|
#define VERSION_STR "0.0.1"
|
||||||
#define FALSE 0
|
#define FALSE 0
|
||||||
|
|
||||||
|
int sockfd, sockfd1, sendrecv;
|
||||||
|
struct sockaddr_un serveraddr;
|
||||||
|
struct sockaddr ntkdaddr;
|
||||||
|
int rc, length, exit_now;
|
||||||
|
char *request, *response;
|
||||||
|
|
||||||
|
time_t rawtime;
|
||||||
|
struct tm *timeinfo;
|
||||||
|
|
||||||
|
int uptime_sec;
|
||||||
|
int uptime_min;
|
||||||
|
int uptime_hour;
|
||||||
|
int uptime_day;
|
||||||
|
int uptime_month;
|
||||||
|
int uptime_year;
|
||||||
|
|
||||||
|
void usage();
|
||||||
|
|
||||||
|
void clean_up();
|
||||||
|
|
||||||
#endif /*NETSUKUKUCONSOLE_H*/
|
#endif /*NETSUKUKUCONSOLE_H*/
|
Loading…
Reference in New Issue
Block a user