A situation has been observed where a silcd has clients connected to it,
but reports 0 local users. It is believed that when these users log
off, the server underflows and refuses new connections. Assert that no
underflow occurs, which should prove or disprove this theory.
#include "serverincludes.h"
#include "server_internal.h"
#include "serverincludes.h"
#include "server_internal.h"
/* Received notify packet. Server can receive notify packets from router.
Server then relays the notify messages to clients if needed. */
/* Received notify packet. Server can receive notify packets from router.
Server then relays the notify messages to clients if needed. */
tmp_len = 128;
/* Update statistics */
tmp_len = 128;
/* Update statistics */
+ assert(server->stat.clients > 0);
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
}
/* Update statistics */
}
/* Update statistics */
+ assert(server->stat.clients > 0);
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
}
/* Update statistics */
}
/* Update statistics */
+ assert(server->stat.clients > 0);
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
/* Delete this current client entry since we're resuming to old one. */
server->stat.my_clients--;
/* Delete this current client entry since we're resuming to old one. */
server->stat.my_clients--;
+ assert(server->stat.clients > 0);
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
#include "serverincludes.h"
#include "server_internal.h"
#include "serverincludes.h"
#include "server_internal.h"
/************************* Types and definitions ****************************/
/************************* Types and definitions ****************************/
/* Update statistics */
server->stat.my_clients--;
/* Update statistics */
server->stat.my_clients--;
+ assert(server->stat.clients > 0);
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
#include "serverincludes.h"
#include "server_internal.h"
#include "serverincludes.h"
#include "server_internal.h"
extern char *server_version;
extern char *server_version;
}
/* Update statistics */
}
/* Update statistics */
+ assert(server->stat.clients > 0);
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
}
/* Update statistics */
}
/* Update statistics */
+ assert(server->stat.clients > 0);
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
}
} else {
/* Update statistics */
}
} else {
/* Update statistics */
+ assert(server->stat.clients > 0);
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
server->stat.clients--;
if (server->stat.cell_clients)
server->stat.cell_clients--;
#include "silc.h"
#include "silcserver.h"
#include "server_internal.h"
#include "silc.h"
#include "silcserver.h"
#include "server_internal.h"
/* Return next available command identifier. */
/* Return next available command identifier. */