Before messing with assuring actual code works - try running some simple free server program like smallftpd or whatever.... Then verify you can connect. If not, you need to fix settings before YOUR OWN code will actually work.
Vertex normals are usually pseudo "art" information. Meaning, as mentioned before, they're done in the modeling application and saved into the model file itself. Because they can be manually manipulated for different effects, ie "harder" - "softer" ...
The more "automated" way is to take the weighted average of the triangles around a vertex.
In maya for example, you can supply an "angle" to shift they by, and other applications might have similar different options.
Even wavefront obj supports vertex normals so I'd say make sure your priorities are correct.
If your application doesn't even support loading a model format which contains the vertex normal information itself, I'd say worry about implementing that first before you worry about how good some simple template object looks.
You have to set up the proper view in render() . . . Ie, glLookAt() or etc. like I did in the cubeFrustum() example I pasted you.
Also, you're not using glBindTexture() correctly . . . You need to call it INDIVIDUALLY for EACH cubemap side, ie, WITHIN your for() loop - not above it. And you need to save each value (or just the starting value, then increment each time) ... Not just one "m_depth" value. And then you'll also need to bind it before rendering.
okay i'm just throwing this out there, it's my "deprecated" (i don't use shadows as I deem them too slow) shadow code....
It's extremely sloppy and missing stuff, ie it wont work as is, but maybe if you actually sift through it and compare it to what you have and other online tutorials is may push you in the right direction