Finish renaming ap_activity -> ap_object

master
teknomunk 1 year ago
parent 0733bc7664
commit 2f07d4d040

@ -13,7 +13,7 @@
#include <stdio.h>
#include <string.h>
struct ap_object* ap_activity_new()
struct ap_object* ap_object_new()
{
struct ap_object* act;
act = malloc(sizeof(*act));
@ -21,9 +21,9 @@ struct ap_object* ap_activity_new()
return act;
}
struct ap_object* ap_activity_dup( struct ap_object* act )
struct ap_object* ap_object_dup( struct ap_object* act )
{
struct ap_object* new_act = ap_activity_new();
struct ap_object* new_act = ap_object_new();
memset(new_act,0,sizeof(*new_act));
new_act->id = safe_strdup(act->id);
@ -105,7 +105,7 @@ struct ap_object* ap_activity_dup( struct ap_object* act )
new_act->object.ref = strdup(act->object.ref);
break;
case apaot_activity:
new_act->object.ptr = ap_activity_dup(act->object.ptr);
new_act->object.ptr = ap_object_dup(act->object.ptr);
break;
}
new_act->object.tag = act->object.tag;
@ -123,13 +123,13 @@ struct ap_object* ap_activity_dup( struct ap_object* act )
return new_act;
}
void ap_public_key_free( struct ap_public_key* pk );
void ap_object_free( struct ap_activity* act )
void ap_object_free( struct ap_object* act )
{
if( !act ) { return; }
ap_activity_free_composite(act);
ap_object_free_composite(act);
free(act);
}
void ap_activity_free_composite( struct ap_activity* act )
void ap_object_free_composite( struct ap_object* act )
{
free(act->id);
free(act->actor);

@ -10,7 +10,6 @@
// Reference: https://www.w3.org/TR/activitystreams-vocabulary/
// TODO: rename this to ap_object, as this is really an Object base and not an Activity base
struct ap_object;
#define ap_activity ap_object
struct ap_activity_source
{
@ -245,12 +244,12 @@ struct json_object_field;
extern struct json_field_type ap_object_type;
extern struct json_object_field ap_object_layout[];
struct ap_object* ap_activity_new();
struct ap_object* ap_activity_dup( struct ap_object* o );
struct ap_object* ap_object_new();
struct ap_object* ap_object_dup( struct ap_object* o );
struct ap_object* ap_object_from_FILE( FILE* f );
struct ap_object* ap_object_from_file( const char* filename );
void ap_object_free( struct ap_object* o );
void ap_activity_free_composite( struct ap_object* o );
void ap_object_free_composite( struct ap_object* o );
void ap_object_write_to_FILE( struct ap_object* o, FILE* f );

@ -30,28 +30,30 @@ struct rdf_enum types = {
.filter = type_filter,
};
struct rdf_serialize_field ap_activity_rdf[];
struct rdf_serialize_field ap_object_rdf[];
static struct rdf_serialize_field activity_ref_types[] = {
{ (char*)apaot_ref, offsetof( struct ap_activity, object.ref ), &rdf_string_field },
{ (char*)apaot_activity, offsetof( struct ap_activity, object.ptr ), &rdf_object_field, &ap_activity_rdf },
{ (char*)apaot_ref, offsetof( struct ap_object, object.ref ), &rdf_string_field },
{ (char*)apaot_activity, offsetof( struct ap_object, object.ptr ), &rdf_object_field, &ap_object_rdf },
{ NULL },
};
struct rdf_serialize_field ap_activity_rdf[] = {
{ "", offsetof( struct ap_activity, id ), &rdf_id_field },
{ "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>", offsetof( struct ap_activity, type ), &rdf_enum_field, &types },
{ "<https://www.w3.org/ns/activitystreams#actor>", offsetof( struct ap_activity, actor ), &rdf_string_ref_field },
{ "<https://www.w3.org/ns/activitystreams#content>", offsetof( struct ap_activity, content ), &rdf_string_field },
{ "<https://www.w3.org/ns/activitystreams#published>", offsetof( struct ap_activity, published ), &rdf_date_field },
{ "<https://www.w3.org/ns/activitystreams#to>", offsetof( struct ap_activity, to ), &rdf_array_of_field, &rdf_string_ref_field },
{ "<https://www.w3.org/ns/activitystreams#cc>", offsetof( struct ap_activity, cc ), &rdf_array_of_field, &rdf_string_ref_field },
{ "<https://www.w3.org/ns/activitystreams#bcc>", offsetof( struct ap_activity, bcc ), &rdf_array_of_field, &rdf_string_ref_field },
{ "<https://www.w3.org/ns/activitystreams#object>", offsetof( struct ap_activity, object.tag ), &rdf_tagged_union_field, activity_ref_types },
{ NULL, sizeof(struct ap_activity) },
#define OBJ_TYPE struct ap_object
struct rdf_serialize_field ap_object_rdf[] = {
{ "", offsetof( OBJ_TYPE, id ), &rdf_id_field },
{ "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>", offsetof( OBJ_TYPE, type ), &rdf_enum_field, &types },
{ "<https://www.w3.org/ns/activitystreams#actor>", offsetof( OBJ_TYPE, actor ), &rdf_string_ref_field },
{ "<https://www.w3.org/ns/activitystreams#content>", offsetof( OBJ_TYPE, content ), &rdf_string_field },
{ "<https://www.w3.org/ns/activitystreams#published>", offsetof( OBJ_TYPE, published ), &rdf_date_field },
{ "<https://www.w3.org/ns/activitystreams#to>", offsetof( OBJ_TYPE, to ), &rdf_array_of_field, &rdf_string_ref_field },
{ "<https://www.w3.org/ns/activitystreams#cc>", offsetof( OBJ_TYPE, cc ), &rdf_array_of_field, &rdf_string_ref_field },
{ "<https://www.w3.org/ns/activitystreams#bcc>", offsetof( OBJ_TYPE, bcc ), &rdf_array_of_field, &rdf_string_ref_field },
{ "<https://www.w3.org/ns/activitystreams#object>", offsetof( OBJ_TYPE, object.tag ), &rdf_tagged_union_field, activity_ref_types },
{ NULL, sizeof(struct ap_object) },
};
#undef OBJ_TYPE
struct rdf_serialize_field ap_activity_signature_rdf[] = {
struct rdf_serialize_field ap_signature_rdf[] = {
{ "", 0, &rdf_id_blank },
{ "<http://purl.org/dc/terms/creator>", offsetof( struct ap_signature, creator ), &rdf_string_ref_field },
{ "<http://purl.org/dc/terms/created>", offsetof( struct ap_signature, created ), &rdf_date_field },
@ -84,9 +86,9 @@ static void write_normalized_rdf( struct rdf_serialize_field* layout, void* obje
free((char*)rs.graph);
}
void ap_activity_write_normalized_rdf( struct ap_activity* act, FILE* out )
void ap_activity_write_normalized_rdf( struct ap_object* act, FILE* out )
{
write_normalized_rdf( ap_activity_rdf, act, out );
write_normalized_rdf( ap_object_rdf, act, out );
}
static char* serialize_normalized_object( struct rdf_serialize_field* layout, void* object, size_t* result_size )
@ -131,7 +133,7 @@ static bool calculate_hash_for_object( struct rdf_serialize_field* layout, void*
return true;
}
bool ap_activity_create_rsa_signature_2017( struct ap_activity* act, struct crypto_keys* keys )
bool ap_activity_create_rsa_signature_2017( struct ap_object* act, struct crypto_keys* keys )
{
char* signature_buf = NULL;
printf( "ap_activity_create_rsa_signature_2017\n" );
@ -141,8 +143,8 @@ bool ap_activity_create_rsa_signature_2017( struct ap_activity* act, struct cryp
act->signature.created = time(NULL);
char raw_hash[64];
if( !calculate_hash_for_object( ap_activity_rdf, act, &raw_hash[0] ) ) { return NULL; }
if( !calculate_hash_for_object( ap_activity_signature_rdf, &act->signature, &raw_hash[32] ) ) { return NULL; }
if( !calculate_hash_for_object( ap_object_rdf, act, &raw_hash[0] ) ) { return NULL; }
if( !calculate_hash_for_object( ap_signature_rdf, &act->signature, &raw_hash[32] ) ) { return NULL; }
char* sign = crypto_keys_sign( keys, raw_hash, 64 );
act->signature.value = sign;

@ -10,7 +10,7 @@
// Standard Library
#include <string.h>
bool route_add( struct ap_activity* act )
bool route_add( struct ap_object* act )
{
bool result = false;
struct status* s = NULL;

@ -11,7 +11,7 @@
#include <string.h>
#include <stdlib.h>
bool route_announce( struct ap_activity* act )
bool route_announce( struct ap_object* act )
{
bool result = false;
struct status* s = NULL;

@ -11,7 +11,7 @@
#include <stdio.h>
#include <string.h>
bool route_undo_follow( struct ap_activity* act )
bool route_undo_follow( struct ap_object* act )
{
const char* target = act->object.ptr->object.ref;
struct account* a = account_from_uri( target );

@ -102,7 +102,7 @@ void account_create( struct account* a, struct status* s )
void account_announce( struct account* a, struct status* original_post, struct status* local_repost )
{
struct ap_object* act = ap_activity_new();
struct ap_object* act = ap_object_new();
activity_allocate_local_id(act);
act->id = aformat( "https://%s/activity/%d", g_server->domain, act->local_id );
act->published = time(NULL);

@ -36,7 +36,7 @@ void activity_save( struct ap_object* act )
}
struct ap_object* activity_from_local_id( int id )
{
struct ap_object* act = ap_activity_new();
struct ap_object* act = ap_object_new();
char filename[512];
snprintf( filename, sizeof(filename), "data/activities/%d.json", id );
@ -52,7 +52,8 @@ struct ap_object* activity_from_local_id( int id )
struct ap_object* activity_create_Accept( struct ap_object* act )
{
struct ap_object* accept = malloc(sizeof(struct ap_activity));
struct ap_object* accept;
accept = malloc(sizeof(*accept));
memset(accept,0,sizeof(*accept));
activity_allocate_local_id(accept);
@ -62,7 +63,7 @@ struct ap_object* activity_create_Accept( struct ap_object* act )
char* new_act_actor = strdup(act->actor);
array_append( &accept->to, sizeof(char*), &new_act_actor );
accept->object.tag = apaot_activity;
accept->object.ptr = ap_activity_dup(act);
accept->object.ptr = ap_object_dup(act);
return accept;
}
@ -88,7 +89,7 @@ struct ap_object* activity_create_EmojiReact( struct status* s, const char* reac
struct account* a = account_from_id( s->account_id );
struct ap_object* act = ap_activity_new();
struct ap_object* act = ap_object_new();
activity_allocate_local_id(act);
act->id = aformat( "https://%s/activity/%d", g_server->domain, act->local_id );
act->actor = aformat( "https://%s/owner/actor", g_server->domain );
@ -128,7 +129,7 @@ void activity_react( struct status* s, const char* react )
struct ap_object* activity_create_Follow( struct account* follower, struct account* following )
{
struct ap_object* act = ap_activity_new();
struct ap_object* act = ap_object_new();
activity_allocate_local_id(act);
act->id = aformat( "https://%s/activity/%d", g_server->domain, act->local_id );
act->actor = strdup( follower->account_url );
@ -167,16 +168,16 @@ failed:
goto cleanup;
}
struct ap_object* activity_create_Undo( struct ap_activity* act_to_undo )
struct ap_object* activity_create_Undo( struct ap_object* act_to_undo )
{
struct ap_object* act = ap_activity_new();
struct ap_object* act = ap_object_new();
activity_allocate_local_id(act);
act->id = aformat( "https://%s/activity/%d", g_server->domain, act->local_id );
act->actor = strdup( act_to_undo->actor );
act->type = ap_Undo;
act->published = time(NULL);
act->object.tag = apaot_activity;
act->object.ptr = ap_activity_dup(act_to_undo);
act->object.ptr = ap_object_dup(act_to_undo);
char* to = strdup(act_to_undo->object.ref);
array_append( &act->to, sizeof(to), &to );
@ -225,7 +226,7 @@ int activity_like( struct status* s )
struct ap_object* activity_create_Note( struct status* s )
{
struct ap_object* act = ap_activity_new();
struct ap_object* act = ap_object_new();
act->id = aformat( "https://%s/note/%d", g_server->domain, s->id );
act->type = ap_Note;
act->published = s->published;
@ -302,14 +303,14 @@ struct ap_object* activity_create_Note( struct status* s )
return act;
}
struct ap_object* activity_create_Create( struct ap_activity* object )
struct ap_object* activity_create_Create( struct ap_object* object )
{
struct ap_object* act = ap_activity_new();
struct ap_object* act = ap_object_new();
activity_allocate_local_id(act);
act->type = ap_Create;
act->id = aformat( "https://%s/activity/%d", g_server->domain, act->local_id );
act->object.tag = apaot_activity;
act->object.ptr = ap_activity_dup(object);
act->object.ptr = ap_object_dup(object);
act->actor = strdup( object->actor );
act->published = object->published;

Loading…
Cancel
Save