#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "../slstatus.h"
#include "../util.h"

#define MULLVAD_STAT_CMD "mullvad status"

static int
mullvad_conn()
{
    FILE *fp;
    char buff[128];
    int conn = 0;

    fp = popen(MULLVAD_STAT_CMD, "r");
    if (fp == NULL)
    {
        perror("popen");
        return -1;
    }

    while (fgets(buff, sizeof(buff), fp) != NULL)
    {
        if (strstr(buff, "Connected") != NULL)
        {
            conn = 1;
        }
    }
    pclose(fp);
    return conn;
}

const char *mullvad_stat(const char *stat) 
{
    static char status[128];
    if (mullvad_conn())
    {
        snprintf(status, sizeof(status), "CNTD");
    } else {
        snprintf(status, sizeof(status), "NOT CNTD");
    }
    return status;
}

// this shit sucks more