diff options
Diffstat (limited to 'src/server.cc')
-rw-r--r-- | src/server.cc | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/server.cc b/src/server.cc index e94b576..3370586 100644 --- a/src/server.cc +++ b/src/server.cc @@ -76,21 +76,20 @@ MovEncoder *newMovEncoder(char* cpr) return enc; } -void newConnection(Socket *s) +void newConnection(Socket *socket) { n_savestate savestate = LATER; n_header h; - Frame *f; + Frame *frame; Frame *freeze_frame = NULL; MovEncoder *enc = NULL; - // FIXME: Allocate buffer - f = new Frame(NULL, 0); + frame = new Frame((unsigned char *)malloc(DVPACKAGE_SIZE), DVPACKAGE_SIZE); printf("New connection[pid: %d]...\n", getpid()); - Network n = Network(s); - while(int ret = n.recvPackage(&h, f->data, DVPACKAGE_SIZE)) { + Network network = Network(socket); + while(int ret = network.recvPackage(&h, frame->data, DVPACKAGE_SIZE)) { if(ret == -1) { fprintf(stderr, "An error occurred...!\n"); break; @@ -108,13 +107,13 @@ void newConnection(Socket *s) delete freeze_frame; freeze_frame = NULL; } else { - saveFrameAsImage(h.header.h_data.cpr, f); + saveFrameAsImage(h.header.h_data.cpr, frame); } } if(h.header.h_data.record) { if(!enc) enc = newMovEncoder(h.header.h_data.cpr); - enc->encode(f); + enc->encode(frame); } if(h.header.h_data.savestate) { @@ -123,18 +122,17 @@ void newConnection(Socket *s) if(h.header.h_data.freeze) { if(freeze_frame) delete freeze_frame; - freeze_frame = f; + freeze_frame = frame; } else { - delete f; + delete frame; } - // FIXME: Allocate buffer - f = new Frame(NULL, 0); + frame = new Frame((unsigned char *)malloc(DVPACKAGE_SIZE), DVPACKAGE_SIZE); } // TODO: Use save state - delete f; + delete frame; if(enc) delete enc; printf("Connection end[pid: %d]...\n", getpid()); |