Initialized the rhosts c files
parent
4996513636
commit
3bf49028a4
|
|
@ -0,0 +1,82 @@
|
|||
/* rhosts - Program used to maintain a blocklist within a hostfile */
|
||||
#include "rhosts.h"
|
||||
|
||||
|
||||
int main(int argc, char *argv[]){
|
||||
FILE *hostsfile;
|
||||
FILE *tmpfile;
|
||||
FILE *downloadfile;
|
||||
FILE *configfile;
|
||||
struct entry *entries;
|
||||
int rc =0;
|
||||
|
||||
rc = openfile(&hostsfile, "r+", HOSTSLOCATION);
|
||||
if (rc != 0){return rc;}
|
||||
rc = openfile(&tmpfile, "w+", TMPLOCATION);
|
||||
if (rc != 0){return rc;}
|
||||
rc = openfile(&downloadfile, "w+", TMPDOWNLOADLOCATION);
|
||||
if (rc != 0){return rc;}
|
||||
|
||||
parse_config(&entries);
|
||||
|
||||
|
||||
// Closing files before exiting
|
||||
|
||||
rc = closefile(&hostsfile, HOSTSLOCATION);
|
||||
if (rc != 0){return rc;}
|
||||
rc = closefile(&tmpfile, TMPLOCATION);
|
||||
if (rc != 0){return rc;}
|
||||
rc = remove(TMPLOCATION);
|
||||
if (rc != 0){return rc;}
|
||||
rc = closefile(&downloadfile, TMPDOWNLOADLOCATION);
|
||||
if (rc != 0){return rc;}
|
||||
rc = remove(TMPDOWNLOADLOCATION);
|
||||
if (rc != 0){return rc;}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int parse_config(struct entry **entries){
|
||||
int rc=0;
|
||||
FILE *configfile;
|
||||
configfile = fopen(CONFIGFILE, "r+");
|
||||
if (configfile == NULL){return 1;}
|
||||
*entries = malloc(sizeof(struct entry));
|
||||
entries[0]->entrytype = 0;
|
||||
char c='\0';
|
||||
char *buff = malloc(sizeof(char));
|
||||
short int valtyp = 1;
|
||||
int *j = &entries[0]->entrytype; // Used to make easier to read
|
||||
if (entries == NULL){return 1;}
|
||||
do{
|
||||
c = getc(configfile);
|
||||
buff = realloc(buff, sizeof(buff) + sizeof(char));
|
||||
buff[sizeof(buff)-1] = c;
|
||||
if (c == ':' && valtyp == 1){
|
||||
*j += 1;
|
||||
}
|
||||
|
||||
|
||||
}while (c != '\0');
|
||||
|
||||
rc = fclose(configfile);
|
||||
if (rc != 0){return 1;}
|
||||
return 0;
|
||||
}
|
||||
int closefile(FILE **file, char *location){
|
||||
int rc = 0;
|
||||
rc = fclose(*file);
|
||||
if (rc != 0){
|
||||
printf("Failed to open %s\n", location);
|
||||
return errno;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int openfile(FILE **file, char *mode, char *location){
|
||||
*file = fopen(location, mode);
|
||||
if (*file == NULL){
|
||||
printf("Failed to open %s\n", location);
|
||||
return errno;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
#ifndef RHOSTS_HEADER
|
||||
|
||||
#define RHOSTS_HEADER
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <strings.h>
|
||||
#include <errno.h>
|
||||
#ifdef _WIN64
|
||||
#define TMPLOCATION "/tmp/rhosts"
|
||||
#define TMPDOWNLOADLOCATION "/tmp/rhostsdownload"
|
||||
#define HOSTSLOCATION "/Windows/System32/drivers/etc/hosts"
|
||||
#define CONFIGFILE "/ProgramData/rhosts/rhosts.cfg"
|
||||
#elif __APPLE__
|
||||
#define TMPLOCATION "/tmp/"
|
||||
#elif __linux__
|
||||
#define TMPLOCATION "/tmp/rhosts"
|
||||
#define TMPDOWNLOADLOCATION "/tmp/rhostsdownload"
|
||||
#define HOSTSLOCATION "/etc/hosts"
|
||||
#define CONFIGFILE "/etc/rhosts/rhosts.cfg"
|
||||
#else
|
||||
#endif
|
||||
|
||||
|
||||
#define STATIC 0
|
||||
|
||||
struct entry{
|
||||
int entrytype;
|
||||
char *entry;
|
||||
};
|
||||
|
||||
int parse_config(struct entry **entries);
|
||||
|
||||
int openfile(FILE **file, char *mode, char *location);
|
||||
int closefile(FILE **file, char *location);
|
||||
#endif
|
||||
Loading…
Reference in New Issue