/* * call-seq: * sender -> string * * The private group name of the Spread node that sent the message. */ static VALUE sm_sender(VALUE obj) { /* * The various message types store different stuff in the `sender' * field, but since it's always a NUL-terminated string, the * implementation remains the same. */ struct SpreadMessage *sp_mess; Data_Get_Struct(obj, struct SpreadMessage, sp_mess); /* XXX: is it worth memo-izing this? */ return rb_str_new2(sp_mess->sender); }