From d8966aae22f65d153a14c7c7088854acf43d6b2a Mon Sep 17 00:00:00 2001 From: TheTesla Date: Sun, 30 Mar 2014 20:29:30 +0200 Subject: [PATCH] killswitch implemented --- UDPclient.depend | 13 +++++++- bin/Debug/UDPclient | Bin 38620 -> 46082 bytes checkkillswitch.c | 62 ++++++++++++++++++++++++++++++++++++ checkkillswitch.h | 15 +++++++++ client.config | 1 + main.c | 17 +++++++++- obj/Debug/checkkillswitch.o | Bin 0 -> 7952 bytes obj/Debug/main.o | Bin 24896 -> 25480 bytes 8 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 checkkillswitch.c create mode 100644 checkkillswitch.h create mode 100644 obj/Debug/checkkillswitch.o diff --git a/UDPclient.depend b/UDPclient.depend index 8e2aa30..290f548 100644 --- a/UDPclient.depend +++ b/UDPclient.depend @@ -172,6 +172,17 @@ -1395876458 source:/home/chch/HengLongUDPclient/checkvideo.c +1395878369 source:/home/chch/HengLongUDPclient/checkvideo.c "checkvideo.h" +1396204073 source:/home/chch/HengLongUDPclient/checkkillswitch.c + "checkkillswitch.h" + +1396202748 /home/chch/HengLongUDPclient/checkkillswitch.h + + + + + + + diff --git a/bin/Debug/UDPclient b/bin/Debug/UDPclient index 3181e890934282e62d0f3338b0efbc1db4c942ce..14bed8e2d0ce33fff5c946f019cab59ed6c1d7d7 100755 GIT binary patch literal 46082 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 CrY!OR literal 38620 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 bUdYq3&Sd93875n$-=JW#SqF%|Xqf*20}0T5 diff --git a/checkkillswitch.c b/checkkillswitch.c new file mode 100644 index 0000000..f50099a --- /dev/null +++ b/checkkillswitch.c @@ -0,0 +1,62 @@ + +#include "checkkillswitch.h" + + +int getPage(char* ip, uint16_t port, char* url, char* recvBuffer, uint32_t size) +{ + int sockfd = 0, n = 0; + //char recvBuff[1024]; + char sendBuff[1024]; + struct sockaddr_in serv_addr; + + memset(recvBuffer, '0',size); + if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) + { + printf("\n Error : Could not create socket \n"); + return 1; + } + + memset(&serv_addr, '0', sizeof(serv_addr)); + + serv_addr.sin_family = AF_INET; + serv_addr.sin_port = htons(port); + + if(inet_pton(AF_INET, ip, &serv_addr.sin_addr)<=0) + { + printf("\n inet_pton error occured\n"); + return 1; + } + + if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) + { + printf("\n Error : Connect Failed \n"); + return 1; + } + + sprintf(sendBuff, "GET %s HTTP/1.1\r\nHost: %s\r\n\r\n", url, ip); + + n = write(sockfd, sendBuff, strlen(sendBuff)); + + n = read(sockfd, recvBuffer, size-1); + recvBuffer[n] = 0; + + printf("%s\n", recvBuffer); + + if(n < 0) + { + printf("\n Read error \n"); + } + close(sockfd); + return n; +} + +int checkkillswitch(char* ip, uint16_t port, char* url) +{ + char rb[1024]; + int n; + if(0==ip[0]) return 0; + getPage(ip, port, url, rb, sizeof(rb)); + n = strstr(rb, "true"); + if(NULL != n) return 1; + return 0; +} diff --git a/checkkillswitch.h b/checkkillswitch.h new file mode 100644 index 0000000..ce62b0c --- /dev/null +++ b/checkkillswitch.h @@ -0,0 +1,15 @@ +#ifndef CHECKKILLSWITCH_H_INCLUDED +#define CHECKKILLSWITCH_H_INCLUDED + +#include +#include +#include +#include +#include +#include + + +int getPage(char* ip, uint16_t port, char* url, char* recvBuffer, uint32_t size); +int checkkillswitch(char* ip, uint16_t port, char* url); + +#endif // CHECKKILLSWITCH_H_INCLUDED diff --git a/client.config b/client.config index 859ca9b..0509e6b 100644 --- a/client.config +++ b/client.config @@ -9,3 +9,4 @@ SERVER 192.168.1.13:32000 TIMEOUT 250 CLINBR 0 VIDEO 192.168.1.20:8080 +KILLSW 192.168.1.20:8080/status diff --git a/main.c b/main.c index 5fdc451..972d69d 100644 --- a/main.c +++ b/main.c @@ -24,6 +24,7 @@ #include "wansview.h" #include "extern.h" #include "checkvideo.h" +#include "checkkillswitch.h" typedef struct outtty_t { @@ -266,10 +267,12 @@ typedef struct henglongconf_t in_addr_t ip; // v4 only char cam[64]; char video[16]; + char killsw[16]; + char killurl[256]; char user[64]; char pwd[64]; uint32_t caminterval; - uint16_t port, videoport; + uint16_t port, videoport, killport; uint8_t timeout; uint8_t clinbr; } henglongconf_t; @@ -296,6 +299,9 @@ henglongconf_t getconfig(char* conffilename) conf.pwd[0] = 0; conf.video[0] = 0; conf.videoport = 0; + conf.killsw[0] = 0; + conf.killport = 0; + conf.killurl[0] = 0; while(fgets(line, 256, configFile)){ sscanf(line, "%16s %256s", parameter, value); if(0==strcmp(parameter,"KEYBOARD")){ @@ -332,6 +338,9 @@ henglongconf_t getconfig(char* conffilename) if(0==strcmp(parameter,"VIDEO")){ sscanf(value, "%16[^:]:%" SCNu16, conf.video, &conf.videoport); } + if(0==strcmp(parameter,"KILLSW")){ + sscanf(value, "%16[^:]:%" SCNu16 "%256s", conf.killsw, &conf.killport, conf.killurl); + } } return conf; } @@ -374,6 +383,7 @@ void *cam_ctrl_thread_fcn(void* arg) int main(int argc, char* argv[]) { + pthread_t keybthread, joythread, refl_thread, cam_ctrl_thread; input_thread_t keyboard_thread_args; input_thread_t joystick_thread_args; @@ -456,6 +466,11 @@ int main(int argc, char* argv[]) printf("No video stream connection from %s:%u, remote control locked!\n", conf.video, conf.videoport); continue; } + if(0==checkkillswitch(conf.killsw,conf.killport,conf.killurl)){ + printf("Killswitch pressed or no connection.!\n"); + continue; + } + frame = 0xc0ffee; time_us = get_us(); diff --git a/obj/Debug/checkkillswitch.o b/obj/Debug/checkkillswitch.o new file mode 100644 index 0000000000000000000000000000000000000000..c654baeac695557f09b753e8bbff574ca04459f2 GIT binary patch literal 7952 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 delta 10950 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