[Olsr-dev] txtinfo patch

Hannes Gredler (spam-protected)
Wed Mar 5 00:00:59 CET 2008


hi markus,

your patch is malformed - pls send it as email attachment or provide
a pointer to your mercurial tree.

/hannes

--

(spam-protected) ~/dev/sf.net/olsrd/lib/txtinfo/src $ !patch
patch -p0 < ../../../txtinfo.diff 
patching file olsrd_txtinfo.c
patch: **** malformed patch at line 4: /* IPC initialization function */

(spam-protected) ~/dev/sf.net/olsrd/lib/txtinfo/src $ hg import ../../../txtinfo.diff 
applying ../../../txtinfo.diff
abort: unable to strip away 1 dirs from olsrd_txtinfo.orig


On Mon, Mar 03, 2008 at 04:58:02PM +0100, Markus Kittenberger wrote:
|    Hi
|    Follwing patch makes the txtinfo more useable,..
|    it is competely backward compatilbe, but adds some more HTTP parameters
|    original txtinfo only handles /neighbours HTTP parameter
|    You may have a look at
|    [1]http://193.238.156.38/status.html (standalone)
|    [2]http://193.238.156.38/cgi-bin-state.html (embedded)
|    where you see it in action in combination with my ajax-state-gui.ipk
|    (still experimental - Opera will work, Firefox may work, IE is
|    buggy, without js you should get traditional status page)
|    [3]http://texas.funkfeuer.at/~markus/ajax-state-gui/
|    Markus
|    --- olsrd_txtinfo.orig 2008-03-03 16:36:34.000000000 +0100
|    +++ olsrd_txtinfo.c 2008-03-03 16:54:26.000000000 +0100
|    @@ -95,11 +95,13 @@
|    /* IPC initialization function */
|    static int plugin_ipc_init(void);
|    -static void send_info(int neighonly);
|    +static void send_info(int send_what);
|    static void ipc_action(int);
|    -static void ipc_print_neigh_link(void);
|    +static void ipc_print_neigh(void);
|    +
|    +static void ipc_print_link(void);
|    static void ipc_print_routes(void);
|    @@ -110,6 +112,16 @@
|    static void ipc_print_mid(void);
|    #define TXT_IPC_BUFSIZE 256
|    +
|    +#define SIW_ALL 0
|    +#define SIW_NEIGH 1
|    +#define SIW_LINK 2
|    +#define SIW_ROUTE 3
|    +#define SIW_HNA 4
|    +#define SIW_MID 5
|    +#define SIW_TOPO 6
|    +#define SIW_NEIGHLINK 7
|    +
|    static int ipc_sendf(const char* format, ...)
|    __attribute__((format(printf, 1, 2)));
|    /**
|    @@ -230,7 +242,7 @@
|    char addr[INET6_ADDRSTRLEN];
|    fd_set rfds;
|    struct timeval tv;
|    - int neighonly = 0;
|    + int send_what = 0;
|    socklen_t addrlen = sizeof(struct sockaddr_storage);
|    @@ -285,40 +297,29 @@
|    * page the normal output is somewhat lengthy. The
|    * header parsing is sufficient for standard wget.
|    */
|    - neighonly = (0 != strstr(requ, "/neighbours"));
|    + if (0 != strstr(requ, "/neighbours")) send_what=SIW_NEIGHLINK;
|    + else if (0 != strstr(requ, "/neigh")) send_what=SIW_NEIGH;
|    + else if (0 != strstr(requ, "/link")) send_what=SIW_LINK;
|    + else if (0 != strstr(requ, "/route")) send_what=SIW_ROUTE;
|    + else if (0 != strstr(requ, "/hna")) send_what=SIW_HNA;
|    + else if (0 != strstr(requ, "/mid")) send_what=SIW_MID;
|    + else if (0 != strstr(requ, "/topo")) send_what=SIW_TOPO;
|    }
|    }
|    - send_info(neighonly);
|    + send_info(send_what);
|    close(ipc_connection);
|    ipc_open = 0;
|    }
|    -static void ipc_print_neigh_link(void)
|    +static void ipc_print_neigh(void)
|    {
|    - struct ipaddr_str buf1, buf2;
|    + struct ipaddr_str buf1;
|    struct neighbor_entry *neigh;
|    struct neighbor_2_list_entry *list_2;
|    - struct link_entry *link = NULL;
|    int index, thop_cnt;
|    - ipc_sendf("Table: Links\nLocal IP\tremote
|    IP\tHysteresis\tLinkQuality\tlost\ttotal\tNLQ\tETX\n");
|    -
|    - /* Link set */
|    - link = link_set;
|    - while(link) {
|    - ipc_sendf( "%s\t%s\t%0.2f\t%0.2f\t%d\t%d\t%0.2f\t%0.2f\t\n",
|    - olsr_ip_to_string(&buf1, &link->local_iface_addr),
|    - olsr_ip_to_string(&buf2, &link->neighbor_iface_addr),
|    - link->L_link_quality,
|    - link->loss_link_quality,
|    - link->lost_packets,
|    - link->total_packets,
|    - link->neigh_link_quality,
|    - olsr_calc_link_etx(link));
|    - link = link->next;
|    - }
|    ipc_sendf("\nTable: Neighbors\nIP
|    address\tSYM\tMPR\tMPRS\tWillingness\t2 Hop Neighbors\n");
|    /* Neighbors */
|    @@ -347,6 +348,31 @@
|    ipc_sendf("\n");
|    }
|    +static void ipc_print_link(void)
|    +{
|    + struct ipaddr_str buf1, buf2;
|    + struct link_entry *link = NULL;
|    +
|    + ipc_sendf("Table: Links\nLocal IP\tremote
|    IP\tHysteresis\tLinkQuality\tlost\ttotal\tNLQ\tETX\n");
|    +
|    + /* Link set */
|    + link = link_set;
|    + while(link) {
|    + ipc_sendf( "%s\t%s\t%0.2f\t%0.2f\t%d\t%d\t%0.2f\t%0.2f\t\n",
|    + olsr_ip_to_string(&buf1, &link->local_iface_addr),
|    + olsr_ip_to_string(&buf2, &link->neighbor_iface_addr),
|    + link->L_link_quality,
|    + link->loss_link_quality,
|    + link->lost_packets,
|    + link->total_packets,
|    + link->neigh_link_quality,
|    + olsr_calc_link_etx(link));
|    + link = link->next;
|    + }
|    +
|    + ipc_sendf("\n");
|    +}
|    +
|    static void ipc_print_routes(void)
|    {
|    struct ipaddr_str buf1, buf2;
|    @@ -482,7 +508,7 @@
|    }
|    -static void send_info(int neighonly)
|    +static void send_info(int send_what)
|    {
|    /* Print minimal http header */
|    ipc_sendf("HTTP/1.0 200 OK\n");
|    @@ -491,19 +517,21 @@
|    /* Print tables to IPC socket */
|    /* links + Neighbors */
|    - ipc_print_neigh_link();
|    + if
|    ((send_what==SIW_ALL)||(send_what==SIW_NEIGHLINK)||(send_what==SIW_LINK
|    )) ipc_print_link();
|    +
|    + if
|    ((send_what==SIW_ALL)||(send_what==SIW_NEIGHLINK)||(send_what==SIW_NEIG
|    H)) ipc_print_neigh();
|    /* topology */
|    - if (!neighonly) ipc_print_topology();
|    + if ((send_what==SIW_ALL)||(send_what==SIW_TOPO))
|    ipc_print_topology();
|    /* hna */
|    - if (!neighonly) ipc_print_hna();
|    + if ((send_what==SIW_ALL)||(send_what==SIW_HNA)) ipc_print_hna();
|    /* mid */
|    - if (!neighonly) ipc_print_mid();
|    + if ((send_what==SIW_ALL)||(send_what==SIW_MID)) ipc_print_mid();
|    /* routes */
|    - if (!neighonly) ipc_print_routes();
|    + if ((send_what==SIW_ALL)||(send_what==SIW_ROUTE)) ipc_print_routes();
|    }
|    /*
| 
| References
| 
|    1. http://193.238.156.38/status.html
|    2. http://193.238.156.38/cgi-bin-state.html
|    3. http://texas.funkfeuer.at/~markus/ajax-state-gui/

| -- 
| Olsr-dev mailing list
| (spam-protected)
| http://lists.olsr.org/mailman/listinfo/olsr-dev




More information about the Olsr-dev mailing list