+
+ // While we are at it, read known address information
+ if(!n->canonical_address) {
+ n->canonical_address = packmsg_get_str_dup(&in);
+ } else {
+ packmsg_skip_element(&in);
+ }
+
+ // Append any known addresses in the config file to the list we currently have
+ uint32_t known_count = 0;
+
+ for(uint32_t i = 0; i < 5; i++) {
+ if(n->recent[i].sa.sa_family) {
+ known_count++;
+ }
+ }
+
+ uint32_t count = packmsg_get_array(&in);
+
+ if(count > 5 - known_count) {
+ count = 5 - known_count;
+ }
+
+ for(uint32_t i = 0; i < count; i++) {
+ n->recent[i + known_count] = packmsg_get_sockaddr(&in);
+ }
+
+