commit 1243e26

default  ·  2022-11-26 04:18:48 +0000 UTC
parent 17d4e4f
New function object_add_ow().
2 files changed,  +21, -5
M data.c
+0, -2
 1@@ -65,7 +65,6 @@ int actor_request(snac *snac, char *actor, d_char **data)
 2 
 3     if (valid_status(status2)) {
 4         /* renew data */
 5-        object_del(actor);
 6         status = actor_add(snac, actor, payload);
 7 
 8         if (data != NULL) {
 9@@ -918,7 +917,6 @@ int process_message(snac *snac, char *msg, char *req)
10     else
11     if (strcmp(type, "Update") == 0) {
12         if (strcmp(utype, "Person") == 0) {
13-            object_del(actor);
14             actor_add(snac, actor, xs_dict_get(msg, "object"));
15 
16             snac_log(snac, xs_fmt("updated actor %s", actor));
M data.c
+21, -3
 1@@ -428,14 +428,14 @@ int object_get(const char *id, d_char **obj, const char *type)
 2 }
 3 
 4 
 5-int object_add(const char *id, d_char *obj)
 6+int _object_add(const char *id, d_char *obj, int ow)
 7 /* stores an object */
 8 {
 9     int status = 201; /* Created */
10     xs *fn     = _object_fn(id);
11     FILE *f;
12 
13-    if (mtime(fn) > 0.0) {
14+    if (!ow && mtime(fn) > 0.0) {
15         /* object already here */
16         srv_debug(0, xs_fmt("object_add object already here %s", id));
17         return 204; /* No content */
18@@ -471,6 +471,20 @@ int object_add(const char *id, d_char *obj)
19 }
20 
21 
22+int object_add(const char *id, d_char *obj)
23+/* stores an object */
24+{
25+    return _object_add(id, obj, 0);
26+}
27+
28+
29+int object_add_ow(const char *id, d_char *obj)
30+/* stores an object (overwriting allowed) */
31+{
32+    return _object_add(id, obj, 1);
33+}
34+
35+
36 int object_del_by_md5(const char *md5)
37 /* deletes an object by its md5 */
38 {
39@@ -1231,7 +1245,7 @@ int is_hidden(snac *snac, const char *id)
40 int actor_add(snac *snac, const char *actor, d_char *msg)
41 /* adds an actor */
42 {
43-    return object_add(actor, msg);
44+    return object_add_ow(actor, msg);
45 }
46 
47 
48@@ -1381,6 +1395,8 @@ d_char *history_list(snac *snac)
49 }
50 
51 
52+/** the queue **/
53+
54 static int _enqueue_put(char *fn, char *msg)
55 /* writes safely to the queue */
56 {
57@@ -1527,6 +1543,8 @@ d_char *dequeue(snac *snac, char *fn)
58 }
59 
60 
61+/** the purge **/
62+
63 static void _purge_file(const char *fn, time_t mt)
64 /* purge fn if it's older than days */
65 {