Exemple #1
0
mv_message_t *_message_build(mv_value_t value, char *s)
{
#if 0
  mv_value_print(value);
#endif

  mv_value_t tagkey = mv_value_string("tag");
  mv_value_t tagval = mv_value_map_lookup(value, tagkey);
  if (mv_value_is_null(tagval)) {
    fprintf(stdout, "Message does not contain \"tag\" field:\n%s\n", s);
    return NULL;
  }

  mv_value_t argkey = mv_value_string("arg");
  mv_value_t argval = mv_value_map_lookup(value, argkey);
  if (mv_value_is_null(argval)) {
    fprintf(stdout, "Message does not contain \"arg\" field:\n%s\n", s);
    return NULL;
  }

  mv_value_t srckey = mv_value_string("src");
  mv_value_t srcval = mv_value_map_lookup(value, srckey);
  if (mv_value_is_null(srcval)) {
    fprintf(stdout, "Message does not contain \"src\" field:\n%s\n", s);
    return NULL;
  }
  
  mv_message_t *msg = _message_new();
  msg->tag = _message_gettag(mv_value_string_get(tagval));
  msg->arg = argval;
  msg->src = srcval;

  return msg;
}
Exemple #2
0
static AccountMessage * _folder_message_add(AccountFolder * folder,
		off_t offset)
{
	AccountMessage ** p;
	AccountMessage * message;

#ifdef DEBUG
	fprintf(stderr, "DEBUG: %s(\"%s\", %ld)\n", __func__,
			(char const *)folder->config->value, offset);
#endif
	if((p = realloc(folder->messages, sizeof(*p)
					* (folder->messages_cnt + 1))) == NULL)
	{
		/* FIXME track error */
		return NULL;
	}
	folder->messages = p;
	if((message = _message_new(folder->mbox->helper, folder->folder,
					offset)) == NULL)
	{
		/* FIXME track error */
		return NULL;
	}
	folder->messages[folder->messages_cnt++] = message;
	return message;
}
Exemple #3
0
PyFilMessage *fil_message_alloc(void)
{
    PyFilMessage *self;
    
    self = (PyFilMessage *)_message_new(&_message_type, NULL, NULL);
    if (self == NULL)
        return NULL;

    if (_message_init(self, NULL, NULL) < 0)
    {
        Py_DECREF(self);
        return NULL;
    }
    return self;
}