---------- Forwarded message ----------
From: Rodolfo Garcia <[EMAIL PROTECTED]>
Date: Sun, 06 Mar 2005 12:54:57 +0100
Subject: E-Net Patch
To: enlightenment-cvs@lists.sourceforge.net


Hi,

I am using a eth1 as NIC, but E-Net only works with eth0. I make this patch:

E-Net.epplet [interface]

Comments?

bye.




-- 
Hisham Mardam Bey
MSc (Computer Science)
http://hisham.cc/
+9613609386
Codito Ergo Sum (I Code Therefore I Am)
#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <signal.h>
#include <sys/wait.h>
#include <errno.h>
#include "epplet.h"
#include "net.h"

/* kix -> patch for multiple interface */
#define IFLEN	10

double              bands[] =
{1000000000, 100000000, 10000000, 2000000, 1540000, 1000000, 512000, 256000,
 144000, 128000, 64000, 56000, 33600, 28800, 14400, 9600, 4800, 2400, 300, 75
};

double              upstream_max = 1540000;
double              downstream_max = 1540000;
int                 up_val = 0;
int                 down_val = 0;
double              up_last = 0;
double              down_last = 0;
Epplet_gadget       load_up;
Epplet_gadget       load_down;
char				iface[IFLEN];

static void         cb_timer(void *data);
static void         cb_close(void *data);
static void         cb_set_upstream(void *data);
static void         cb_set_downstream(void *data);
static void         save_conf(void);
static void         load_conf(void);


static void
cb_timer(void *data)
{
   double              val = -1.0, val2 = -1.0, dval, dval2;
   unsigned char       invalid;

   invalid = net_get_bytes_inout(iface, &val, &val2);
   if (invalid)
     {
	char                err[255];

	Esnprintf(err, sizeof(err), "Unable to get network device statistics for %s:  %s", iface, net_strerror(invalid));
	Epplet_dialog_ok(err);
	Epplet_unremember();
	Esync();
	exit(-1);
     }
   if (val != -1.0)
     {
	dval2 = val2 - down_last;
	dval = val - up_last;
	down_last = val2;
	up_last = val;
	down_val = (int)((dval2 * 800 * 3) / downstream_max);
	up_val = (int)((dval * 800 * 3) / upstream_max);
	if (down_val > 100)
	   down_val = 100;
	if (up_val > 100)
	   up_val = 100;
	Epplet_gadget_data_changed(load_up);
	Epplet_gadget_data_changed(load_down);
	Esync();
     }
   Epplet_timer(cb_timer, NULL, 0.333, "TIMER");
   return;
   data = NULL;
}

static void
save_conf(void)
{
   char                s[1024];

   Esnprintf(s, sizeof(s), "%f", upstream_max);
   Epplet_modify_config("upstream_max", s);
   Esnprintf(s, sizeof(s), "%f", downstream_max);
   Epplet_modify_config("downstream_max", s);
   Epplet_modify_config("interface", iface);
   Epplet_save_config();
}

static void
load_conf(void)
{
   char               *s;

   s = Epplet_query_config_def("upstream_max", "1540000");
   upstream_max = (double)atof(s);

   s = Epplet_query_config_def("downstream_max", "1540000");
   downstream_max = (double)atof(s);

   s = Epplet_query_config_def("interface", "eth0");
   strncpy(iface, s, IFLEN -1);
   iface[IFLEN] = '\0';
}

static void
cb_set_upstream(void *data)
{
   upstream_max = *((double *)data);
   save_conf();
}

static void
cb_set_downstream(void *data)
{
   downstream_max = *((double *)data);
   save_conf();
}

static void
cb_set_iface(void)
{
   save_conf();
}

static void
cb_close(void *data)
{
   Epplet_unremember();
   Esync();
   data = NULL;
   exit(0);
}

