About me / Contact

a.jpgJonh Wendell

E-mail / MSN / Gtalk: jonh.wendell@gmail.com
IRC: jwendell (Freenode and GNOME)
Twitter: http://twitter.com/jwendell
Facebook: https://www.facebook.com/jonhw
Linkedin: http://linkedin.com/in/jonhw

I was born in: MaceióAL – Brasil, Currently living in São Paulo.

Linux and Open Source lover guy
I’m married
Father of 2 beautiful children (aka João Vítor e Mariana)
I love to code
Profession: Programmer

Some contributions to the Free Software world


Maintainer of vino and vinagre modules.


Launchpad ID: https://launchpad.net/~wendell
Linux Distribution
I help it on bug triage and translation.


GNOME software for backup and restore. Simple and powerful.
I help it on coding and translation.


PHP Editor for GNOME.
I help it on coding and translation.

Sound Converter

Audio converter for GNOME. It converts from/to many formats.
I help it on translation.

Music Applet

Little application for GNOME panel, it manages many music players.
I help it on translation.


The Ubuntu Counter Project - user number # 4057

4 thoughts on “About me / Contact”

  1. Hi Jonh, I was reading your iptc post and was wondering if you could help, as i’m totally stuck.
    i’m trying to emulate :: iptables -A INPUT -t filter -p tcp -j NFQUEUE –queue-num $queueNum

    where $queueNum is any int

    so far I have

    static int createFilters(int baseNumber) {

    * input filter looks like this
    * iptables -A INPUT -p tcp -j NFQUEUE –queue-num 0
    * sudo iptables -L INPUT
    * Chain INPUT (policy ACCEPT)
    * target prot opt source destination
    * NFQUEUE tcp — anywhere anywhere NFQUEUE num 5
    const char *table = “filter”;
    const char *chain = “INPUT”;
    const char *target = “QUEUE”;
    struct ipt_entry entry;
    struct xt_NFQ_info {
    u_int16_t queueNum;
    } target;
    } entry;
    struct xtc_handle *h;
    int ret = 1;

    h = iptc_init (table);
    if (!h) {
    fprintf (stderr, “Could not init IPTC library: %s\n”, iptc_strerror (errno));
    goto out;

    memset (&entry, 0, sizeof (entry));
    /* target */
    entry.target.queueNum = XT_ALIGN (baseNumber);
    entry.entry.target_offset = sizeof (struct ipt_entry);
    entry.entry.next_offset = entry.entry.target_offset + sizeof(entry.target);

    if (!iptc_append_entry (chain, (struct ipt_entry *) &entry, h)) {
    fprintf (stderr, “Could not insert a rule in iptables (table %s): %s\n”, table, iptc_strerror (errno));
    goto out;

    if (!iptc_commit (h)) {
    fprintf (stderr, “Could not commit changes in iptables (table %s): %s\n”, table, iptc_strerror (errno));
    goto out;

    ret = 0;

    if (h)
    iptc_free (h);

    return ret;

    but it won’t commit. Any thoughts?


  2. Hi John,

    I am working with Istio right now and your walkthrough issues and how to solve it have been really helpful to understand how it works and for sure how to solve my issue.
    Just taking a minute to say Thanks for your posts man, you rock!

Leave a Reply

Your email address will not be published.