143 lines
2.6 KiB
C

#include "../../include/utils_op/utils.h"
/**
* @brief Prints error
*
* @param {char *} msg
*/
void err_msg(char *msg)
{
fprintf(stderr, "Error: %s\n", msg);
}
/**
* @brief Add str2 in front of str1
*
* @param str1
* @param str2
* @return char*
*/
char *concat_to_front(char **str1, char *str2)
{
char *tmp = strdup(*str1);
strcpy(*str1, str2);
strcat(*str1, tmp);
free(tmp);
return *str1;
}
/**
* @brief Get the status message object
*
* @param status_code
* @return char*
*/
char *get_status_message(int status_code)
{
switch (status_code)
{
case 200:
return "OK";
case 400:
return "Internal Server Error";
case 401:
return "Unauthorized";
case 403:
return "Forbidden";
case 404:
return "NOT FOUND";
case 500:
return "Internal Server Error";
case 501:
return "Not Implemented";
case 502:
return "Bad Gateway";
default:
return "None";
break;
}
}
char *to_lower(char *str)
{
for (char *p = str; *p != '\0'; p++)
*p = tolower(*p);
return str;
}
/**
* @brief Remove unneded spaces at the begining and ending of string
*
* @param str
* @return char*
*/
char *trim(char *str)
{
while (str[0] == ' ' || str[0] == '\n' || str[0] == '\t')
{
memmove(str, str + 1, strlen(str));
}
while (str[strlen(str) - 1] == ' ' || str[strlen(str) - 1] == '\n' || str[strlen(str) - 1] == '\t')
{
str[strlen(str) - 1] = '\0';
}
return str;
}
char *repair_spaces(char *str)
{
for (int i = 0; i < strlen(str); i++)
{
if (str[i] == '_')
{
str[i] = ' ';
}
}
return str;
}
/**
* @brief Gets the list of files and directories at the specified path
*
* @param dir_list
* @param path
* @return ssize_t
*/
ssize_t get_dir_list(char ***dir_list, char *path)
{
DIR *dir;
struct dirent *ent;
if ((dir = opendir(path)) == NULL)
{
perror("\nOpendir");
return -1;
}
ssize_t n = 0;
while ((ent = readdir(dir)) != NULL)
{
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0)
continue;
n++;
*dir_list = realloc(*dir_list, sizeof(char *) * n);
(*dir_list)[n - 1] = strdup(ent->d_name);
if (ent->d_type == DT_DIR)
{
(*dir_list)[n - 1] = realloc((*dir_list)[n - 1], strlen((*dir_list)[n - 1]) + 2);
(*dir_list)[n - 1] = strcat((*dir_list)[n - 1], "/");
}
}
closedir(dir);
return n;
}