From b7a993e0d6aebb98c06e88eb9ca0aaa3674dfe78 Mon Sep 17 00:00:00 2001
From: deva <deva>
Date: Mon, 2 May 2005 19:47:43 +0000
Subject: Fixed overlapping cpr numbers on the server (now it saves one cpr pr.
 connection, and ignores any changes sent)

---
 src/miav.cc   | 15 +++++++--------
 src/server.cc | 19 +++++++++++++++----
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/src/miav.cc b/src/miav.cc
index ef2a369..2316413 100644
--- a/src/miav.cc
+++ b/src/miav.cc
@@ -26,6 +26,10 @@
  */
 /*
  * $Log$
+ * Revision 1.6  2005/05/02 19:47:43  deva
+ * Fixed overlapping cpr numbers on the server (now it saves one cpr pr.
+ * connection, and ignores any changes sent)
+ *
  * Revision 1.5  2005/05/01 09:56:26  deva
  * Added Id and Log tags to all files
  *
@@ -71,19 +75,14 @@ int grab(int argc, char *argv[]) {
  * This function starts the MIaV server.
  */
 int server(int argc, char *argv[]) {
+  int port = config->readInt("server_port");
   pid_t childpid; // variable to store the child's pid
 
   signal(SIGCLD, SIG_IGN);  // Ved SIGCHILD til IGNORE maa wait/waitpid ikke kaldes 
                             //   (ellers kommer der kernel-brok)
   
-  if(argc < 1) {
-    printf("Usage: miav server [port]\n");
-    printf("[port] Is the port number the server will be listening to.\n");
-    return 1;
-  }
-
-  printf("Listening on port %d\n",atoi(argv[0]));
-  Socket *socket = new Socket(atoi(argv[0]));
+  printf("Listening on port %d\n", port);
+  Socket *socket = new Socket(port);
 
   while(1) {
     Socket *csocket = new Socket(socket->slisten());
diff --git a/src/server.cc b/src/server.cc
index 27b6848..c8a359e 100644
--- a/src/server.cc
+++ b/src/server.cc
@@ -26,6 +26,10 @@
  */
 /*
  * $Log$
+ * Revision 1.10  2005/05/02 19:47:43  deva
+ * Fixed overlapping cpr numbers on the server (now it saves one cpr pr.
+ * connection, and ignores any changes sent)
+ *
  * Revision 1.9  2005/05/02 18:46:15  deva
  * Files are now saved in a custom folder (defined in miav.conf)
  *
@@ -246,6 +250,8 @@ MovEncoder *newMovEncoder(char* cpr)
 
 void newConnection(Socket *socket)
 {
+  char cpr[256];
+  bool hasCpr = false;
   ServerStatus status;
 
   n_savestate savestate = LATER;
@@ -267,25 +273,30 @@ void newConnection(Socket *socket)
       break;
     }
 
+    if(!hasCpr) {
+      sprintf(cpr, h.header.h_data.cpr);
+      hasCpr = true;
+    }
+
     printf("Read: %d bytes ", ret);
     printf("\ttyp: %d ", h.header_type);
-    printf("\tcpr: %s ", h.header.h_data.cpr);
+    printf("\tcpr: %s ", cpr);
     printf("\tfrz: %d ", h.header.h_data.freeze);
     printf("\tsht: %d ", h.header.h_data.snapshot);
     printf("\tsave: %d\n", h.header.h_data.savestate);
 
     if(h.header.h_data.snapshot) {
       if(freeze_frame) {
-        saveFrameAsImage(h.header.h_data.cpr, freeze_frame);
+        saveFrameAsImage(cpr, freeze_frame);
         delete freeze_frame;
         freeze_frame = NULL;
       } else {
-        saveFrameAsImage(h.header.h_data.cpr, frame);
+        saveFrameAsImage(cpr, frame);
       }
     }
 
     if(h.header.h_data.record) {
-      if(!enc) enc = newMovEncoder(h.header.h_data.cpr);
+      if(!enc) enc = newMovEncoder(cpr);
       enc->encode(frame);
     }
 
-- 
cgit v1.2.3