Merge pull request #412 from alanbjohnston/master-psag-fm-only-fsk-r socket reset fix

socket reset fix
master-psag-fm-only-fsk
Alan Johnston 1 week ago committed by GitHub
commit 41b804bd94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -2973,7 +2973,8 @@ void get_tlm_fc() { // FUNcube Mode telemetry generation
void socket_send(int length) {
printf("Socket_send!\n");
printf("Socket_send!\n");
fflush(stdout);
int error = 0;
if (!socket_open && transmit) { // open socket if not open
@ -2983,7 +2984,7 @@ void socket_send(int length) {
struct sockaddr_in serv_addr;
// char *hello = "Hello from client";
// char buffer[1024] = {0};
error_count = 0;
// error_count = 0;
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("\n Socket creation error \n");
error = 1;
@ -3003,7 +3004,9 @@ void socket_send(int length) {
if (connect(sock, (struct sockaddr * ) & serv_addr, sizeof(serv_addr)) < 0) {
printf("\nConnection Failed \n");
printf("Error: %s\n", strerror(errno));
fflush(stdout);
error = 1;
sleep(1);
// try again
error = 0;
@ -3026,18 +3029,21 @@ void socket_send(int length) {
if (connect(sock, (struct sockaddr * ) & serv_addr, sizeof(serv_addr)) < 0) {
printf("\nConnection Failed \n");
printf("Error: %s\n", strerror(errno));
fflush(stdout);
error = 1;
sleep(1);
}
}
if (error == 1) {
printf("Socket error count: %d\n", error_count);
// ; //transmitStatus = -1;
if (error_count++ > 5) {
printf("Restarting transmit\n");
printf("Restarting transmit\n");
fflush(stdout);
FILE * transmit_restartf = popen("sudo systemctl restart transmit", "r");
pclose(transmit_restartf);
sleep(10); // was 5 // sleep if socket connection refused
}
}
}
else {
socket_open = 1;

Loading…
Cancel
Save

Powered by TurnKey Linux.