Trying to fix the reading routine
This commit is contained in:
parent
51b2a4e7d0
commit
ed0ba08d66
2
Makefile
2
Makefile
@ -2,7 +2,7 @@ CC=gcc
|
|||||||
CFLAGS=-I.
|
CFLAGS=-I.
|
||||||
|
|
||||||
hello: main.c
|
hello: main.c
|
||||||
$(CC) -o hb main.c
|
$(CC) -g -o hb main.c
|
||||||
|
|
||||||
install: hello
|
install: hello
|
||||||
install -m 744 hb /usr/local/bin
|
install -m 744 hb /usr/local/bin
|
@ -13,5 +13,10 @@ I would like to get better with C, and will be using C much more in the near fut
|
|||||||
1. Get delete working for my /etc/hosts editor.
|
1. Get delete working for my /etc/hosts editor.
|
||||||
2. Daemonize this program to be started up by systemd.
|
2. Daemonize this program to be started up by systemd.
|
||||||
- As part of daemonization, remember and remove added hosts on teardown.
|
- As part of daemonization, remember and remove added hosts on teardown.
|
||||||
|
- Can do this with an atexit handler, and a routine in main.
|
||||||
3. Log dns requests that look at the hosts file -- To see how many go where
|
3. Log dns requests that look at the hosts file -- To see how many go where
|
||||||
4. As part of daemonization -- only block hosts within a time limit.
|
4. As part of daemonization -- only block hosts within a time limit.
|
||||||
|
- Sleep, wakeup, check if time has passed or not, block/unblock host,
|
||||||
|
sleep again.
|
||||||
|
5. Read hosts to block from a config file (to not pollute the /etc/hosts file)
|
||||||
|
6. Design a unified interface for reading a hosts file.
|
||||||
|
32
main.c
32
main.c
@ -1,6 +1,7 @@
|
|||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
@ -66,14 +67,19 @@ void showHosts()
|
|||||||
void readToHost(char *host, FILE *hostsFile)
|
void readToHost(char *host, FILE *hostsFile)
|
||||||
{
|
{
|
||||||
char buf[256];
|
char buf[256];
|
||||||
char *ptr;
|
char *ptr, *f;
|
||||||
|
|
||||||
while ((fgets(buf, 256, hostsFile)) != NULL)
|
while ((ptr = fgets(buf, 256, hostsFile)) != NULL)
|
||||||
{
|
{
|
||||||
ptr = strcasestr(host, buf);
|
/**
|
||||||
if (ptr != NULL) {
|
printf("%s\n", ptr);
|
||||||
break;
|
printf("%s\n", host);
|
||||||
|
**/
|
||||||
|
|
||||||
|
f = strcasestr(host, ptr);
|
||||||
|
if (f != NULL) {
|
||||||
printf("FOUND IT\n");
|
printf("FOUND IT\n");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -83,18 +89,13 @@ void readToHost(char *host, FILE *hostsFile)
|
|||||||
*/
|
*/
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
FILE *hostsFile = NULL;
|
FILE *hostsFile = fopenHostsFile(0);
|
||||||
|
|
||||||
pid_t pid;
|
readToHost("reddit.com", hostsFile);
|
||||||
|
|
||||||
pid = fork();
|
fclose(hostsFile);
|
||||||
|
hostsFile = NULL;
|
||||||
|
|
||||||
if (pid > 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
if (getuid() != 0)
|
if (getuid() != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "hb: Must run as root using sudo!\n");
|
fprintf(stderr, "hb: Must run as root using sudo!\n");
|
||||||
@ -128,5 +129,4 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
if (hostsFile != NULL)
|
if (hostsFile != NULL)
|
||||||
fclose(hostsFile);
|
fclose(hostsFile);
|
||||||
**/
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user