int
main(int argc, char **argv)
{
   Epplet_gadget       p1, p2;
   int                 prio;

   prio = getpriority(PRIO_PROCESS, getpid());
   setpriority(PRIO_PROCESS, getpid(), prio + 10);
   atexit(Epplet_cleanup);

   Epplet_Init("E-Net", "0.1", "Enlightenment Network Load Epplet",
	       5, 2, argc, argv, 0);
   Epplet_load_config();
   load_conf();

   /* Load the interface */
   if (argc == 2) {
	   strncpy(iface, argv[1], IFLEN -1);
	   iface[IFLEN] = '\0';
	   cb_set_iface();
   }

   Epplet_timer(cb_timer, NULL, 0.333, "TIMER");
   Epplet_gadget_show(Epplet_create_button(NULL, NULL,
					   2, 2, 0, 0, "CLOSE", 0, NULL,
					   cb_close, NULL));
   p1 = Epplet_create_popup();
   Epplet_add_popup_entry(p1, "1 Gbit", NULL, cb_set_upstream, (void *)(&(bands[0])));
   Epplet_add_popup_entry(p1, "100 Mbit", NULL, cb_set_upstream, (void *)(&(bands[1])));
   Epplet_add_popup_entry(p1, "10 Mbit", NULL, cb_set_upstream, (void *)(&(bands[2])));
   Epplet_add_popup_entry(p1, "2 Mbit", NULL, cb_set_upstream, (void *)(&(bands[3])));
   Epplet_add_popup_entry(p1, "1.54 Mbit T1", NULL, cb_set_upstream, (void *)(&(bands[4])));
   Epplet_add_popup_entry(p1, "1 Mbit", NULL, cb_set_upstream, (void *)(&(bands[5])));
   Epplet_add_popup_entry(p1, "512 Kbit", NULL, cb_set_upstream, (void *)(&(bands[6])));
   Epplet_add_popup_entry(p1, "256 Kbit", NULL, cb_set_upstream, (void *)(&(bands[7])));
   Epplet_add_popup_entry(p1, "144 Kbit", NULL, cb_set_upstream, (void *)(&(bands[8])));
   Epplet_add_popup_entry(p1, "128 Kbit ISDN", NULL, cb_set_upstream, (void *)(&(bands[9])));
   Epplet_add_popup_entry(p1, "64 Kbit ISDN", NULL, cb_set_upstream, (void *)(&(bands[10])));
   Epplet_add_popup_entry(p1, "56 Kbit Modem", NULL, cb_set_upstream, (void *)(&(bands[11])));
   Epplet_add_popup_entry(p1, "33.6 Kbit Modem", NULL, cb_set_upstream, (void *)(&(bands[12])));
   Epplet_add_popup_entry(p1, "28.8 Kbit Modem", NULL, cb_set_upstream, (void *)(&(bands[13])));
   Epplet_add_popup_entry(p1, "14.4 Kbit Modem", NULL, cb_set_upstream, (void *)(&(bands[14])));
   Epplet_add_popup_entry(p1, "9600 baud Modem", NULL, cb_set_upstream, (void *)(&(bands[15])));
   Epplet_add_popup_entry(p1, "4800 baud Modem", NULL, cb_set_upstream, (void *)(&(bands[16])));
   Epplet_add_popup_entry(p1, "2400 baud Modem", NULL, cb_set_upstream, (void *)(&(bands[17])));
   Epplet_add_popup_entry(p1, "300 baud Modem", NULL, cb_set_upstream, (void *)(&(bands[18])));
   Epplet_add_popup_entry(p1, "75 baud Modem", NULL, cb_set_upstream, (void *)(&(bands[19])));

   p2 = Epplet_create_popup();
   Epplet_add_popup_entry(p2, "1 Gbit", NULL, cb_set_downstream, (void *)(&(bands[0])));
   Epplet_add_popup_entry(p2, "100 Mbit", NULL, cb_set_downstream, (void *)(&(bands[1])));
   Epplet_add_popup_entry(p2, "10 Mbit", NULL, cb_set_downstream, (void *)(&(bands[2])));
   Epplet_add_popup_entry(p2, "2 Mbit", NULL, cb_set_downstream, (void *)(&(bands[3])));
   Epplet_add_popup_entry(p2, "1.54 Mbit T1", NULL, cb_set_downstream, (void *)(&(bands[4])));
   Epplet_add_popup_entry(p2, "1 Mbit", NULL, cb_set_downstream, (void *)(&(bands[5])));
   Epplet_add_popup_entry(p2, "512 Kbit", NULL, cb_set_downstream, (void *)(&(bands[6])));
   Epplet_add_popup_entry(p2, "256 Kbit", NULL, cb_set_downstream, (void *)(&(bands[7])));
   Epplet_add_popup_entry(p2, "144 Kbit", NULL, cb_set_downstream, (void *)(&(bands[8])));
   Epplet_add_popup_entry(p2, "128 Kbit ISDN", NULL, cb_set_downstream, (void *)(&(bands[9])));
   Epplet_add_popup_entry(p2, "64 Kbit ISDN", NULL, cb_set_downstream, (void *)(&(bands[10])));
   Epplet_add_popup_entry(p2, "56 Kbit Modem", NULL, cb_set_downstream, (void *)(&(bands[11])));
   Epplet_add_popup_entry(p2, "33.6 Kbit Modem", NULL, cb_set_downstream, (void *)(&(bands[12])));
   Epplet_add_popup_entry(p2, "28.8 Kbit Modem", NULL, cb_set_downstream, (void *)(&(bands[13])));
   Epplet_add_popup_entry(p2, "14.4 Kbit Modem", NULL, cb_set_downstream, (void *)(&(bands[14])));
   Epplet_add_popup_entry(p2, "9600 baud Modem", NULL, cb_set_downstream, (void *)(&(bands[15])));
   Epplet_add_popup_entry(p2, "4800 baud Modem", NULL, cb_set_downstream, (void *)(&(bands[16])));
   Epplet_add_popup_entry(p2, "2400 baud Modem", NULL, cb_set_downstream, (void *)(&(bands[17])));
   Epplet_add_popup_entry(p2, "300 baud Modem", NULL, cb_set_downstream, (void *)(&(bands[18])));
   Epplet_add_popup_entry(p2, "75 baud Modem", NULL, cb_set_downstream, (void *)(&(bands[19])));

   Epplet_gadget_show(load_up = Epplet_create_hbar(16, 3, 46, 12, 0, &up_val));
   Epplet_gadget_show(load_down = Epplet_create_hbar(16, 19, 46, 12, 0, &down_val));
   Epplet_gadget_show(Epplet_create_popupbutton("In", NULL, 62, 2, 16, 12, NULL, p1));
   Epplet_gadget_show(Epplet_create_popupbutton("Out", NULL, 62, 18, 16, 12, NULL, p2));
   Epplet_show();
   Epplet_Loop();
   return 0;
}

9a10,12
> /* kix -> patch for multiple interface */
> #define IFLEN	10
> 
22a26
> char				iface[IFLEN];
30a35
> 
37c42
<    invalid = net_get_bytes_inout("eth0", &val, &val2);
---
>    invalid = net_get_bytes_inout(iface, &val, &val2);
42c47
< 	Esnprintf(err, sizeof(err), "Unable to get network device statistics for eth0:  %s", net_strerror(invalid));
---
> 	Esnprintf(err, sizeof(err), "Unable to get network device statistics for %s:  %s", iface, net_strerror(invalid));
77a83
>    Epplet_modify_config("interface", iface);
90a97,100
> 
>    s = Epplet_query_config_def("interface", "eth0");
>    strncpy(iface, s, IFLEN -1);
>    iface[IFLEN] = '\0';
107a118,123
> cb_set_iface(void)
> {
>    save_conf();
> }
> 
> static void
130a147,153
>    /* Load the interface */
>    if (argc == 2) {
> 	   strncpy(iface, argv[1], IFLEN -1);
> 	   iface[IFLEN] = '\0';
> 	   cb_set_iface();
>    }
> 

Reply via email to