simplefiles

A lightweight C CGI web application for managing files.
git clone https://scm.kuandu.systems/git-raw/simplefiles.git
Log | Files | Refs | README | LICENSE

request.c (943B)


      1 #include <stddef.h>
      2 #include <limits.h>
      3 
      4 #include "common.h"
      5 #include "http.h"
      6 #include "url.h"
      7 #include "request.h"
      8 
      9 int
     10 get_filename(const char *query, char *filename, size_t len)
     11 {
     12         int ret;
     13 
     14         ret = query_param(query, "file", filename, len);
     15 
     16         if (ret == 1) {
     17                 reply("400 Bad Request", "Missing filename");
     18                 return -1;
     19         }
     20 
     21         if (ret == -1 || !valid_filename(filename)) {
     22                 reply("400 Bad Request", "Invalid filename");
     23                 return -1;
     24         }
     25 
     26         return 0;
     27 }
     28 
     29 int
     30 get_new_filename(const char *body,
     31     char *filename,
     32     size_t len)
     33 {
     34 	int ret;
     35 
     36 	ret = query_param(body,
     37 	    "new_filename",
     38 	    filename,
     39 	    len);
     40 
     41 	if (ret == 1) {
     42 		reply("400 Bad Request",
     43 		    "Missing new filename");
     44 		return -1;
     45 	}
     46 
     47 	if (ret == -1 || !valid_filename(filename)) {
     48 		reply("400 Bad Request",
     49 		    "Invalid filename");
     50 		return -1;
     51 	}
     52 
     53 	return 0;
     54 }