split portal-proxy.c into multiple .cc files with corresponding .h files and moved the struct definitions into their own .h file.