Signed-off-by: Frediano Ziglio
---
server/reds.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Changes since v1:
- rebases on master, one free was removed.
diff --git a/server/reds.c b/server/reds.c
index 8b081bbe2..683af96ff 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -345,7
Capabilities are allocated even in reds.c.
Signed-off-by: Frediano Ziglio
---
server/reds.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/server/reds.c b/server/reds.c
index dcdc29d63..13842fb1a 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -1749,14 +1749,14 @@
Signed-off-by: Matthew Francis
---
doc/reference/spice-gtk-sections.txt | 11 ++
src/channel-main.c | 283 +++
src/channel-main.h | 99
src/map-file | 13 ++
src/spice-glib-sym-file
Signed-off-by: Matthew Francis
---
doc/reference/spice-gtk-sections.txt | 3 ++
src/channel-port.c | 67 +++-
src/channel-port.h | 15
src/map-file | 3 ++
src/spice-glib-sym-file |
Signed-off-by: Matthew Francis
---
doc/reference/spice-gtk-sections.txt | 1 +
src/channel-record.c | 19 +++
src/channel-record.h | 6 ++
src/map-file | 1 +
src/spice-glib-sym-file | 1 +
src/spice-gsta
Various C functions have not been named correctly to be picked up as bound
methods under introspection. This renames them to ensure correct binding.
Outline:
- Rename incorrectly named functions
- Introduce deprecated wrappers for the original function names
- Update in-tree references to use t
Signed-off-by: Matthew Francis
---
doc/reference/spice-gtk-sections.txt | 8 ++
src/channel-inputs.c | 146 ++-
src/channel-inputs.h | 34 ++--
src/map-file | 8 ++
src/spice-glib-sym-file
Signed-off-by: Matthew Francis
---
doc/reference/spice-gtk-sections.txt | 5 ++
src/channel-display.c| 92 +++-
src/channel-display.h| 22 +++--
src/map-file | 5 ++
src/spice-glib-sym-file
Acked-by: Jonathon Jongsma
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/main-channel.c | 4 ++--
> server/reds.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/server/main-channel.c b/server/ma
Acked-by: Jonathon Jongsma
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/reds.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/server/reds.c b/server/reds.c
> index 9b573987a..8906708d1 100644
> --- a/se
Acked-by: Jonathon Jongsma
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/reds.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/server/reds.c b/server/reds.c
> index acb25dd9f..9b573987a 100644
> --- a/se
Acked-by: Jonathon Jongsma
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/main-channel.c | 4 ++--
> server/reds.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/server/main-channel.c b/server/ma
Acked-by: Jonathon Jongsma
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/reds.c | 18 +-
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/server/reds.c b/server/reds.c
> index 5d7f39621..0b9ffa8da 10
This patch doesn't seem to apply to master
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/reds.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/server/reds.c b/server/reds.c
> index 3782e6404..5d7f39621
Acked-by: Jonathon Jongsma
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/reds.c | 21 +++--
> 1 file changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/server/reds.c b/server/reds.c
> index 01e8c5499..3782e64
Acked-by: Jonathon Jongsma
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/sound.c | 16
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/server/sound.c b/server/sound.c
> index de51a4670..9073626cd 1
Acked-by: Jonathon Jongsma
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/image-encoders.c | 20 ++--
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/server/image-encoders.c b/server/image-encoders
On Mon, 2017-09-11 at 16:15 +0100, Frediano Ziglio wrote:
> Start reducing the usage of spice_new*/spice_malloc allocations.
> They were designed in a similar way to GLib ones.
> Now that we use GLib make sense to remove them.
> However the versions we support for GLib can use different memory
> al
On Thu, 2017-09-07 at 10:28 +0100, Frediano Ziglio wrote:
> You could easily trigger this issue using multiple monitors and a
> modified spice-gtk client with this patch:
>
> --- a/src/channel-main.c
> +++ b/src/channel-main.c
> @@ -1699,6 +1699,7 @@ static gboolean _channel_new(channel_new_
On Mon, Sep 18, 2017 at 11:40:18AM -0400, Frediano Ziglio wrote:
> >
> > On Mon, Sep 18, 2017 at 11:28:30AM +0100, Frediano Ziglio wrote:
> > > +// timer waiting we get data again
> > > +static void timer_wakeup(void *opaque)
> > > +{
> > > +SpiceCoreInterface *core = opaque;
> > > +
> > > +
On Wed, Sep 13, 2017 at 10:15:14AM +0100, Frediano Ziglio wrote:
> Now the push is done automatically when a PipeItem is added
> (cfr commit 5c460de1a3972b7cf2b9b2944d0b500c3affc363
> "worker: push data when clients can receive them"),
> forcing a push cause only network fragmentation and is requir
Ack.
Cheers,
Jeremy
On 09/18/2017 06:13 AM, Tomáš Bohdálek wrote:
> Sorry for send-email mistakes.
> ---
> display.js | 16
> enums.js| 11 +--
> spicemsg.js | 24
> 3 files changed, 49 insertions(+), 2 deletions(-)
>
> diff --git a/displa
On Wed, Aug 30, 2017 at 01:51:27PM +0100, Frediano Ziglio wrote:
> Disconnecting a single channel from the client caused the server to
> keep a stale channel client till the client entirely disconnected.
"stale" as in "the channel client is disconnected but still in the
list"? or something else?
Ack, thanks.
Cheers,
Jeremy
On 09/18/2017 06:08 AM, Tomáš Bohdálek wrote:
> ---
> display.js | 15 +++
> enums.js| 10 ++
> spicemsg.js | 20
> 3 files changed, 45 insertions(+)
>
> diff --git a/display.js b/display.js
> index 7719b23..4649ef2 1006
Hi Tomáš,
On 09/18/2017 05:58 AM, Tomáš Bohdálek wrote:
> This will be used in other commits.
> ---
> spiceconn.js | 22 ++
> 1 file changed, 22 insertions(+)
>
> diff --git a/spiceconn.js b/spiceconn.js
> index 33e7388..abe9a4a 100644
> --- a/spiceconn.js
> +++ b/spiceconn.j
Signed-off-by: Frediano Ziglio
---
server/tests/Makefile.am| 1 +
server/tests/test-channel.c | 348
2 files changed, 349 insertions(+)
create mode 100644 server/tests/test-channel.c
Changes since v2:
- typos/comments;
- remove a small leak.
d
>
> On Mon, Sep 18, 2017 at 11:28:30AM +0100, Frediano Ziglio wrote:
> > Signed-off-by: Frediano Ziglio
> > ---
> > server/tests/Makefile.am| 1 +
> > server/tests/test-channel.c | 347
> >
> > 2 files changed, 348 insertions(+)
> > create mod
Hi Tomáš,
You missed one of my comments on this patch; I pointed out that your
earlier version did not apply; I think that failure is more serious than
you realize.
I will not ack any patch that does not apply cleanly to the current
upstream/master. If I do:
git checkout -b test origin/master
>
> It was using g_list_remove_link() to remove an element from the
> RedChannel::clients list while it really meant to be using
> g_list_delete_link() which frees the memory associated with the link.
>
> Signed-off-by: Christophe Fergeau
Acked-by: Frediano Ziglio
Looks like Valgrind finds le
It was using g_list_remove_link() to remove an element from the
RedChannel::clients list while it really meant to be using
g_list_delete_link() which frees the memory associated with the link.
Signed-off-by: Christophe Fergeau
---
server/red-channel.c | 2 +-
1 file changed, 1 insertion(+), 1 de
>
> On Mon, Sep 18, 2017 at 06:19:03AM -0400, Frediano Ziglio wrote:
> > >
> > > On Mon, Sep 11, 2017 at 09:08:54AM +0100, Frediano Ziglio wrote:
> > > > This structure was used to store the cookie for the async
> > > > reply and the message for the generic async callback.
> > >
> > > > Most asy
On Mon, Sep 18, 2017 at 11:28:30AM +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/tests/Makefile.am| 1 +
> server/tests/test-channel.c | 347
>
> 2 files changed, 348 insertions(+)
> create mode 100644 server/tes
The macro will implement most of the boilerplate needed to declare an
object.
Its usage is similar to GLib G_DECLARE_*_TYPE macros.
Signed-off-by: Frediano Ziglio
---
Changes since v3:
- define just SPICE_DECLARE_TYPE.
Changes since v2:
- declare only SPICE_DECLARE_TYPE, all type should have prop
This series supersedes previous one adding a test.
First 2 patches are exactly version 2.
Changes since v1:
- improved some comments;
- declare just an helper macro.
Frediano Ziglio (4):
red-channel-client: Introduce a helper to update watch event mask
red-channel-client: Prevent too tight lo
Signed-off-by: Frediano Ziglio
---
server/tests/Makefile.am| 1 +
server/tests/test-channel.c | 347
2 files changed, 348 insertions(+)
create mode 100644 server/tests/test-channel.c
diff --git a/server/tests/Makefile.am b/server/tests/Makefile
This helper will be reused by following patch.
Signed-off-by: Frediano Ziglio
Acked-by: Christophe Fergeau
---
server/red-channel-client.c | 29 ++---
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/server/red-channel-client.c b/server/red-channel-client.
RedChannelClient has a "handle-acks" feature.
If this feature is enabled, after the configured number of messages it
waits for an ACK from the client.
If is waiting for an ACK it stops sending messages.
However the write notification was not disabled, causing the loop event
to always trigger, as th
> >
> > Has this been tested on actual problematic hardware, and improved
> > performance? I remember last time this was discussed, the outcome was
> > not always what was expected.
> >
> > Christophe
> >
>
> I don't remember old discussions, there were actually 2 different ones
> which were c
>
> Has this been tested on actual problematic hardware, and improved
> performance? I remember last time this was discussed, the outcome was
> not always what was expected.
>
> Christophe
>
I don't remember old discussions, there were actually 2 different ones
which were confusing as one was r
On Mon, Sep 18, 2017 at 11:28:29AM +0100, Frediano Ziglio wrote:
> The macros will implement most of the boilerplate needed
> to declare an object.
> Their usage are similar to GLib G_DECLARE_*_TYPE macros.
>
> Signed-off-by: Frediano Ziglio
> ---
> Changes since v1:
> - use SPICE_ prefix instead
On Mon, Sep 18, 2017 at 11:28:28AM +0100, Frediano Ziglio wrote:
> RedChannelClient has a "handle-acks" feature.
> If this feature is enabled after the configured number of messages
> it waits for an ACK.
> If is waiting for an ACK it stops sending messages.
> However the write notification was not
Has this been tested on actual problematic hardware, and improved
performance? I remember last time this was discussed, the outcome was
not always what was expected.
Christophe
On Mon, Sep 18, 2017 at 02:52:57AM -0400, Frediano Ziglio wrote:
> ping
>
> I think I sent a reply after the new path w
Acked-by: Christophe Fergeau
On Thu, Aug 31, 2017 at 08:36:40AM +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/red-qxl.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/server/red-qxl.h b/server/red-qxl.h
> index 93cc4d0f..f925f065
On Mon, Sep 18, 2017 at 11:31:02AM +0100, Frediano Ziglio wrote:
> Put not trivial program in separate sections making easier
> to understand the relationship between macros.
"Put non-trivial programs in separate sections, which makes it easier to
understand the relationship between macros"
Acked
Acked-by: Christophe Fergeau
On Mon, Sep 18, 2017 at 11:31:03AM +0100, Frediano Ziglio wrote:
> All main test module have this test-.c naming, make
> test-stat coherent.
>
> Signed-off-by: Frediano Ziglio
> ---
> server/tests/Makefile.am | 2 +-
> server/tests/{stat-main.
Acked-by: Christophe Fergeau
On Mon, Sep 18, 2017 at 11:31:04AM +0100, Frediano Ziglio wrote:
> New automake test harness produce *.log and *.trs files for
> each test.
>
> Signed-off-by: Frediano Ziglio
> ---
> server/tests/.gitignore | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git
On Mon, Sep 18, 2017 at 06:19:03AM -0400, Frediano Ziglio wrote:
> >
> > On Mon, Sep 11, 2017 at 09:08:54AM +0100, Frediano Ziglio wrote:
> > > This structure was used to store the cookie for the async
> > > reply and the message for the generic async callback.
> >
> > > Most async messages do no
Sorry for send-email mistakes.
---
display.js | 16
enums.js| 11 +--
spicemsg.js | 24
3 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/display.js b/display.js
index 4649ef2..5786792 100644
--- a/display.js
+++ b/display.js
@@
---
display.js | 15 +++
enums.js| 10 ++
spicemsg.js | 20
3 files changed, 45 insertions(+)
diff --git a/display.js b/display.js
index 7719b23..4649ef2 100644
--- a/display.js
+++ b/display.js
@@ -865,6 +865,21 @@ SpiceDisplayConn.prototype.destroy_
---
display.js | 15 +++
enums.js| 10 ++
spicemsg.js | 20
3 files changed, 45 insertions(+)
diff --git a/display.js b/display.js
index 7719b23..4649ef2 100644
--- a/display.js
+++ b/display.js
@@ -865,6 +865,21 @@ SpiceDisplayConn.prototype.destroy_
---
display.js | 15 +++
enums.js| 10 ++
spicemsg.js | 20
3 files changed, 45 insertions(+)
diff --git a/display.js b/display.js
index 7719b23..4649ef2 100644
--- a/display.js
+++ b/display.js
@@ -865,6 +865,21 @@ SpiceDisplayConn.prototype.destroy_
This will be used in other commits.
---
spiceconn.js | 22 ++
1 file changed, 22 insertions(+)
diff --git a/spiceconn.js b/spiceconn.js
index 33e7388..abe9a4a 100644
--- a/spiceconn.js
+++ b/spiceconn.js
@@ -495,6 +495,28 @@ SpiceConn.prototype =
var e = new Error("Co
Put not trivial program in separate sections making easier
to understand the relationship between macros.
Signed-off-by: Frediano Ziglio
---
server/tests/Makefile.am | 40 ++--
1 file changed, 22 insertions(+), 18 deletions(-)
diff --git a/server/tests/Makefi
Quite independent patches touching file names and build
system.
Frediano Ziglio (3):
tests: Separate Makefile.am in sections
tests: Rename stat-main.c to test-stat.c
tests: Ignore test output results
server/tests/.gitignore | 2 ++
server/tests/Makefile.am
Hi
- Original Message -
> On 18 September 2017 at 15:03, Frediano Ziglio wrote:
> > > {
> > > +G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > > +spice_port_channel_write_async(self, buffer, count, cancellable,
> > > callback, user_data);
> > > +G_GNUC_END_IGNORE_DEPRECATIONS
> >
> > Wh
All main test module have this test-.c naming, make
test-stat coherent.
Signed-off-by: Frediano Ziglio
---
server/tests/Makefile.am | 2 +-
server/tests/{stat-main.c => test-stat.c} | 0
2 files changed, 1 insertion(+), 1 deletion(-)
rename server/tests/{stat-main.c => test
New automake test harness produce *.log and *.trs files for
each test.
Signed-off-by: Frediano Ziglio
---
server/tests/.gitignore | 2 ++
1 file changed, 2 insertions(+)
diff --git a/server/tests/.gitignore b/server/tests/.gitignore
index 0c34616e3..f546a74de 100644
--- a/server/tests/.gitignor
Name them correctly to allow them to be picked up as methods under introspection
---
src/channel-port.c | 67 -
src/channel-port.h | 15 +++
src/map-file| 3 +++
src/spice-glib-sym-file | 3 +++
tools/spicy.c
RedChannelClient has a "handle-acks" feature.
If this feature is enabled after the configured number of messages
it waits for an ACK.
If is waiting for an ACK it stops sending messages.
However the write notification was not disabled causing the
loop event to always trigger as the socket in this ca
Signed-off-by: Frediano Ziglio
---
server/tests/Makefile.am| 1 +
server/tests/test-channel.c | 347
2 files changed, 348 insertions(+)
create mode 100644 server/tests/test-channel.c
diff --git a/server/tests/Makefile.am b/server/tests/Makefile
The macros will implement most of the boilerplate needed
to declare an object.
Their usage are similar to GLib G_DECLARE_*_TYPE macros.
Signed-off-by: Frediano Ziglio
---
Changes since v1:
- use SPICE_ prefix instead of GOBJECT_;
- if RED_ prefix is used use this prefix for all GLib
macros.
---
This series supersedes previous one adding a test.
First 2 patches are exactly version 2.
Frediano Ziglio (4):
red-channel-client: Introduce a helper to update watch event mask
red-channel-client: Prevent too tight loop waiting for ACKs
Introduce some macros to help declaring new GObject
t
This helper will be reused by following patch.
Signed-off-by: Frediano Ziglio
Acked-by: Christophe Fergeau
---
server/red-channel-client.c | 29 ++---
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/server/red-channel-client.c b/server/red-channel-client.
On 18 September 2017 at 15:03, Frediano Ziglio wrote:
> > {
> > +G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > +spice_port_channel_write_async(self, buffer, count, cancellable,
> > callback, user_data);
> > +G_GNUC_END_IGNORE_DEPRECATIONS
>
> Why you need to disable deprecation warnings if you
>
> On Mon, Sep 11, 2017 at 09:08:54AM +0100, Frediano Ziglio wrote:
> > This structure was used to store the cookie for the async
> > reply and the message for the generic async callback.
>
> > Most async messages do not require extra action beside
> > sending back the cookie for the reply so in
On Mon, Sep 11, 2017 at 09:08:55AM +0100, Frediano Ziglio wrote:
> Now that the function is a wrapper reuse it.
Acked-by: Christophe Fergeau
>
> Signed-off-by: Frediano Ziglio
> ---
> server/red-qxl.c | 7 ++-
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/server/red-
On Mon, Sep 11, 2017 at 09:08:54AM +0100, Frediano Ziglio wrote:
> This structure was used to store the cookie for the async
> reply and the message for the generic async callback.
> Most async messages do not require extra action beside
> sending back the cookie for the reply so instead of using
Acked-by: Christophe Fergeau
On Mon, Sep 18, 2017 at 10:16:30AM +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio
> ---
> server/smartcard.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/server/smartcard.c b/server/smartcard.c
> index 73f248518..fa3a55d
---
main.js | 79 +
spice.html | 5
spice_auto.html | 5
3 files changed, 61 insertions(+), 28 deletions(-)
diff --git a/main.js b/main.js
index 6a04da9..e93536b 100644
--- a/main.js
+++ b/main.js
@@ -375,36 +375,49
Signed-off-by: Frediano Ziglio
---
server/smartcard.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/smartcard.c b/server/smartcard.c
index 73f248518..fa3a55ddb 100644
--- a/server/smartcard.c
+++ b/server/smartcard.c
@@ -490,7 +490,7 @@ void
smartcard_channel_write_t
---
enums.js| 12 ++--
main.js | 16 ++--
spicemsg.js | 4
3 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/enums.js b/enums.js
index d5a9003..7154595 100644
--- a/enums.js
+++ b/enums.js
@@ -369,12 +369,20 @@ var VD_AGENT_CAP_MOUSE_STATE
Hi Jeremy,
I will fix it and yes, we can just add condition to unhandled errors.
Tomáš
2017-09-15 20:18 GMT+02:00 Jeremy White :
> Hi Tomáš,
>
>
> On 09/06/2017 03:52 AM, Tomáš Bohdálek wrote:
> > ---
> > main.js | 15 +++
> > spice.html | 5 +
> > spice_auto.html
Hi Jeremy,
on success we don't display anything, so we can send message with success
to the console.
I will fix incorrect '>=' in spicemsg.
Tomáš
2017-09-15 20:13 GMT+02:00 Jeremy White :
> Hi Tomáš,
>
> On 09/06/2017 03:52 AM, Tomáš Bohdálek wrote:
> > ---
> > enums.js| 12 ++--
>
On Fri, Sep 15, 2017 at 01:56:25PM -0400, Frediano Ziglio wrote:
> > > > please find two trivial patches against 0.12.13 attached
> > > > that (1) introduce one more architecture detection, and
> > > > (2) fix "endianess" spelling
> > Thank you; here they go again.
> Acked both. And also found ano
ping
>
> Now that the function is a wrapper reuse it.
>
> Signed-off-by: Frediano Ziglio
> ---
> server/red-qxl.c | 7 ++-
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/server/red-qxl.c b/server/red-qxl.c
> index 5815e4406..ef1f662df 100644
> --- a/server/red-qxl.c
>
ping
>
> This structure was used to store the cookie for the async
> reply and the message for the generic async callback.
> Most async messages do not require extra action beside
> sending back the cookie for the reply so instead of using
> a switch inline the replies and remove store the cookie
ping
>
> Signed-off-by: Frediano Ziglio
> ---
> server/red-qxl.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/server/red-qxl.h b/server/red-qxl.h
> index 93cc4d0f..f925f065 100644
> --- a/server/red-qxl.h
> +++ b/server/red-qxl.h
> @@ -15,8 +15,8 @@
> Lice
>
> Name functions correctly to allow them to be picked up as methods under
> introspection
> ---
> src/channel-port.c | 73
> -
> src/channel-port.h | 15 ++
> src/map-file| 3 ++
> src/spice-glib-sym-file | 3 ++
>
78 matches
Mail list logo