public void checkForLoginRequests(List<ServerWorker> w) throws IOException {
		ServerWorker wLogin = null;
		if (!pendingConnections.isEmpty()) {
			Iterator<Entry<NetworkStream, Long>> entrySetIterator = pendingConnections.entrySet().iterator();

			while (entrySetIterator.hasNext()) {
				Entry<NetworkStream, Long> entry = entrySetIterator.next();
				NetworkStream stream = entry.getKey();
				SocketAddress address = stream.getChannel().getRemoteAddress();
				if (System.currentTimeMillis() - entry.getValue() > connectionTimeout) {
					try {
						throw new Exception();
					} catch (Exception e) {
						log.error("No login arrived before timeout from {}", address, e);
					}
					ditchPendingConnection(entry);
					log.debug("Removed pending connection: {}", address);
					continue;
				}

				stream.update();

				TCP_Packet packet = stream.available.poll();

				if (packet != null) {
					if (packet.PacketType == TCP_PacketType.LOGIN) {
						if (!stream.available.isEmpty()) {
							// Are you trying to inject? NO PACKETS BEFORE
							// LOGIN! Son I am disappoint...
							ditchPendingConnection(entry);
							try {
								throw new Exception();
							} catch (Exception e) {
								log.error("Packet arrived before login was acknowledged", e);
							}
						}
						wLogin = new Login((LoginPacket) packet, stream);
						log.debug("Received a login from address: {} with username: {}", address, ((LoginPacket) packet).getUsername());

						w.add(wLogin);
						pendingConnections.remove(stream);
					} else {
						ditchPendingConnection(entry);
						try {
							throw new Exception();
						} catch (Exception e) {
							log.error("Not a login packet", e);
						}
					}
				}
			}
		}
	}