PUD: cfg: simplify getOlsrSockaddrPortAddress function further
authorFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 6 Jun 2012 12:15:37 +0000 (14:15 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Thu, 7 Jun 2012 22:30:03 +0000 (00:30 +0200)
and add setOlsrSockaddrPort

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/pud/src/configTools.c
lib/pud/src/configuration.c
lib/pud/src/netTools.h

index f624e2a..42cb05c 100644 (file)
@@ -288,10 +288,7 @@ bool readULL(const char * parameterName, const char * str, unsigned long long *
        }
 
        if (!*dstSet) {
-               in_port_t * port;
-
-               getOlsrSockaddrPortAddress(&ip, &port);
-               *port = htons(portDefault);
+               setOlsrSockaddrPort(&ip, htons(portDefault));
        }
 
        *dst = ip;
index 45b237f..e501bfd 100644 (file)
@@ -483,15 +483,12 @@ int setRxMcAddr(const char *value, void *data __attribute__ ((unused)), set_plug
  The receive multicast port (in network byte order)
  */
 unsigned short getRxMcPort(void) {
-       in_port_t * port;
-       getOlsrSockaddrPortAddress(getRxMcAddr(), &port);
-       return *port;
+       return getOlsrSockaddrPort(getRxMcAddr());
 }
 
 int setRxMcPort(const char *value, void *data __attribute__ ((unused)), set_plugin_parameter_addon addon __attribute__ ((unused))) {
        static const char * valueName = PUD_RX_MC_PORT_NAME;
        unsigned short rxMcPortNew;
-       in_port_t * port;
 
        if (!readUS(valueName, value, &rxMcPortNew)) {
                return true;
@@ -502,8 +499,7 @@ int setRxMcPort(const char *value, void *data __attribute__ ((unused)), set_plug
                return true;
        }
 
-       getOlsrSockaddrPortAddress(getRxMcAddr(), &port);
-       *port = htons((uint16_t) rxMcPortNew);
+       setOlsrSockaddrPort(getRxMcAddr(), htons((uint16_t) rxMcPortNew));
 
        return false;
 }
@@ -663,15 +659,12 @@ int setTxMcAddr(const char *value, void *data __attribute__ ((unused)), set_plug
  The transmit multicast port (in network byte order)
  */
 unsigned short getTxMcPort(void) {
-       in_port_t * port;
-       getOlsrSockaddrPortAddress(getTxMcAddr(), &port);
-       return *port;
+       return getOlsrSockaddrPort(getTxMcAddr());
 }
 
 int setTxMcPort(const char *value, void *data __attribute__ ((unused)), set_plugin_parameter_addon addon __attribute__ ((unused))) {
        static const char * valueName = PUD_TX_MC_PORT_NAME;
        unsigned short txMcPortNew;
-       in_port_t * port;
 
        if (!readUS(valueName, value, &txMcPortNew)) {
                return true;
@@ -682,8 +675,7 @@ int setTxMcPort(const char *value, void *data __attribute__ ((unused)), set_plug
                return true;
        }
 
-       getOlsrSockaddrPortAddress(getTxMcAddr(), &port);
-       *port = htons((uint16_t) txMcPortNew);
+       setOlsrSockaddrPort(getTxMcAddr(), htons((uint16_t) txMcPortNew));
 
        return false;
 }
@@ -816,15 +808,12 @@ int setUplinkAddr(const char *value, void *data __attribute__ ((unused)), set_pl
  The uplink port (in network byte order)
  */
 unsigned short getUplinkPort(void) {
-       in_port_t * port;
-       getOlsrSockaddrPortAddress(getUplinkAddr(), &port);
-       return *port;
+       return getOlsrSockaddrPort(getUplinkAddr());
 }
 
 int setUplinkPort(const char *value, void *data __attribute__ ((unused)), set_plugin_parameter_addon addon __attribute__ ((unused))) {
        static const char * valueName = PUD_UPLINK_PORT_NAME;
        unsigned short uplinkPortNew;
-       in_port_t * port;
 
        if (!readUS(valueName, value, &uplinkPortNew)) {
                return true;
@@ -835,8 +824,7 @@ int setUplinkPort(const char *value, void *data __attribute__ ((unused)), set_pl
                return true;
        }
 
-       getOlsrSockaddrPortAddress(getUplinkAddr(), &port);
-       *port = htons((uint16_t) uplinkPortNew);
+       setOlsrSockaddrPort(getUplinkAddr(), htons((uint16_t) uplinkPortNew));
 
        return false;
 }
index c83d25a..f4f3270 100644 (file)
 #include <net/if.h>
 
 /**
- Determine the address of the port in an OLSR socket address
+ Get the port in an OLSR socket address
+
+ @param addr
+ A pointer to OLSR socket address
+ @return
+ The port (in network byte order)
+ */
+static inline in_port_t getOlsrSockaddrPort(union olsr_sockaddr * addr) {
+       if (addr->in.sa_family == AF_INET) {
+               return addr->in4.sin_port;
+       } else {
+               return addr->in6.sin6_port;
+       }
+}
+
+/**
+ Set the port in an OLSR socket address
 
  @param addr
  A pointer to OLSR socket address
  @param port
- A pointer to the location where the pointer to the port will be stored
+ The port (in network byte order)
  */
-static inline void getOlsrSockaddrPortAddress(union olsr_sockaddr * addr, in_port_t ** port) {
+static inline void setOlsrSockaddrPort(union olsr_sockaddr * addr, in_port_t port) {
        if (addr->in.sa_family == AF_INET) {
-               *port = &addr->in4.sin_port;
+               addr->in4.sin_port = port;
        } else {
-               *port = &addr->in6.sin6_port;
+               addr->in6.sin6_port = port;
        }
 }