]> git.sur5r.net Git - ngadmin/blobdiff - lib/src/lib.h
Use portable way to handle timeouts
[ngadmin] / lib / src / lib.h
index 3d47a8942b1ee42456fd16b2881e5e2c026116ce..84152aeed803c058508682041f752dd6848655e3 100644 (file)
@@ -3,90 +3,37 @@
 #define DEF_LIB
 
 
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
+#include <arpa/inet.h>
+
 #include <net/if.h>
+#include <netinet/ether.h>
 
 #include <ngadmin.h>
 
 
-#define PASSWORD_MAX   32
-
-
-#define CLIENT_PORT            63321
-#define SWITCH_PORT            63322
-
-#define CODE_READ_REQ          1
-#define CODE_READ_REP          2
-#define CODE_WRITE_REQ         3
-#define CODE_WRITE_REP         4
-
-#define ERROR_READONLY         3
-#define ERROR_INVALID_VALUE    5
-#define ERROR_INVALID_PASSWORD 7
-
-#define ATTR_PRODUCT           0x0001
-#define ATTR_UNK_0002          0x0002
-#define ATTR_NAME              0x0003
-#define ATTR_MAC               0x0004
-#define ATTR_UNK_0005          0x0005
-#define ATTR_IP                        0x0006
-#define ATTR_NETMASK           0x0007
-#define ATTR_GATEWAY           0x0008
-#define ATTR_NEW_PASSWORD      0x0009
-#define ATTR_PASSWORD          0x000A
-#define ATTR_DHCP              0x000B
-#define ATTR_UNK_000C          0x000C
-#define ATTR_FIRM_VER          0x000D
-#define ATTR_UNK_000E          0x000E
-#define ATTR_UNK_000F          0x000F
-#define ATTR_RESTART           0x0013
-#define ATTR_DEFAULTS          0x0400
-#define ATTR_PORT_STATUS       0x0C00
-#define ATTR_PORT_STATISTICS   0x1000
-#define ATTR_STATS_RESET       0x1400
-#define ATTR_CABLETEST_DO      0x1800
-#define ATTR_CABLETEST_RESULT  0x1C00
-#define ATTR_VLAN_TYPE         0x2000
-#define ATTR_VLAN_PORT_CONF    0x2400
-#define ATTR_VLAN_DOT_CONF     0x2800
-#define ATTR_VLAN_DESTROY      0x2C00
-#define ATTR_VLAN_PVID         0x3000
-#define ATTR_QOS_TYPE          0x3400
-#define ATTR_QOS_CONFIG                0x3800
-#define ATTR_BITRATE_INPUT     0x4C00
-#define ATTR_BITRATE_OUTPUT    0x5000
-#define ATTR_STORM_ENABLE      0x5400
-#define ATTR_STORM_BITRATE     0x5800
-#define ATTR_MIRROR            0x5C00
-#define ATTR_PORTS_COUNT       0x6000
-#define ATTR_UNK_6400          0x6400
-#define ATTR_IGMP_ENABLE_VLAN  0x6800
-#define ATTR_IGMP_BLOCK_UNK    0x6C00
-#define ATTR_IGMP_VALID_V3     0x7000
-#define ATTR_UNK_7400          0x7400
-#define ATTR_END               0xFFFF
 
+#define PASSWORD_MAX           32
 
 
 struct ngadmin {
- // network
- int sock;                     // socket
- struct sockaddr_in local;
- char iface[IFNAMSIZ];         // interface
- struct timeval timeout;       // timeout
- struct ether_addr localmac;   // local MAC address
- bool keepbroad;               // keep broadcasting
- // 
- char password[PASSWORD_MAX];  // password to use to login on switches
- struct swi_attr *swi_tab;     // array of detected switches
- int swi_count;                        // number of detected switches
- struct swi_attr *current;     // administred switch
- int seq;                      // sequence number for packets
+       /* network */
+       int sock;                       /* socket */
+       struct sockaddr_in local;       /* local address & port */
+       struct in_addr brd;             /* broadcast address */
+       char iface[IFNAMSIZ];           /* interface */
+       struct timespec timeout;        /* timeout */
+       struct ether_addr localmac;     /* local MAC address */
+       bool keepbroad;                 /* keep broadcasting */
+       bool globalbroad;               /* use global broadcast address (255.255.255.255) */
+       /* switch properties */
+       bool encrypt_pass;              /* switch uses password "encryption" */
+       char password[PASSWORD_MAX];    /* password to use to login on switches */
+       struct swi_attr *swi_tab;       /* array of detected switches */
+       int swi_count;                  /* number of detected switches */
+       struct swi_attr *current;       /* administred switch */
+       int seq;                        /* sequence number for packets */
 };
 
 
-
 #endif