Buglist and comments for cooperating proxy • The proxy cannot handle a high throughput of packets. That means if there are many other applications running on the same network, producing a lot of traffic, the proxy will sooner or later give a memory error and freeze. This is probably due to a memory leak. • When one SSDP byebye is received the whole device is removed from the cache. Should be one service at a time. • The proxy has a problem with reading from the network. When it sniffs it does not always receive an event (that there is something in the io). Since SSDP traffic is very bursty one packet might be read, but the rest might still be laying in the IO. The solution for this is to poll the IO every 2 seconds. The impact on the program is that when sniffing for HTTP OK there is a risk that we will loose packets. • There is a similar error when reading the socket for events. This means that the reception of an event is delayed a couple of seconds. • The proxy does not forward packets to a device that just has been woken. It should do this according to the design, but it is too complicated to implement. Therefore the application must resend packets. The normal resend of the TCP SYN is not enough for the newly woken service to establish the connection. • Every packets spoofed from the proxy has ip id = 123 so that we can recognize our own packets and avoid sniffing them. Not a good solution. Better to use MD5 checksums or perhaps disabling the loopback interface. • There is no mutual exclusion in the program which might result in racing errors. • All firewalls should be disabled when running the proxy. It has known problems with spoofing and sniffing when firewalls are enabled. • The proxy does not accept unsubscriptions from services. If an unsubscription is received it is discarded. However, if the device does not notify the proxy with events when entering power sleep mode the proxy will take no action.