return the number of bytes read. How can this have ever worked ?
1999-08-17 bertrand <Bertrand.Guiheneuf@aful.org> * camel/camel-stream.c (camel_stream_read): return the number of bytes read. How can this have ever worked ? (camel_stream_flush): don't return anything. * camel/gmime-utils.c (get_header_table_from_stream): mem leak fixed. + various other mem leaks. svn path=/trunk/; revision=1120
This commit is contained in:

committed by
Bertrand Guiheneuf

parent
8efa5bea54
commit
08752e1b53
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
1999-08-17 bertrand <Bertrand.Guiheneuf@aful.org>
|
||||
|
||||
* camel/camel-stream.c (camel_stream_read):
|
||||
return the number of bytes read.
|
||||
How can this have ever worked ?
|
||||
(camel_stream_flush): don't return anything.
|
||||
|
||||
* camel/gmime-utils.c (get_header_table_from_stream):
|
||||
mem leak fixed.
|
||||
|
||||
1999-08-16 bertrand <Bertrand.Guiheneuf@aful.org>
|
||||
|
||||
* tests/ui-tests/store_listing.c:
|
||||
|
@ -220,7 +220,7 @@ _remove_part_at (CamelMultipart *multipart, guint index)
|
||||
|
||||
if (!(multipart->parts)) {
|
||||
CAMEL_LOG_FULL_DEBUG ("CamelMultipart::remove_part_at part list is void \n");
|
||||
return;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
parts_list = multipart->parts;
|
||||
@ -337,7 +337,7 @@ _get_boundary (CamelMultipart *multipart)
|
||||
CAMEL_LOG_FULL_DEBUG ("Entering CamelMultipart::_get_boundary\n");
|
||||
if (!CAMEL_DATA_WRAPPER (multipart)->mime_type) {
|
||||
CAMEL_LOG_WARNING ("CamelMultipart::_get_boundary CAMEL_DATA_WRAPPER (multipart)->mime_type is NULL\n");
|
||||
return;
|
||||
return NULL;
|
||||
}
|
||||
boundary = gmime_content_field_get_parameter (CAMEL_DATA_WRAPPER (multipart)->mime_type, "boundary");
|
||||
CAMEL_LOG_FULL_DEBUG ("Leaving CamelMultipart::_get_boundary\n");
|
||||
@ -415,7 +415,7 @@ _write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
|
||||
static gboolean
|
||||
_read_part (CamelStream *new_part_stream, CamelStream *stream, gchar *normal_boundary, gchar *end_boundary)
|
||||
{
|
||||
gchar *new_line;
|
||||
gchar *new_line = NULL;
|
||||
gboolean end_of_part = FALSE;
|
||||
gboolean last_part = FALSE;
|
||||
gboolean first_line = TRUE;
|
||||
@ -436,10 +436,12 @@ _read_part (CamelStream *new_part_stream, CamelStream *stream, gchar *normal_bou
|
||||
first_line = FALSE;
|
||||
camel_stream_write_string (new_part_stream, new_line);
|
||||
} else camel_stream_write_strings (new_part_stream, "\n", new_line, NULL);
|
||||
|
||||
g_free (new_line);
|
||||
new_line = gmime_read_line_from_stream (stream);
|
||||
}
|
||||
}
|
||||
if (new_line) g_free (new_line);
|
||||
|
||||
CAMEL_LOG_FULL_DEBUG ("CamelMultipart:: Leaving _read_part\n");
|
||||
return (last_part || (new_line == NULL));
|
||||
}
|
||||
@ -466,7 +468,8 @@ _construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
|
||||
/* read the prefix if any */
|
||||
new_part_stream = camel_stream_mem_new (CAMEL_STREAM_MEM_RW);
|
||||
end_of_multipart = _read_part (new_part_stream, stream, real_boundary_line, end_boundary_line);
|
||||
gtk_object_destroy (GTK_OBJECT (new_part_stream));
|
||||
CAMEL_LOG_FULL_DEBUG ("CamelMultipart::construct_from_stream freeing new_part_stream:%p\n", new_part_stream);
|
||||
gtk_object_unref (GTK_OBJECT (new_part_stream));
|
||||
if (multipart->preface) g_free (multipart->preface);
|
||||
//if ( (new_part->str)[0] != '\0') multipart->preface = g_strdup (new_part->str);
|
||||
|
||||
|
@ -159,7 +159,7 @@ _construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
|
||||
g_byte_array_free (array, FALSE);
|
||||
}
|
||||
|
||||
array = g_byte_array_new();
|
||||
array = g_byte_array_new ();
|
||||
CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream new byte array address:%p\n", array);
|
||||
simple_data_wrapper->byte_array = array;
|
||||
nb_bytes_read = camel_stream_read (stream, tmp_buf, _CMSDW_TMP_BUF_SIZE);
|
||||
|
@ -66,7 +66,7 @@ camel_stream_fs_class_init (CamelStreamFsClass *camel_stream_fs_class)
|
||||
camel_stream_class->seek = _seek;
|
||||
|
||||
gtk_object_class->finalize = _finalize;
|
||||
gtk_object_class->finalize = _destroy;
|
||||
gtk_object_class->destroy = _destroy;
|
||||
|
||||
}
|
||||
|
||||
@ -111,6 +111,7 @@ _destroy (GtkObject *object)
|
||||
CAMEL_LOG_FULL_DEBUG ( " Full error text is : %s\n", strerror(errno));
|
||||
}
|
||||
GTK_OBJECT_CLASS (parent_class)->destroy (object);
|
||||
g_free (object);
|
||||
CAMEL_LOG_FULL_DEBUG ("Leaving CamelStreamFs::destroy\n");
|
||||
}
|
||||
|
||||
@ -194,10 +195,12 @@ camel_stream_fs_new_with_fd (int fd)
|
||||
static gint
|
||||
_read (CamelStream *stream, gchar *buffer, gint n)
|
||||
{
|
||||
int v;
|
||||
gint v;
|
||||
do {
|
||||
v = read ( (CAMEL_STREAM_FS (stream))->fd, buffer, n);
|
||||
} while (v == -1 && errno == EINTR);
|
||||
if (v<0)
|
||||
CAMEL_LOG_FULL_DEBUG ("CamelStreamFs::read v=%d\n", v);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
@ -104,7 +104,7 @@ camel_stream_get_type (void)
|
||||
gint
|
||||
camel_stream_read (CamelStream *stream, gchar *buffer, gint n)
|
||||
{
|
||||
CS_CLASS (stream)->read (stream, buffer, n);
|
||||
return CS_CLASS (stream)->read (stream, buffer, n);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -133,7 +133,7 @@ camel_stream_write (CamelStream *stream, const gchar *buffer, gint n)
|
||||
void
|
||||
camel_stream_flush (CamelStream *stream)
|
||||
{
|
||||
return CS_CLASS (stream)->flush (stream);
|
||||
CS_CLASS (stream)->flush (stream);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -126,7 +126,7 @@ gmime_content_field_unref (GMimeContentField *content_field)
|
||||
* or valid parameters name depend on the content type object. For example,
|
||||
* gmime_content_field_set_parameter (cf, "charset", "us-ascii");
|
||||
* will make sense for a "text/plain" content field but not for a
|
||||
* "image/gif". This routine does not check parameter validuty.
|
||||
* "image/gif". This routine does not check parameter validity.
|
||||
**/
|
||||
void
|
||||
gmime_content_field_set_parameter (GMimeContentField *content_field, const gchar *attribute, const gchar *value)
|
||||
@ -356,6 +356,8 @@ gmime_content_field_construct_from_string (GMimeContentField *content_field, con
|
||||
CAMEL_LOG_TRACE ( "GMimeContentField::construct_from_string, Found mime parameter \"%s\"=\"%s\"\n", param_name, param_value);
|
||||
string_trim (param_value, " \t", STRING_TRIM_STRIP_TRAILING | STRING_TRIM_STRIP_LEADING);
|
||||
gmime_content_field_set_parameter (content_field, param_name, param_value);
|
||||
g_free (param_name);
|
||||
g_free (param_value);
|
||||
i++;
|
||||
first = i;
|
||||
}
|
||||
|
@ -113,6 +113,8 @@ _store_header_pair_from_string (GHashTable *header_table, gchar *header_line)
|
||||
{
|
||||
gchar dich_result;
|
||||
gchar *header_name, *header_value;
|
||||
gboolean key_exists;
|
||||
gchar *old_header_name, *old_header_value;
|
||||
|
||||
CAMEL_LOG_FULL_DEBUG ( "_store_header_pair_from_string:: Entering\n");
|
||||
g_assert (header_table);
|
||||
@ -121,15 +123,23 @@ _store_header_pair_from_string (GHashTable *header_table, gchar *header_line)
|
||||
dich_result = string_dichotomy ( header_line, ':',
|
||||
&header_name, &header_value,
|
||||
STRING_DICHOTOMY_NONE);
|
||||
if (dich_result != 'o')
|
||||
if (dich_result != 'o') {
|
||||
CAMEL_LOG_WARNING (
|
||||
"** WARNING **\n"
|
||||
"store_header_pair_from_string : dichotomy result is '%c'\n"
|
||||
"header line is :\n--\n%s\n--\n"
|
||||
"** \n", dich_result, header_line);
|
||||
else {
|
||||
if (header_name)
|
||||
g_free (header_name);
|
||||
if (header_value)
|
||||
g_free (header_value);
|
||||
|
||||
} else {
|
||||
string_trim (header_value, " \t",
|
||||
STRING_TRIM_STRIP_LEADING | STRING_TRIM_STRIP_TRAILING);
|
||||
key_exists = g_hash_table_lookup_extended (header_table, header_name, &old_header_name, &old_header_name);
|
||||
if (key_exists)
|
||||
printf ("-------- Key %s already exists /n", header_name);
|
||||
g_hash_table_insert (header_table, header_name, header_value);
|
||||
}
|
||||
}
|
||||
@ -186,9 +196,8 @@ get_header_table_from_stream (CamelStream *stream)
|
||||
}
|
||||
|
||||
default:
|
||||
if (!crlf) header_line = g_string_append_c (header_line, next_char);
|
||||
|
||||
else end_of_header_line = TRUE;
|
||||
if (!crlf) header_line = g_string_append_c (header_line, next_char);
|
||||
else end_of_header_line = TRUE;
|
||||
}
|
||||
} else {
|
||||
end_of_file=TRUE;
|
||||
@ -201,8 +210,8 @@ else end_of_header_line = TRUE;
|
||||
|
||||
} while ( !end_of_header_line );
|
||||
if ( strlen(header_line->str) ) {
|
||||
str_header_line = g_strdup (header_line->str);
|
||||
_store_header_pair_from_string (header_table, str_header_line);
|
||||
/* str_header_line = g_strdup (header_line->str); */
|
||||
_store_header_pair_from_string (header_table, header_line->str);
|
||||
}
|
||||
g_string_free (header_line, FALSE);
|
||||
|
||||
|
@ -136,11 +136,11 @@ string_dichotomy (const gchar *string, gchar sep, gchar **prefix, gchar **suffix
|
||||
}
|
||||
CAMEL_LOG_FULL_DEBUG ("string_dichotomy: separator found at :%d\n", sep_pos);
|
||||
if (prefix) { /* return the prefix */
|
||||
*prefix = g_strndup(string+first,sep_pos-first);
|
||||
*prefix = g_strndup (string+first,sep_pos-first);
|
||||
CAMEL_LOG_FULL_DEBUG ( "string_dichotomy:: prefix:\"%s\"\n", *prefix);
|
||||
}
|
||||
if (suffix) { /* return the suffix */
|
||||
*suffix = g_strndup(string+sep_pos+1, last-sep_pos);
|
||||
*suffix = g_strndup (string+sep_pos+1, last-sep_pos);
|
||||
CAMEL_LOG_FULL_DEBUG ( "string_dichotomy:: suffix:\"%s\"\n", *suffix);
|
||||
}
|
||||
|
||||
|
@ -32,10 +32,14 @@ main (int argc, char**argv)
|
||||
camel_data_wrapper_construct_from_stream ( CAMEL_DATA_WRAPPER (message), input_stream);
|
||||
|
||||
camel_stream_close (input_stream);
|
||||
gtk_object_unref (GTK_OBJECT (input_stream));
|
||||
|
||||
output_stream = camel_stream_fs_new_with_name ("mail2.test", CAMEL_STREAM_FS_WRITE);
|
||||
camel_data_wrapper_write_to_stream (CAMEL_DATA_WRAPPER (message), output_stream);
|
||||
camel_stream_close (output_stream);
|
||||
gtk_object_unref (GTK_OBJECT (output_stream));
|
||||
|
||||
gtk_object_unref (GTK_OBJECT (message));
|
||||
|
||||
return 0;
|
||||
|
||||
|
Reference in New Issue
Block a user