53 lines
1.1 KiB
C
53 lines
1.1 KiB
C
/*
|
|
* Part of Very Secure FTPd
|
|
* Licence: GPL v2
|
|
* Author: Chris Evans
|
|
* utility.c
|
|
*/
|
|
|
|
#include "utility.h"
|
|
#include "sysutil.h"
|
|
#include "str.h"
|
|
#include "defs.h"
|
|
|
|
#define DIE_DEBUG
|
|
|
|
void
|
|
die(const char* p_text)
|
|
{
|
|
#ifdef DIE_DEBUG
|
|
bug(p_text);
|
|
#endif
|
|
vsf_sysutil_exit(1);
|
|
}
|
|
|
|
void
|
|
die2(const char* p_text1, const char* p_text2)
|
|
{
|
|
struct mystr die_str = INIT_MYSTR;
|
|
str_alloc_text(&die_str, p_text1);
|
|
str_append_text(&die_str, p_text2);
|
|
die(str_getbuf(&die_str));
|
|
}
|
|
|
|
void
|
|
bug(const char* p_text)
|
|
{
|
|
/* Rats. Try and write the reason to the network for diagnostics */
|
|
vsf_sysutil_activate_noblock(VSFTP_COMMAND_FD);
|
|
(void) vsf_sysutil_write_loop(VSFTP_COMMAND_FD, "500 OOPS: ", 10);
|
|
(void) vsf_sysutil_write_loop(VSFTP_COMMAND_FD, p_text,
|
|
vsf_sysutil_strlen(p_text));
|
|
(void) vsf_sysutil_write_loop(VSFTP_COMMAND_FD, "\r\n", 2);
|
|
vsf_sysutil_exit(1);
|
|
}
|
|
|
|
void
|
|
vsf_exit(const char* p_text)
|
|
{
|
|
(void) vsf_sysutil_write_loop(VSFTP_COMMAND_FD, p_text,
|
|
vsf_sysutil_strlen(p_text));
|
|
vsf_sysutil_exit(0);
|
|
}
|
|
|