format + remove todo
This commit is contained in:
2023-11-13 18:13:09 +01:00
parent eb7dcce09e
commit 8efac8948a

View File

@@ -10,12 +10,9 @@ static const char* TAG = "tftp_server";
extern struct llfs_data_file* llfs_root;
static tftp_custom_file_t virt_file[] =
{
{.name = "index.txt",.data = NULL, .len = 0, .ofset = 0},
{.name = "virtImage.raw",.data = NULL, .len = 0, .ofset = 0},
{.name = "virtText.txt",.data = NULL, .len = 0, .ofset = 0}
};
static tftp_custom_file_t virt_file[] = {{.name = "index.txt", .data = NULL, .len = 0, .ofset = 0},
{.name = "virtImage.raw", .data = NULL, .len = 0, .ofset = 0},
{.name = "virtText.txt", .data = NULL, .len = 0, .ofset = 0}};
int str_cat_str(char* dest, size_t dest_size, const char* src) {
size_t dest_len = strlen(dest);
@@ -27,8 +24,7 @@ int str_cat_str(char* dest, size_t dest_size, const char* src) {
return 0;
}
int str_cat(char* dest, size_t dest_size, char c)
{
int str_cat(char* dest, size_t dest_size, char c) {
size_t dest_len = strlen(dest);
if (dest_len + 1 > dest_size) {
return -1;
@@ -111,11 +107,11 @@ size_t tftp_custom_fwrite(const void* buf, size_t bytes, tftp_custom_file_t* han
* @brief This function is called when a file is opened
* It should return a handle to the file or NULL if the file does not exist
* The handle contains a ptr to or the actual file data or a virtual file
*
*
* @param fname The name of the file to open
* @param mode Mode string from TFTP RFC
* @param write Flag indicating read (0) or write (!= 0) access
* @return void* File handle supplied to other functions
* @return void* File handle supplied to other functions
*/
void* tftp_open(const char* fname, const char* mode, uint8_t write) {
LOG_INFO(TAG, "Opening %s", fname);
@@ -135,7 +131,7 @@ void* tftp_open(const char* fname, const char* mode, uint8_t write) {
/**
* @brief This function is called when a file is closed
*
*
* @param handle The handle to the file to close
*/
void tftp_close(void* handle) {
@@ -146,12 +142,12 @@ void tftp_close(void* handle) {
}
if (handle == &virt_file[1]) {
// TODO: waiting on pr of tim to merge so we can use the bmp lcd function
lcd_clear(LCD_COLOR_BLACK);
lcd_display_text("show me what you got virtImage.raw", 0, 0, LCD_COLOR_BLACK, LCD_COLOR_WHITE, LCD_FONT16);
}
if (handle == &virt_file[2]) {
// TODO: Clear display
lcd_clear(LCD_COLOR_BLACK);
lcd_display_text((uint8_t*)virt_file[2].data, 0, 0, LCD_COLOR_BLACK, LCD_COLOR_WHITE, LCD_FONT16);
}
@@ -169,11 +165,11 @@ void tftp_close(void* handle) {
* @brief This function is called when a file is read
* The virtual files are filtered out first
* then the file is trying to get read from the llfs
*
*
* @param handle File handle returned by open()
* @param buf Target buffer to copy read data to
* @param bytes Number of bytes to copy to buf
* @return int >= 0: Success; < 0: Error
* @param buf Target buffer to copy read data to
* @param bytes Number of bytes to copy to buf
* @return int >= 0: Success; < 0: Error
*/
int tftp_read(void* handle, void* buf, int bytes) {
int ret = 0;
@@ -204,16 +200,16 @@ int tftp_read(void* handle, void* buf, int bytes) {
/**
* @brief This function is called when a file is written
*
*
* @param handle File handle returned by open()
* @param p PBUF adjusted such that payload pointer points to the beginning of write data.
* In other words, TFTP headers are stripped off.
* @return int >= 0: Success; < 0: Error
* In other words, TFTP headers are stripped off.
* @return int >= 0: Success; < 0: Error
*/
int tftp_write(void* handle, struct pbuf* p) {
LOG_INFO(TAG, "Writing file");
LOG_DEBUG(TAG, "Not implemented yet");
tftp_custom_file_t *file = (tftp_custom_file_t*)handle;
tftp_custom_file_t* file = (tftp_custom_file_t*)handle;
if (file == &virt_file[1] || file == &virt_file[2]) {
return tftp_custom_fwrite(p->payload, p->len, file);
}
@@ -223,16 +219,14 @@ int tftp_write(void* handle, struct pbuf* p) {
/**
* @brief This function creates the file list for index.txt
*/
void init_index(void)
{
void init_index(void) {
size_t len = 0;
// Add len of the virt files to the size
for (int i = 0; i < 2; i++)
{
for (int i = 0; i < 2; i++) {
len += strlen(virt_file[i].name) + 1;
}
const struct llfs_data_file* root = llfs_root;
while(root != NULL) {
while (root != NULL) {
len += strlen(root->name) + 1;
root = root->next;
}
@@ -240,13 +234,12 @@ void init_index(void)
virt_file[0].data = malloc(len);
virt_file[0].len = len;
for (int i = 0; i < 2; i++)
{
for (int i = 0; i < 2; i++) {
str_cat_str(virt_file[0].data, len, virt_file[i].name);
str_cat(virt_file[0].data, len, '\n');
}
root = llfs_root;
while(root != NULL) {
while (root != NULL) {
str_cat_str(virt_file[0].data, len, root->name);
str_cat(virt_file[0].data, len, '\n');
root = root->next;
@@ -256,12 +249,7 @@ void init_index(void)
virt_file[2].len = 100;
}
struct tftp_context tftpContext_s = {
.open = tftp_open,
.close = tftp_close,
.read = tftp_read,
.write = tftp_write
};
struct tftp_context tftpContext_s = {.open = tftp_open, .close = tftp_close, .read = tftp_read, .write = tftp_write};
/**
* @brief Initialize tftp server