Added missing break;s when converting ID_IP_ADDRESS types to ts, extracted function
authorMartin Willi <martin@revosec.ch>
Mon, 5 Dec 2011 15:14:52 +0000 (16:14 +0100)
committerMartin Willi <martin@revosec.ch>
Tue, 20 Mar 2012 16:31:12 +0000 (17:31 +0100)
src/libcharon/encoding/payloads/id_payload.c

index fe89188..2d27021 100755 (executable)
@@ -270,6 +270,16 @@ static traffic_selector_t *get_ts_from_subnet(private_id_payload_t *this,
                                                                net, this->port, netmask, this->port ?: 65535);
 }
 
                                                                net, this->port, netmask, this->port ?: 65535);
 }
 
+/**
+ * Create a traffic selector from an IP ID
+ */
+static traffic_selector_t *get_ts_from_ip(private_id_payload_t *this,
+                                                                                 ts_type_t type)
+{
+       return traffic_selector_create_from_bytes(this->protocol_id, type,
+                               this->id_data, this->port, this->id_data, this->port ?: 65535);
+}
+
 METHOD(id_payload_t, get_ts, traffic_selector_t*,
        private_id_payload_t *this)
 {
 METHOD(id_payload_t, get_ts, traffic_selector_t*,
        private_id_payload_t *this)
 {
@@ -300,23 +310,17 @@ METHOD(id_payload_t, get_ts, traffic_selector_t*,
                        }
                        break;
                case ID_IPV4_ADDR:
                        }
                        break;
                case ID_IPV4_ADDR:
-               {
                        if (this->id_data.len == 4)
                        {
                        if (this->id_data.len == 4)
                        {
-                               return traffic_selector_create_from_bytes(this->protocol_id,
-                                                               TS_IPV4_ADDR_RANGE, this->id_data, this->port,
-                                                               this->id_data, this->port ?: 65535);
+                               return get_ts_from_ip(this, TS_IPV4_ADDR_RANGE);
                        }
                        }
-               }
+                       break;
                case ID_IPV6_ADDR:
                case ID_IPV6_ADDR:
-               {
                        if (this->id_data.len == 16)
                        {
                        if (this->id_data.len == 16)
                        {
-                               return traffic_selector_create_from_bytes(this->protocol_id,
-                                                               TS_IPV4_ADDR_RANGE, this->id_data, this->port,
-                                                               this->id_data, this->port ?: 65535);
+                               return get_ts_from_ip(this, TS_IPV6_ADDR_RANGE);
                        }
                        }
-               }
+                       break;
                default:
                        break;
        }
                default:
                        break;
        }