Fix macOS-specific code to be more generic
This commit is contained in:
parent
6fa3948ea2
commit
9da4f5e95d
3 changed files with 14 additions and 16 deletions
|
@ -2,18 +2,17 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include "cli.h"
|
||||
#include "log.h"
|
||||
#include "network.h"
|
||||
#include "pihelper.h"
|
||||
|
||||
int main(int argc, char ** argv) {
|
||||
|
||||
bool configure, enable;
|
||||
char * disable;
|
||||
char * disable = NULL;
|
||||
char * config_path;
|
||||
char ch;
|
||||
while ((ch = getopt_long(argc, argv, "cd:ef:hv", longopts, NULL)) != -1) {
|
||||
while ((ch = getopt_long(argc, argv, shortopts, longopts, NULL)) != -1) {
|
||||
switch(ch) {
|
||||
case 'c':
|
||||
configure = true;
|
||||
|
@ -90,16 +89,16 @@ int main(int argc, char ** argv) {
|
|||
}
|
||||
|
||||
if (config == NULL) {
|
||||
printf("Failed to parse Pi-Helper config\n");
|
||||
write_log(PIHELPER_LOG_ERROR, "Failed to parse Pi-Helper config at %s", config_path);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (enable && disable != 0) {
|
||||
if (enable && disable != NULL) {
|
||||
print_usage();
|
||||
return PIHELPER_INVALID_COMMANDS;
|
||||
} else if (enable) {
|
||||
return enable_pihole(config);
|
||||
} else if (disable != 0) {
|
||||
} else if (disable != NULL) {
|
||||
return disable_pihole(config, disable);
|
||||
} else {
|
||||
return get_status(config);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include <getopt.h>
|
||||
#include "config.h"
|
||||
|
||||
static char * shortopts = "cd:ef:hqv";
|
||||
|
||||
static struct option longopts[] = {
|
||||
{ "configure", no_argument, NULL, 'c' },
|
||||
|
@ -13,5 +14,3 @@ static struct option longopts[] = {
|
|||
|
||||
void print_usage();
|
||||
|
||||
pihole_config * configure_pihole(char * config_path);
|
||||
|
||||
|
|
|
@ -12,9 +12,7 @@ static char * AUTH_QUERY = "auth";
|
|||
static char * ENABLE_QUERY = "enable";
|
||||
static char * DISABLE_QUERY = "disable";
|
||||
static char * HTTP_SCHEME = "http://";
|
||||
static int HTTP_SCHEME_LEN = 8;
|
||||
static char * HTTPS_SCHEME = "https://";
|
||||
static int HTTPS_SCHEME_LEN = 9;
|
||||
|
||||
int get_status(pihole_config * config) {
|
||||
char * formatted_host = prepend_scheme(config->host);
|
||||
|
@ -89,15 +87,17 @@ static char * get(char endpoint[]) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Given a potentially unformatted host (missing scheme), prepends the scheme (http://) to the host. Note
|
||||
* that the caller is responsible for freeing the memory allocated by this method.
|
||||
* @return a pointer to the host with the scheme prepended
|
||||
* @return a pointer to the host with the scheme prepended, or the given pointer if the host is already
|
||||
* properly formatted.
|
||||
*/
|
||||
static char * prepend_scheme(char * raw_host) {
|
||||
if (raw_host == NULL) return NULL;
|
||||
char * formatted_host;
|
||||
if (strnstr(raw_host, HTTP_SCHEME, HTTP_SCHEME_LEN) == NULL
|
||||
&& strnstr(raw_host, HTTPS_SCHEME, HTTPS_SCHEME_LEN) == NULL) {
|
||||
if (strstr(raw_host, HTTP_SCHEME) != raw_host
|
||||
&& strstr(raw_host, HTTPS_SCHEME) != raw_host) {
|
||||
formatted_host = malloc(URL_FORMAT_LEN + strlen(raw_host));
|
||||
sprintf(formatted_host, URL_FORMAT, raw_host);
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue