strncpy does not null terminate, added
Added flag for source linking to see source lines in debugging
Regressive problem, where get_exec_path both returns in char *buf variable the result and as a function, moved to void
Added get_exec_path function to header file
Resized data for sending file

get_root got a revamp by removing middle variable for transferring value to *root. A real answer should be using a parameter from function rather than returning something as pointer

Made pathbuf a pointer rather than undefined array (might need something smarter than +128) in send_directory_listing

Resized buf to 1024 instead of 4x bigger 4096 in process request function

made an allocation for path with memmove (thanks SO for this decision) instead of strncpy which is crap :(

Fixed logic on checking relative_path instead of path.

In main function added free root, but this is regressional, as mentioned before it should replaced with a different approach (free will most likely stay the same)