public synchronized void shutdown() {
		super.shutdown();

		try {
			if (this.serverSocket != null) {
				if (this.syslogServerConfig.getShutdownWait() > 0) {
					try {
						Thread.sleep(this.syslogServerConfig.getShutdownWait());
					} catch (final InterruptedException ie) {
						//
					}
				}
				this.serverSocket.close();
			}

		} catch (final IOException ioe) {
			// log?
		} finally {
			synchronized(this.sockets) {
				if (this.sockets != null && this.sockets.size() > 0) {
					for (final Socket socket : this.sockets) {
						try {
							socket.close();
						} catch (final IOException e) {
							// log?
						}
					}
				}
			}
			if (this.thread != null) {
				this.thread.interrupt();
				this.thread = null;
			}
		}
	}