Pass identity name as meshmb manifest name

This commit is contained in:
Jeremy Lakeman 2016-10-16 10:41:01 +10:30
parent eff46c9030
commit 84caa24d0f
5 changed files with 15 additions and 9 deletions

View File

@ -9,9 +9,10 @@
#include "commandline.h"
#include "overlay_buffer.h"
int meshmb_send(keyring_identity *id, const char *message, size_t message_len,
int meshmb_send(const keyring_identity *id, const char *message, size_t message_len,
unsigned nassignments, const struct rhizome_manifest_field_assignment *assignments){
const char *did=NULL, *name=NULL;
struct message_ply ply;
bzero(&ply, sizeof ply);
@ -23,8 +24,8 @@ int meshmb_send(keyring_identity *id, const char *message, size_t message_len,
message_ply_append_timestamp(b);
assert(!ob_overrun(b));
// TODO add id card details to manifest
int ret = message_ply_append(id, RHIZOME_SERVICE_MESHMB, NULL, &ply, b, nassignments, assignments);
keyring_identity_extract(id, &did, &name);
int ret = message_ply_append(id, RHIZOME_SERVICE_MESHMB, NULL, &ply, b, name, nassignments, assignments);
ob_free(b);
return ret;

View File

@ -1,7 +1,7 @@
#ifndef __SERVAL_DNA__MESHMB_H
#define __SERVAL_DNA__MESHMB_H
int meshmb_send(keyring_identity *id, const char *message, size_t message_len,
int meshmb_send(const keyring_identity *id, const char *message, size_t message_len,
unsigned nassignments, const struct rhizome_manifest_field_assignment *assignments);
#endif
#endif

View File

@ -305,7 +305,7 @@ static enum meshms_status update_conversation(const keyring_identity *id, struct
message_ply_append_timestamp(b);
assert(!ob_overrun(b));
if (message_ply_append(id, RHIZOME_SERVICE_MESHMS2, &conv->them, &conv->my_ply, b, 0, NULL)!=0){
if (message_ply_append(id, RHIZOME_SERVICE_MESHMS2, &conv->them, &conv->my_ply, b, NULL, 0, NULL)!=0){
status = MESHMS_STATUS_ERROR;
}else{
conv->metadata.my_last_ack = conv->metadata.their_last_message;
@ -916,7 +916,7 @@ enum meshms_status meshms_send_message(const sid_t *sender, const sid_t *recipie
assert(!ob_overrun(b));
if (message_ply_append(id, RHIZOME_SERVICE_MESHMS2, recipient, &c->my_ply, b, 0, NULL)==0){
if (message_ply_append(id, RHIZOME_SERVICE_MESHMS2, recipient, &c->my_ply, b, NULL, 0, NULL)==0){
if (ack)
c->metadata.my_last_ack = c->metadata.their_last_message;
c->metadata.my_size += ob_position(b);

View File

@ -64,7 +64,7 @@ static int message_ply_fill_manifest(const keyring_identity *id, const sid_t *re
}
int message_ply_append(const keyring_identity *id, const char *service, const sid_t *recipient, struct message_ply *ply, struct overlay_buffer *b,
unsigned nassignments, const struct rhizome_manifest_field_assignment *assignments)
const char *name, unsigned nassignments, const struct rhizome_manifest_field_assignment *assignments)
{
rhizome_manifest *mout = NULL;
rhizome_manifest *m = rhizome_new_manifest();
@ -86,6 +86,11 @@ int message_ply_append(const keyring_identity *id, const char *service, const si
}
}
// TODO add sender name?
// if recipient, actual sender & name should be encrypted...
if (name)
rhizome_manifest_set_name(m, name);
struct rhizome_bundle_result result = rhizome_apply_assignments(m, nassignments, assignments);
if (result.status != RHIZOME_BUNDLE_STATUS_NEW){
WARNF("Cannot create message ply manifest: %s", alloca_rhizome_bundle_result(result));

View File

@ -46,6 +46,6 @@ void message_ply_append_ack(struct overlay_buffer *b, uint64_t message_offset, u
void message_ply_append_timestamp(struct overlay_buffer *b);
void message_ply_append_message(struct overlay_buffer *b, const char *message, size_t message_len);
int message_ply_append(const struct keyring_identity *id, const char *service, const sid_t *recipient, struct message_ply *ply, struct overlay_buffer *b,
unsigned nassignments, const struct rhizome_manifest_field_assignment *assignments);
const char *name, unsigned nassignments, const struct rhizome_manifest_field_assignment *assignments);
#endif