aboutsummaryrefslogtreecommitdiff
path: root/src/testing/testing.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/testing.c')
-rw-r--r--src/testing/testing.c229
1 files changed, 179 insertions, 50 deletions
diff --git a/src/testing/testing.c b/src/testing/testing.c
index fcde39901..a11d404a5 100644
--- a/src/testing/testing.c
+++ b/src/testing/testing.c
@@ -1789,7 +1789,7 @@ get_first_value (char *line)
1789 token = strtok_r (copy, ":", &rest); 1789 token = strtok_r (copy, ":", &rest);
1790 token = strtok_r (NULL, ":", &rest); 1790 token = strtok_r (NULL, ":", &rest);
1791 sscanf (token, "%u", &ret); 1791 sscanf (token, "%u", &ret);
1792 free (copy); 1792 GNUNET_free (copy);
1793 return ret; 1793 return ret;
1794} 1794}
1795 1795
@@ -1809,7 +1809,7 @@ get_key (char *line)
1809 token = strtok_r (copy, ":", &rest); 1809 token = strtok_r (copy, ":", &rest);
1810 ret = malloc (2); 1810 ret = malloc (2);
1811 memcpy (ret, token, 2); 1811 memcpy (ret, token, 2);
1812 free (copy); 1812 GNUNET_free (copy);
1813 return ret; 1813 return ret;
1814} 1814}
1815 1815
@@ -1828,13 +1828,13 @@ get_first_string_value (char *line)
1828 memcpy (copy, line, slen); 1828 memcpy (copy, line, slen);
1829 token = strtok_r (copy, ":", &rest); 1829 token = strtok_r (copy, ":", &rest);
1830 token = strtok_r (NULL, ":", &rest); 1830 token = strtok_r (NULL, ":", &rest);
1831 LOG (GNUNET_ERROR_TYPE_DEBUG, 1831 LOG (GNUNET_ERROR_TYPE_ERROR,
1832 "first token %s\n", 1832 "first token %s\n",
1833 token); 1833 token);
1834 slen_token = strlen (token); 1834 slen_token = strlen (token);
1835 ret = malloc (slen_token + 1); 1835 ret = malloc (slen_token + 1);
1836 memcpy (ret, token, slen_token + 1); 1836 memcpy (ret, token, slen_token + 1);
1837 free (copy); 1837 GNUNET_free (copy);
1838 return ret; 1838 return ret;
1839} 1839}
1840 1840
@@ -1855,7 +1855,7 @@ get_second_value (char *line)
1855 token = strtok_r (NULL, ":", &rest); 1855 token = strtok_r (NULL, ":", &rest);
1856 token = strtok_r (NULL, ":", &rest); 1856 token = strtok_r (NULL, ":", &rest);
1857 sscanf (token, "%u", &ret); 1857 sscanf (token, "%u", &ret);
1858 free (copy); 1858 GNUNET_free (copy);
1859 return ret; 1859 return ret;
1860} 1860}
1861 1861
@@ -1883,11 +1883,129 @@ get_value (char *key, char *line)
1883 slen_token = strlen (token2); 1883 slen_token = strlen (token2);
1884 ret = malloc (slen_token + 1); 1884 ret = malloc (slen_token + 1);
1885 memcpy (ret, token2, slen_token + 1); 1885 memcpy (ret, token2, slen_token + 1);
1886 free (copy); 1886 GNUNET_free (copy);
1887 return ret; 1887 return ret;
1888} 1888}
1889 1889
1890 1890
1891static struct GNUNET_TESTING_NodeConnection *
1892get_connect_value (char *line, struct GNUNET_TESTING_NetjailNode *node)
1893{
1894 struct GNUNET_TESTING_NodeConnection *node_connection;
1895 char *copy;
1896 size_t slen;
1897 char *token;
1898 char *token2;
1899 unsigned int node_n;
1900 unsigned int namespace_n;
1901 char *rest = NULL;
1902 char *rest2 = NULL;
1903 struct GNUNET_TESTING_ADDRESS_PREFIX *prefix;
1904
1905 node_connection = GNUNET_new (struct GNUNET_TESTING_NodeConnection);
1906 node_connection->node = node;
1907
1908 slen = strlen (line) + 1;
1909 copy = malloc (slen);
1910 memcpy (copy, line, slen);
1911 token = strtok_r (copy, ":", &rest);
1912 if (0 == strcmp ("{K", token))
1913 {
1914 node_connection->node_type = GNUNET_TESTING_GLOBAL_NODE;
1915 token = strtok_r (NULL, ":", &rest);
1916 sscanf (token, "%u", &node_n);
1917 LOG (GNUNET_ERROR_TYPE_ERROR,
1918 "node_n %u\n",
1919 node_n);
1920 node_connection->node_n = node_n;
1921 node_connection->namespace_n = 0;
1922 }
1923 else if (0 == strcmp ("{P", token))
1924 {
1925 node_connection->node_type = GNUNET_TESTING_SUBNET_NODE;
1926 token = strtok_r (NULL, ":", &rest);
1927 sscanf (token, "%u", &node_n);
1928 node_connection->node_n = node_n;
1929 token = strtok_r (NULL, ":", &rest);
1930 sscanf (token, "%u", &namespace_n);
1931 node_connection->namespace_n = namespace_n;
1932 LOG (GNUNET_ERROR_TYPE_ERROR,
1933 "node_n %u namespace_n %u\n",
1934 node_n,
1935 namespace_n);
1936 }
1937 while (NULL != (token = strtok_r (NULL, ":", &rest)))
1938 {
1939 prefix = GNUNET_new (struct GNUNET_TESTING_ADDRESS_PREFIX);
1940 token2 = strtok_r (token, "}", &rest2);
1941 if (NULL != token2)
1942 {
1943 slen = strlen (token2) + 1;
1944 prefix->address_prefix = malloc (slen);
1945 memcpy (prefix->address_prefix, token2, slen);
1946 }
1947 else
1948 {
1949 slen = strlen (token) + 1;
1950 prefix->address_prefix = malloc (slen);
1951 memcpy (prefix->address_prefix, token, slen);
1952 }
1953
1954 LOG (GNUNET_ERROR_TYPE_ERROR,
1955 "address_prefix %s\n",
1956 prefix->address_prefix);
1957
1958 GNUNET_CONTAINER_DLL_insert (node_connection->address_prefixes_head,
1959 node_connection->address_prefixes_tail,
1960 prefix);
1961 }
1962
1963 GNUNET_free (copy);
1964 LOG (GNUNET_ERROR_TYPE_ERROR,
1965 "address_prefix %s\n",
1966 prefix->address_prefix);
1967
1968 return node_connection;
1969}
1970
1971
1972static void
1973node_connections (char *line, struct GNUNET_TESTING_NetjailNode *node)
1974{
1975 char *value, *value2;
1976 char *temp;
1977 char *copy;
1978 size_t slen;
1979 char *rest = NULL;
1980 char *rest2 = NULL;
1981 struct GNUNET_TESTING_NodeConnection *node_connection;
1982
1983
1984 temp = strstr (line, "connect");
1985 if (NULL != temp)
1986 {
1987 slen = strlen (temp) + 1;
1988 copy = malloc (slen);
1989 memcpy (copy, temp, slen);
1990 strtok_r (copy, ":", &rest);
1991 value = strtok_r (rest, "|", &rest2);
1992
1993 while (NULL != value)
1994 {
1995 node_connection = get_connect_value (value, node);
1996 GNUNET_CONTAINER_DLL_insert (node->node_connections_head,
1997 node->node_connections_tail,
1998 node_connection);
1999 value2 = strstr (value, "}}");
2000 if (NULL != value2)
2001 break;
2002 value = strtok_r (NULL, "|", &rest2);
2003
2004 }
2005 }
2006}
2007
2008
1891/** 2009/**
1892 * Getting the topology from file. 2010 * Getting the topology from file.
1893 * 2011 *
@@ -1912,6 +2030,7 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
1912 struct GNUNET_TESTING_NetjailNamespace *namespace; 2030 struct GNUNET_TESTING_NetjailNamespace *namespace;
1913 struct GNUNET_ShortHashCode *hkey; 2031 struct GNUNET_ShortHashCode *hkey;
1914 struct GNUNET_HashCode hc; 2032 struct GNUNET_HashCode hc;
2033
1915 topo->map_namespaces = 2034 topo->map_namespaces =
1916 GNUNET_CONTAINER_multishortmap_create (1,GNUNET_NO); 2035 GNUNET_CONTAINER_multishortmap_create (1,GNUNET_NO);
1917 topo->map_globals = 2036 topo->map_globals =
@@ -1942,7 +2061,7 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
1942 return NULL; 2061 return NULL;
1943 } 2062 }
1944 2063
1945 LOG (GNUNET_ERROR_TYPE_DEBUG, 2064 LOG (GNUNET_ERROR_TYPE_ERROR,
1946 "data: %s\n", 2065 "data: %s\n",
1947 data); 2066 data);
1948 2067
@@ -1951,46 +2070,46 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
1951 while (NULL != token) 2070 while (NULL != token)
1952 { 2071 {
1953 key = get_key (token); 2072 key = get_key (token);
1954 LOG (GNUNET_ERROR_TYPE_DEBUG, 2073 LOG (GNUNET_ERROR_TYPE_ERROR,
1955 "In the loop with token: %s beginning with %s\n", 2074 "In the loop with token: %s beginning with %s\n",
1956 token, 2075 token,
1957 key); 2076 key);
1958 if (0 == strcmp (key, "M")) 2077 if (0 == strcmp (key, "M"))
1959 { 2078 {
1960 LOG (GNUNET_ERROR_TYPE_DEBUG, 2079 LOG (GNUNET_ERROR_TYPE_ERROR,
1961 "Get first Value for M.\n"); 2080 "Get first Value for M.\n");
1962 out = get_first_value (token); 2081 out = get_first_value (token);
1963 LOG (GNUNET_ERROR_TYPE_DEBUG, 2082 LOG (GNUNET_ERROR_TYPE_ERROR,
1964 "M: %u\n", 2083 "M: %u\n",
1965 out); 2084 out);
1966 topo->nodes_m = out; 2085 topo->nodes_m = out;
1967 } 2086 }
1968 else if (0 == strcmp (key, "N")) 2087 else if (0 == strcmp (key, "N"))
1969 { 2088 {
1970 LOG (GNUNET_ERROR_TYPE_DEBUG, 2089 LOG (GNUNET_ERROR_TYPE_ERROR,
1971 "Get first Value for N.\n"); 2090 "Get first Value for N.\n");
1972 out = get_first_value (token); 2091 out = get_first_value (token);
1973 LOG (GNUNET_ERROR_TYPE_DEBUG, 2092 LOG (GNUNET_ERROR_TYPE_ERROR,
1974 "N: %u\n", 2093 "N: %u\n",
1975 out); 2094 out);
1976 topo->namespaces_n = out; 2095 topo->namespaces_n = out;
1977 } 2096 }
1978 else if (0 == strcmp (key, "X")) 2097 else if (0 == strcmp (key, "X"))
1979 { 2098 {
1980 LOG (GNUNET_ERROR_TYPE_DEBUG, 2099 LOG (GNUNET_ERROR_TYPE_ERROR,
1981 "Get first Value for X.\n"); 2100 "Get first Value for X.\n");
1982 out = get_first_value (token); 2101 out = get_first_value (token);
1983 LOG (GNUNET_ERROR_TYPE_DEBUG, 2102 LOG (GNUNET_ERROR_TYPE_ERROR,
1984 "X: %u\n", 2103 "X: %u\n",
1985 out); 2104 out);
1986 topo->nodes_x = out; 2105 topo->nodes_x = out;
1987 } 2106 }
1988 else if (0 == strcmp (key, "T")) 2107 else if (0 == strcmp (key, "T"))
1989 { 2108 {
1990 LOG (GNUNET_ERROR_TYPE_DEBUG, 2109 LOG (GNUNET_ERROR_TYPE_ERROR,
1991 "Get first string value for T.\n"); 2110 "Get first string value for T.\n");
1992 value = get_first_string_value (token); 2111 value = get_first_string_value (token);
1993 LOG (GNUNET_ERROR_TYPE_DEBUG, 2112 LOG (GNUNET_ERROR_TYPE_ERROR,
1994 "value: %s\n", 2113 "value: %s\n",
1995 value); 2114 value);
1996 topo->plugin = value; 2115 topo->plugin = value;
@@ -2000,10 +2119,10 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2000 hkey = GNUNET_new (struct GNUNET_ShortHashCode); 2119 hkey = GNUNET_new (struct GNUNET_ShortHashCode);
2001 node = GNUNET_new (struct GNUNET_TESTING_NetjailNode); 2120 node = GNUNET_new (struct GNUNET_TESTING_NetjailNode);
2002 2121
2003 LOG (GNUNET_ERROR_TYPE_DEBUG, 2122 LOG (GNUNET_ERROR_TYPE_ERROR,
2004 "Get first Value for K.\n"); 2123 "Get first Value for K.\n");
2005 out = get_first_value (token); 2124 out = get_first_value (token);
2006 LOG (GNUNET_ERROR_TYPE_DEBUG, 2125 LOG (GNUNET_ERROR_TYPE_ERROR,
2007 "K: %u\n", 2126 "K: %u\n",
2008 out); 2127 out);
2009 node->node_n = out; 2128 node->node_n = out;
@@ -2012,20 +2131,24 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2012 &hc, 2131 &hc,
2013 sizeof (*hkey)); 2132 sizeof (*hkey));
2014 node->is_global = GNUNET_YES; 2133 node->is_global = GNUNET_YES;
2015 LOG (GNUNET_ERROR_TYPE_DEBUG, 2134
2016 "Get value for key value on K.\n"); 2135 if (GNUNET_YES == GNUNET_CONTAINER_multishortmap_contains (
2017 value = get_value ("plugin", token); 2136 topo->map_globals,
2018 LOG (GNUNET_ERROR_TYPE_DEBUG, 2137 hkey))
2019 "value: %s\n",
2020 value);
2021 if (0 == GNUNET_CONTAINER_multishortmap_contains (topo->map_globals,
2022 hkey))
2023 GNUNET_break (0); 2138 GNUNET_break (0);
2024 else 2139 else
2025 GNUNET_CONTAINER_multishortmap_put (topo->map_globals, 2140 GNUNET_CONTAINER_multishortmap_put (topo->map_globals,
2026 hkey, 2141 hkey,
2027 node, 2142 node,
2028 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); 2143 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
2144 LOG (GNUNET_ERROR_TYPE_ERROR,
2145 "Get value for key value on K.\n");
2146 value = get_value ("plugin", token);
2147 LOG (GNUNET_ERROR_TYPE_ERROR,
2148 "value: %s\n",
2149 value);
2150 node->plugin = value;
2151 node_connections (token, node);
2029 } 2152 }
2030 else if (0 == strcmp (key, "R")) 2153 else if (0 == strcmp (key, "R"))
2031 { 2154 {
@@ -2033,10 +2156,10 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2033 router = GNUNET_new (struct GNUNET_TESTING_NetjailRouter); 2156 router = GNUNET_new (struct GNUNET_TESTING_NetjailRouter);
2034 node = GNUNET_new (struct GNUNET_TESTING_NetjailNode); 2157 node = GNUNET_new (struct GNUNET_TESTING_NetjailNode);
2035 2158
2036 LOG (GNUNET_ERROR_TYPE_DEBUG, 2159 LOG (GNUNET_ERROR_TYPE_ERROR,
2037 "Get first Value for R.\n"); 2160 "Get first Value for R.\n");
2038 out = get_first_value (token); 2161 out = get_first_value (token);
2039 LOG (GNUNET_ERROR_TYPE_DEBUG, 2162 LOG (GNUNET_ERROR_TYPE_ERROR,
2040 "R: %u\n", 2163 "R: %u\n",
2041 out); 2164 out);
2042 node->node_n = out; 2165 node->node_n = out;
@@ -2044,27 +2167,28 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2044 memcpy (hkey, 2167 memcpy (hkey,
2045 &hc, 2168 &hc,
2046 sizeof (*hkey)); 2169 sizeof (*hkey));
2047 LOG (GNUNET_ERROR_TYPE_DEBUG, 2170 LOG (GNUNET_ERROR_TYPE_ERROR,
2048 "Get value for key tcp_port on R.\n"); 2171 "Get value for key tcp_port on R.\n");
2049 value = get_value ("tcp_port", token); 2172 value = get_value ("tcp_port", token);
2050 LOG (GNUNET_ERROR_TYPE_DEBUG, 2173 LOG (GNUNET_ERROR_TYPE_ERROR,
2051 "tcp_port: %s\n", 2174 "tcp_port: %s\n",
2052 value); 2175 value);
2053 ret = sscanf (value, "%u", &(router->tcp_port)); 2176 ret = sscanf (value, "%u", &(router->tcp_port));
2054 2177
2055 GNUNET_break (0 == ret || 1 < router->tcp_port); 2178 GNUNET_break (0 != ret && 1 >= router->tcp_port);
2056 2179
2057 LOG (GNUNET_ERROR_TYPE_DEBUG, 2180 LOG (GNUNET_ERROR_TYPE_ERROR,
2058 "Get value for key udp_port on R.\n"); 2181 "Get value for key udp_port on R.\n");
2059 value = get_value ("udp_port", token); 2182 value = get_value ("udp_port", token);
2060 ret = sscanf (value, "%u", &(router->udp_port)); 2183 ret = sscanf (value, "%u", &(router->udp_port));
2061 GNUNET_break (0 == ret || 1 < router->udp_port); 2184 GNUNET_break (0 != ret && 1 >= router->udp_port);
2062 LOG (GNUNET_ERROR_TYPE_DEBUG, 2185 LOG (GNUNET_ERROR_TYPE_ERROR,
2063 "udp_port: %s\n", 2186 "udp_port: %s\n",
2064 value); 2187 value);
2065 2188
2066 if (0 == GNUNET_CONTAINER_multishortmap_contains (topo->map_namespaces, 2189 if (GNUNET_YES == GNUNET_CONTAINER_multishortmap_contains (
2067 hkey)) 2190 topo->map_namespaces,
2191 hkey))
2068 { 2192 {
2069 namespace = GNUNET_CONTAINER_multishortmap_get (topo->map_namespaces, 2193 namespace = GNUNET_CONTAINER_multishortmap_get (topo->map_namespaces,
2070 hkey); 2194 hkey);
@@ -2073,6 +2197,7 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2073 { 2197 {
2074 namespace = GNUNET_new (struct GNUNET_TESTING_NetjailNamespace); 2198 namespace = GNUNET_new (struct GNUNET_TESTING_NetjailNamespace);
2075 namespace->namespace_n = out; 2199 namespace->namespace_n = out;
2200 namespace->nodes = GNUNET_CONTAINER_multishortmap_create (1,GNUNET_NO);
2076 GNUNET_CONTAINER_multishortmap_put (topo->map_namespaces, 2201 GNUNET_CONTAINER_multishortmap_put (topo->map_namespaces,
2077 hkey, 2202 hkey,
2078 namespace, 2203 namespace,
@@ -2086,10 +2211,10 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2086 hkey = GNUNET_new (struct GNUNET_ShortHashCode); 2211 hkey = GNUNET_new (struct GNUNET_ShortHashCode);
2087 node = GNUNET_new (struct GNUNET_TESTING_NetjailNode); 2212 node = GNUNET_new (struct GNUNET_TESTING_NetjailNode);
2088 2213
2089 LOG (GNUNET_ERROR_TYPE_DEBUG, 2214 LOG (GNUNET_ERROR_TYPE_ERROR,
2090 "Get first Value for P.\n"); 2215 "Get first Value for P.\n");
2091 out = get_first_value (token); 2216 out = get_first_value (token);
2092 LOG (GNUNET_ERROR_TYPE_DEBUG, 2217 LOG (GNUNET_ERROR_TYPE_ERROR,
2093 "P: %u\n", 2218 "P: %u\n",
2094 out); 2219 out);
2095 GNUNET_CRYPTO_hash (&out, sizeof(out), &hc); 2220 GNUNET_CRYPTO_hash (&out, sizeof(out), &hc);
@@ -2097,14 +2222,9 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2097 &hc, 2222 &hc,
2098 sizeof (*hkey)); 2223 sizeof (*hkey));
2099 2224
2100 LOG (GNUNET_ERROR_TYPE_DEBUG, 2225 if (GNUNET_YES == GNUNET_CONTAINER_multishortmap_contains (
2101 "Get value for key plugin on P.\n"); 2226 topo->map_namespaces,
2102 value = get_value ("plugin", token); 2227 hkey))
2103 LOG (GNUNET_ERROR_TYPE_DEBUG,
2104 "plugin: %s\n",
2105 value);
2106 if (0 == GNUNET_CONTAINER_multishortmap_contains (topo->map_namespaces,
2107 hkey))
2108 { 2228 {
2109 namespace = GNUNET_CONTAINER_multishortmap_get (topo->map_namespaces, 2229 namespace = GNUNET_CONTAINER_multishortmap_get (topo->map_namespaces,
2110 hkey); 2230 hkey);
@@ -2112,24 +2232,26 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2112 else 2232 else
2113 { 2233 {
2114 namespace = GNUNET_new (struct GNUNET_TESTING_NetjailNamespace); 2234 namespace = GNUNET_new (struct GNUNET_TESTING_NetjailNamespace);
2235 namespace->nodes = GNUNET_CONTAINER_multishortmap_create (1,GNUNET_NO);
2115 namespace->namespace_n = out; 2236 namespace->namespace_n = out;
2116 GNUNET_CONTAINER_multishortmap_put (topo->map_namespaces, 2237 GNUNET_CONTAINER_multishortmap_put (topo->map_namespaces,
2117 hkey, 2238 hkey,
2118 namespace, 2239 namespace,
2119 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); 2240 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
2120 } 2241 }
2121 LOG (GNUNET_ERROR_TYPE_DEBUG, 2242 LOG (GNUNET_ERROR_TYPE_ERROR,
2122 "Get second Value for P.\n"); 2243 "Get second Value for P.\n");
2123 out = get_second_value (token); 2244 out = get_second_value (token);
2124 LOG (GNUNET_ERROR_TYPE_DEBUG, 2245 LOG (GNUNET_ERROR_TYPE_ERROR,
2125 "P: %u\n", 2246 "P: %u\n",
2126 out); 2247 out);
2127 GNUNET_CRYPTO_hash (&out, sizeof(out), &hc); 2248 GNUNET_CRYPTO_hash (&out, sizeof(out), &hc);
2128 memcpy (hkey, 2249 memcpy (hkey,
2129 &hc, 2250 &hc,
2130 sizeof (*hkey)); 2251 sizeof (*hkey));
2131 if (0 == GNUNET_CONTAINER_multishortmap_contains (namespace->nodes, 2252 if (GNUNET_YES == GNUNET_CONTAINER_multishortmap_contains (
2132 hkey)) 2253 namespace->nodes,
2254 hkey))
2133 { 2255 {
2134 GNUNET_break (0); 2256 GNUNET_break (0);
2135 } 2257 }
@@ -2140,10 +2262,17 @@ GNUNET_TESTING_get_topo_from_file (const char *filename)
2140 hkey, 2262 hkey,
2141 node, 2263 node,
2142 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); 2264 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
2265 LOG (GNUNET_ERROR_TYPE_ERROR,
2266 "Get value for key plugin on P.\n");
2267 value = get_value ("plugin", token);
2268 LOG (GNUNET_ERROR_TYPE_ERROR,
2269 "plugin: %s\n",
2270 value);
2143 node->plugin = value; 2271 node->plugin = value;
2144 node->node_n = out; 2272 node->node_n = out;
2145 node->namespace_n = namespace->namespace_n; 2273 node->namespace_n = namespace->namespace_n;
2146 } 2274 }
2275 node_connections (token, node);
2147 } 2276 }
2148 token = strtok_r (NULL, "\n", &rest); 2277 token = strtok_r (NULL, "\n", &rest);
2149 } 2278 }