summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/miav.cc15
-rw-r--r--src/server.cc19
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);
}