Revision 8a7fb885 nest/rt-table.c

View differences:

nest/rt-table.c
165 165
  rte *old0 = old;
166 166
  int ok;
167 167

  
168
  int fast_exit_hack = 0;
169

  
168 170
  if (new)
169 171
    {
170 172
      p->stats.exp_updates_received++;
......
174 176
	{
175 177
	  p->stats.exp_updates_rejected++;
176 178
	  drop_reason = "out of scope";
179
	  fast_exit_hack = 1;
177 180
	}
178 181
      else if ((ok = p->import_control ? p->import_control(p, &new, &tmpa, rte_update_pool) : 0) < 0)
179 182
	{
......
199 202
  else
200 203
    p->stats.exp_withdraws_received++;
201 204

  
205
  /* Hack: This is here to prevent 'spurious withdraws'
206
     for loopback addresses during reload. */
207
  if (fast_exit_hack)
208
    return;
209

  
202 210
  /*
203 211
   * This is a tricky part - we don't know whether route 'old' was
204 212
   * exported to protocol 'p' or was filtered by the export filter.
......
245 253
  else
246 254
    p->stats.exp_withdraws_accepted++;
247 255

  
256
  /* Hack: We do not decrease exp_routes during refeed, we instead
257
     reset exp_routes at the start of refeed. */
248 258
  if (new)
249 259
    p->stats.exp_routes++;
250
  if (old)
260
  if (old && !refeed)
251 261
    p->stats.exp_routes--;
252 262

  
253 263
  if (p->debug & D_ROUTES)

Also available in: Unified diff