Committer: Miika Komu <miika@xxxxxx> Date: Wed Feb 03 17:40:28 2010 +0200 Revision: 3525 Revision-id: miika@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Branch nick: trunk Log: A potential workaround to fix the UPDATE problem reported by Philippe Foubert on hipl-users. Modified: M hipd/update.c === modified file 'hipd/update.c' --- hipd/update.c 2010-01-19 13:06:23 +0000 +++ hipd/update.c 2010-02-03 15:40:28 +0000 @@ -377,10 +377,6 @@ hip_list_t *item, *tmp; hip_common_t *locator_msg = NULL; - // Update DNS data in hit-to-ip domain name - if (hip_get_nsupdate_status()) - nsupdate(0); - HIP_IFEL(!(locator_msg = hip_msg_alloc()), -ENOMEM, "Out of memory while allocation memory for the packet\n"); HIP_IFE(hip_create_locators(locator_msg, &locators), -1); @@ -401,6 +397,13 @@ } out_err: + + /* Update DNS data in hit-to-ip domain name. This is done after + sending UPDATE packets. See the discussion for the reasoning: + //www.freelists.org/post/hipl-users/HIP-UPDATE-select-error-Interrupted-system-call,2 */ + if (hip_get_nsupdate_status()) + nsupdate(0); + if (hip_locator_status == SO_HIP_SET_LOCATOR_ON) hip_recreate_all_precreated_r1_packets(); if (locator_msg)