summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2022-11-26 05:18:48 +0100
committerGravatar default2022-11-26 05:18:48 +0100
commit1243e26a0d883b0aa3f368e11b37591fe0fef1bf (patch)
tree54797da191c9ad8ad955ba3e53bf2066592c5c71
parentRenamed 'admin' link label to 'private'. (diff)
downloadsnac2-1243e26a0d883b0aa3f368e11b37591fe0fef1bf.tar.gz
snac2-1243e26a0d883b0aa3f368e11b37591fe0fef1bf.tar.xz
snac2-1243e26a0d883b0aa3f368e11b37591fe0fef1bf.zip
New function object_add_ow().
-rw-r--r--activitypub.c2
-rw-r--r--data.c24
2 files changed, 21 insertions, 5 deletions
diff --git a/activitypub.c b/activitypub.c
index 17f74e0..228aabe 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -65,7 +65,6 @@ int actor_request(snac *snac, char *actor, d_char **data)
65 65
66 if (valid_status(status2)) { 66 if (valid_status(status2)) {
67 /* renew data */ 67 /* renew data */
68 object_del(actor);
69 status = actor_add(snac, actor, payload); 68 status = actor_add(snac, actor, payload);
70 69
71 if (data != NULL) { 70 if (data != NULL) {
@@ -918,7 +917,6 @@ int process_message(snac *snac, char *msg, char *req)
918 else 917 else
919 if (strcmp(type, "Update") == 0) { 918 if (strcmp(type, "Update") == 0) {
920 if (strcmp(utype, "Person") == 0) { 919 if (strcmp(utype, "Person") == 0) {
921 object_del(actor);
922 actor_add(snac, actor, xs_dict_get(msg, "object")); 920 actor_add(snac, actor, xs_dict_get(msg, "object"));
923 921
924 snac_log(snac, xs_fmt("updated actor %s", actor)); 922 snac_log(snac, xs_fmt("updated actor %s", actor));
diff --git a/data.c b/data.c
index 3b7ac58..bf8a273 100644
--- a/data.c
+++ b/data.c
@@ -428,14 +428,14 @@ int object_get(const char *id, d_char **obj, const char *type)
428} 428}
429 429
430 430
431int object_add(const char *id, d_char *obj) 431int _object_add(const char *id, d_char *obj, int ow)
432/* stores an object */ 432/* stores an object */
433{ 433{
434 int status = 201; /* Created */ 434 int status = 201; /* Created */
435 xs *fn = _object_fn(id); 435 xs *fn = _object_fn(id);
436 FILE *f; 436 FILE *f;
437 437
438 if (mtime(fn) > 0.0) { 438 if (!ow && mtime(fn) > 0.0) {
439 /* object already here */ 439 /* object already here */
440 srv_debug(0, xs_fmt("object_add object already here %s", id)); 440 srv_debug(0, xs_fmt("object_add object already here %s", id));
441 return 204; /* No content */ 441 return 204; /* No content */
@@ -471,6 +471,20 @@ int object_add(const char *id, d_char *obj)
471} 471}
472 472
473 473
474int object_add(const char *id, d_char *obj)
475/* stores an object */
476{
477 return _object_add(id, obj, 0);
478}
479
480
481int object_add_ow(const char *id, d_char *obj)
482/* stores an object (overwriting allowed) */
483{
484 return _object_add(id, obj, 1);
485}
486
487
474int object_del_by_md5(const char *md5) 488int object_del_by_md5(const char *md5)
475/* deletes an object by its md5 */ 489/* deletes an object by its md5 */
476{ 490{
@@ -1231,7 +1245,7 @@ int is_hidden(snac *snac, const char *id)
1231int actor_add(snac *snac, const char *actor, d_char *msg) 1245int actor_add(snac *snac, const char *actor, d_char *msg)
1232/* adds an actor */ 1246/* adds an actor */
1233{ 1247{
1234 return object_add(actor, msg); 1248 return object_add_ow(actor, msg);
1235} 1249}
1236 1250
1237 1251
@@ -1381,6 +1395,8 @@ d_char *history_list(snac *snac)
1381} 1395}
1382 1396
1383 1397
1398/** the queue **/
1399
1384static int _enqueue_put(char *fn, char *msg) 1400static int _enqueue_put(char *fn, char *msg)
1385/* writes safely to the queue */ 1401/* writes safely to the queue */
1386{ 1402{
@@ -1527,6 +1543,8 @@ d_char *dequeue(snac *snac, char *fn)
1527} 1543}
1528 1544
1529 1545
1546/** the purge **/
1547
1530static void _purge_file(const char *fn, time_t mt) 1548static void _purge_file(const char *fn, time_t mt)
1531/* purge fn if it's older than days */ 1549/* purge fn if it's older than days */
1532{ 1550{