obj = json_object_new_object();
json_object_object_add (obj, "value", json_object_new_string(arg.value));
- json_object_object_add (obj, "path", json_object_new_string(arg.path));
+ if (arg.path != NULL)
+ json_object_object_add (obj, "path", json_object_new_string(arg.path));
json_object_object_add (obj, "size", json_object_new_int64((int64_t)arg.size));
json_object_object_add (args, arg.name && *arg.name ? arg.name : "<empty-string>", obj);
return 1; /* continue to iterate */
obj = json_object_new_object();
json_object_object_add (obj, "value", json_object_new_string(arg.value));
- json_object_object_add (obj, "path", json_object_new_string(arg.path));
+ if (arg.path != NULL)
+ json_object_object_add (obj, "path", json_object_new_string(arg.path));
json_object_object_add (obj, "size", json_object_new_int64((int64_t)arg.size));
json_object_object_add (args, arg.name && *arg.name ? arg.name : "<empty-string>", obj);
return 1; /* continue to iterate */
int fd;
char *fname;
- fname = strdup("XXXXXX");
+ fname = strdup("XXXXXX"); /* TODO improve the path */
if (fname == NULL)
return -1;
- fd = mkostemp(fname, O_CLOEXEC);
+ fd = mkostemp(fname, O_CLOEXEC|O_WRONLY);
if (fd < 0)
free(fname);
+ else
+ *path = fname;
return fd;
}
ssize_t sz;
struct hreq_data *hdat = get_data(hreq, key, 1);
+fprintf(stderr, "%s=%s %s=%s %s\n",key,hdat->key,file,hdat->value,hdat->path);
if (hdat->value == NULL) {
hdat->value = strdup(file);
if (hdat->value == NULL)
/* other definitions --------------------------------------------------- */
// Note: because of a bug in libmagic MAGIC_DB NULL should not be used for default
-#define OPA_INDEX "index.html"
#define MAX_ALIAS 10 // max number of aliases
#define COOKIE_NAME "afb-session"
#define DEFLT_CNTX_TIMEOUT 3600 // default Client Connection Timeout
#define DEFLT_API_TIMEOUT 0 // default Plugin API Timeout [0=NoLimit for Debug Only]
-#define DEFLT_API_TIMEOUT 0 // default Plugin API Timeout
#define DEFLT_CACHE_TIMEOUT 100000 // default Static File Chache [Client Side Cache 100000~=1day]
#define DEFLT_AUTH_TOKEN NULL // expect for debug should == NULL
#define DEFLT_HTTP_TIMEOUT 15 // Max MibMicroHttp timeout
-#define AFB_MAX_PLUGINS 20 // Max number of plugins for a given binder
-#define MAX_POST_SIZE 4096 // maximum size for POST data
#define CTX_NBCLIENTS 10 // allow a default of 10 authenticated clients
-
-
-
-enum AFB_Mode;
-
-
typedef struct {
char *url;
char *path;
AFB_aliasdir *aliasdir; // alias mapping for icons,apps,...
};
-// MHD_lookup_connection_value(connection, MHD_GET_ARGUMENT_KIND, "value");
-typedef struct {
- const char *uuid;
- const char *url;
- const char *prefix; // plugin convivial name
- const char *method;
-/*
- AFB_PostRequest *post;
-*/
- struct json_object *jresp;
- void *context; // Hold Client Context when using session
- int restfull; // request is resfull [uuid token provided]
- int errcode; // http error code
- struct AFB_config *config; // plugin may need access to config
- struct afb_req *areq;
-} AFB_request;
-
struct afb_hsrv_handler;
struct MHD_Daemon;