Use nullptr instead of NULL.
Use range-based for loop.
Use GUID for mutex name.
Re-implemented HTTP proxy.