r720 - in trunk: . code/client code/qcommon

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Apr 22 18:21:56 EDT 2006


Author: tma
Date: 2006-04-22 18:21:56 -0400 (Sat, 22 Apr 2006)
New Revision: 720

Modified:
   trunk/Makefile
   trunk/code/client/cl_main.c
   trunk/code/client/client.h
   trunk/code/qcommon/qcommon.h
Log:
* cl_guid for semi-reliable server authentication (from tjw)


Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2006-04-22 22:14:15 UTC (rev 719)
+++ trunk/Makefile	2006-04-22 22:21:56 UTC (rev 720)
@@ -779,6 +779,7 @@
   $(B)/client/cvar.o \
   $(B)/client/files.o \
   $(B)/client/md4.o \
+  $(B)/client/md5.o \
   $(B)/client/msg.o \
   $(B)/client/net_chan.o \
   $(B)/client/huffman.o \
@@ -1029,6 +1030,7 @@
 $(B)/client/cvar.o : $(CMDIR)/cvar.c; $(DO_CC)
 $(B)/client/files.o : $(CMDIR)/files.c; $(DO_CC)
 $(B)/client/md4.o : $(CMDIR)/md4.c; $(DO_CC)
+$(B)/client/md5.o : $(CMDIR)/md5.c; $(DO_CC)
 $(B)/client/msg.o : $(CMDIR)/msg.c; $(DO_CC)
 $(B)/client/net_chan.o : $(CMDIR)/net_chan.c; $(DO_CC)
 $(B)/client/huffman.o : $(CMDIR)/huffman.c; $(DO_CC)

Modified: trunk/code/client/cl_main.c
===================================================================
--- trunk/code/client/cl_main.c	2006-04-22 22:14:15 UTC (rev 719)
+++ trunk/code/client/cl_main.c	2006-04-22 22:21:56 UTC (rev 720)
@@ -2378,6 +2378,28 @@
   CL_CloseAVI( );
 }
 
+static void CL_GenerateQKey(void)
+{
+	int len = 0;
+	unsigned char buff[2048];
+
+	len = FS_ReadFile(QKEY_FILE, NULL);
+	if(len >= (int)sizeof(buff)) {
+		Com_Printf("QKEY found.\n");
+		return;
+	}
+	else {
+		int i;
+		srand(time(0));
+		for(i = 0; i < sizeof(buff) - 1; i++) {
+			buff[i] = (unsigned char)(rand() % 255);
+		}
+		buff[i] = 0;
+		Com_Printf("QKEY generated\n");
+		FS_WriteFile(QKEY_FILE, buff, sizeof(buff));
+	}
+} 
+
 /*
 ====================
 CL_Init
@@ -2526,6 +2548,9 @@
 
 	Cvar_Set( "cl_running", "1" );
 
+	CL_GenerateQKey();	
+	Cvar_Get("cl_guid", Com_MD5File(QKEY_FILE, 0), CVAR_USERINFO | CVAR_ROM);
+
 	Com_Printf( "----- Client Initialization Complete -----\n" );
 }
 

Modified: trunk/code/client/client.h
===================================================================
--- trunk/code/client/client.h	2006-04-22 22:14:15 UTC (rev 719)
+++ trunk/code/client/client.h	2006-04-22 22:21:56 UTC (rev 720)
@@ -30,6 +30,9 @@
 #include "../cgame/cg_public.h"
 #include "../game/bg_public.h"
 
+// tjw: file full of random crap that gets used to create cl_guid
+#define QKEY_FILE "qkey"
+
 #define	RETRANSMIT_TIMEOUT	3000	// time between connection packet retransmits
 
 

Modified: trunk/code/qcommon/qcommon.h
===================================================================
--- trunk/code/qcommon/qcommon.h	2006-04-22 22:14:15 UTC (rev 719)
+++ trunk/code/qcommon/qcommon.h	2006-04-22 22:21:56 UTC (rev 720)
@@ -729,6 +729,7 @@
 int			Com_EventLoop( void );
 int			Com_Milliseconds( void );	// will be journaled properly
 unsigned	Com_BlockChecksum( const void *buffer, int length );
+char		*Com_MD5File(const char *filename, int length);
 int			Com_HashKey(char *string, int maxlen);
 int			Com_Filter(char *filter, char *name, int casesensitive);
 int			Com_FilterPath(char *filter, char *name, int casesensitive);




More information about the quake3-commits mailing list