瀏覽代碼

- doc updates
- new makefile target: make bin (creates a binary ser distribution)
- various small fixes

Andrei Pelinescu-Onciul 23 年之前
父節點
當前提交
0bafb27983
共有 7 個文件被更改,包括 49 次插入69 次删除
  1. 1 48
      INSTALL
  2. 10 2
      Makefile
  3. 12 4
      Makefile.defs
  4. 6 1
      README
  5. 6 1
      main.c
  6. 12 12
      modules/tm/t_stats.c
  7. 2 1
      test/perf.txt

+ 1 - 48
INSTALL

@@ -15,16 +15,12 @@ TODO
 --we'll probably go for mysql dependancy,
 --we'll probably go for mysql dependancy,
   then INSTALL needs to be completely
   then INSTALL needs to be completely
   changed
   changed
---see TROUBLES -- on some hosts, like mine (Jiri)
-  ser binds to 127.0.0.1 -- not really good for
-  quick-start
-
 
 
 
 
 Installation Notes
 Installation Notes
 
 
 Supported arhitectures: Linux/i386, Linux/armv4l, FreeBSD/i386, Solaris/sparc64,
 Supported arhitectures: Linux/i386, Linux/armv4l, FreeBSD/i386, Solaris/sparc64,
-Win*/i386 (CYGWIN)
+Win*/i386 (CYGWIN) - only the core
 (for other arhitectures the Makefile must be edited)
 (for other arhitectures the Makefile must be edited)
 
 
 There are various configuration options defined in the Makefile.
 There are various configuration options defined in the Makefile.
@@ -220,46 +216,3 @@ C) Troubleshooting
 listen
 listen
 aliases
 aliases
 
 
-
-TROUBLES
-
-In the following config, ser bound itself to /dev/lo -- not
-good for quick start.
-
-
-[jiri@cat jiri]$ hostname -a
-localhost.localdomain localhost 
-[jiri@cat jiri]$ hostname
-cat
-[jiri@cat jiri]$ 
-
-
-[root@cat log]# uname -a
-Linux cat 2.4.18-3 #1 Thu Apr 18 07:37:53 EDT 2002 i686 unknown
-
-/etc/hosts
-
-# Do not remove the following line, or various programs
-# that require network functionality will fail.
-127.0.0.1       cat     localhost.localdomain   localhost
-
-
-[root@cat log]# /sbin/ifconfig 
-eth0      Link encap:Ethernet  HWaddr 00:08:02:38:D9:A0  
-          inet addr:192.168.0.16  Bcast:192.168.0.255  Mask:255.255.255.0
-          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
-          RX packets:152917 errors:0 dropped:0 overruns:0 frame:0
-          TX packets:87759 errors:0 dropped:0 overruns:0 carrier:0
-          collisions:35 txqueuelen:100 
-          RX bytes:216441566 (206.4 Mb)  TX bytes:5542812 (5.2 Mb)
-          Interrupt:5 Base address:0x7000 
-
-lo        Link encap:Local Loopback  
-          inet addr:127.0.0.1  Mask:255.0.0.0
-          UP LOOPBACK RUNNING  MTU:16436  Metric:1
-          RX packets:162 errors:0 dropped:0 overruns:0 frame:0
-          TX packets:162 errors:0 dropped:0 overruns:0 carrier:0
-          collisions:0 txqueuelen:0 
-          RX bytes:10568 (10.3 Kb)  TX bytes:10568 (10.3 Kb)
-
-

+ 10 - 2
Makefile

@@ -83,9 +83,17 @@ static_modules:
 dbg: ser
 dbg: ser
 	gdb -command debug.gdb
 	gdb -command debug.gdb
 
 
-
+.PHONY: tar
 tar: mantainer-clean 
 tar: mantainer-clean 
-	tar -C .. -zcf ../$(NAME)-$(RELEASE)_src.tar.gz  $(notdir $(CURDIR)) 
+	$(TAR) -C .. -zcf ../$(NAME)-$(RELEASE)_src.tar.gz  $(notdir $(CURDIR)) 
+
+# binary dist. tar.gz
+.PHONY: bin
+bin:
+	mkdir -p tmp/ser/usr/local
+	$(MAKE) install prefix=tmp/ser/usr/local
+	$(TAR) -C tmp/ser/ -zcf ../$(NAME)-$(RELEASE)_$(OS)_$(ARCH).tar.gz .
+	rm -rf tmp/ser
 
 
 
 
 install: all mk-install-dirs install-cfg install-bin install-modules \
 install: all mk-install-dirs install-cfg install-bin install-modules \

+ 12 - 4
Makefile.defs

@@ -8,10 +8,10 @@
 VERSION = 0
 VERSION = 0
 PATCHLEVEL = 8
 PATCHLEVEL = 8
 SUBLEVEL = 7
 SUBLEVEL = 7
-EXTRAVERSION = -15-tests
+EXTRAVERSION = -16
 
 
 RELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 RELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
-OS = $(shell uname -s)
+OS = $(shell uname -s | sed -e s/SunOS/solaris/ | tr "[A-Z]" "[a-z]")
 ARCH = $(shell uname -m |sed -e s/i.86/i386/ -e s/sun4u/sparc64/ )
 ARCH = $(shell uname -m |sed -e s/i.86/i386/ -e s/sun4u/sparc64/ )
 
 
 prefix = /usr/local
 prefix = /usr/local
@@ -28,7 +28,15 @@ modules-dir = lib/ser/modules/
 doc-dir = share/doc/ser/
 doc-dir = share/doc/ser/
 man-dir = share/man/
 man-dir = share/man/
 
 
+
+ifeq ($(OS), solaris)
+#use GNU versions
+INSTALL = ginstall
+TAR = gtar
+else
 INSTALL = install 
 INSTALL = install 
+TAR= tar
+endif
 INSTALL-CFG = $(INSTALL) -m 644
 INSTALL-CFG = $(INSTALL) -m 644
 INSTALL-BIN = $(INSTALL) -m 755
 INSTALL-BIN = $(INSTALL) -m 755
 INSTALL-MODULES = $(INSTALL) -m 755
 INSTALL-MODULES = $(INSTALL) -m 755
@@ -431,7 +439,7 @@ ifeq ($(OS), Linux)
 	#same as common
 	#same as common
 endif
 endif
 
 
-ifeq  ($(OS), SunOS)
+ifeq  ($(OS), solaris)
 	ifeq ($(mode), release)
 	ifeq ($(mode), release)
 		#use these only if you're using gcc with Solaris ld
 		#use these only if you're using gcc with Solaris ld
 		#LDFLAGS=-O2 $(PROFILE)
 		#LDFLAGS=-O2 $(PROFILE)
@@ -450,7 +458,7 @@ endif
 	# -lrt needed for sched_yield
 	# -lrt needed for sched_yield
 endif
 endif
 
 
-ifeq ($(OS), FreeBSD)
+ifeq ($(OS), freebsd)
 
 
 	YACC=yacc
 	YACC=yacc
 	LIBS= -lfl  #dlopen is in libc
 	LIBS= -lfl  #dlopen is in libc

+ 6 - 1
README

@@ -20,10 +20,12 @@ Configuration files:
 	Global parameters:
 	Global parameters:
 		- debug
 		- debug
 		- listen
 		- listen
+		- alias
 		- port
 		- port
 		- fork
 		- fork
 		- children_no
 		- children_no
 		- log_stderror
 		- log_stderror
+		- fifo
 		- loadmodule "path/modulename"
 		- loadmodule "path/modulename"
 		...
 		...
 
 
@@ -38,12 +40,15 @@ Configuration files:
 			- uri
 			- uri
 			- method
 			- method
 			- src_ip
 			- src_ip
-			- dst_ip [not working yet]
+			- dst_ip
+			- myself
 		Rvalues:
 		Rvalues:
 			- string
 			- string
 			- integer
 			- integer
 			- ipv4 or ipv6 address
 			- ipv4 or ipv6 address
 			- netv4 or netv6 address
 			- netv4 or netv6 address
+			- myself (matches any uri or ip address the server listens on or 
+			 registered as an alias for the server)
 			
 			
 	Commands:
 	Commands:
 		- forward
 		- forward

+ 6 - 1
main.c

@@ -1163,7 +1163,9 @@ int main(int argc, char** argv)
 		r++;
 		r++;
 	}
 	}
 	/* get ips & fill the port numbers*/
 	/* get ips & fill the port numbers*/
+#ifdef EXTRA_DEBUG
 	printf("Listening on \n");
 	printf("Listening on \n");
+#endif
 	for (r=0; r<sock_no;r++){
 	for (r=0; r<sock_no;r++){
 		he=resolvehost(sock_info[r].name.s);
 		he=resolvehost(sock_info[r].name.s);
 		if (he==0){
 		if (he==0){
@@ -1228,8 +1230,10 @@ int main(int argc, char** argv)
 		strncpy(sock_info[r].port_no_str.s, port_no_str, strlen(port_no_str)+1);
 		strncpy(sock_info[r].port_no_str.s, port_no_str, strlen(port_no_str)+1);
 		sock_info[r].port_no_str.len=strlen(port_no_str);
 		sock_info[r].port_no_str.len=strlen(port_no_str);
 		
 		
+#ifdef EXTRA_DEBUG
 		printf("              %s [%s]:%s\n",sock_info[r].name.s,
 		printf("              %s [%s]:%s\n",sock_info[r].name.s,
 				sock_info[r].address_str.s, sock_info[r].port_no_str.s);
 				sock_info[r].address_str.s, sock_info[r].port_no_str.s);
+#endif
 	}
 	}
 	/* removing duplicate addresses*/
 	/* removing duplicate addresses*/
 	for (r=0; r<sock_no; r++){
 	for (r=0; r<sock_no; r++){
@@ -1240,10 +1244,11 @@ int main(int argc, char** argv)
 						sock_info[t].address.u.addr,
 						sock_info[t].address.u.addr,
 						sock_info[r].address.len)  == 0)
 						sock_info[r].address.len)  == 0)
 				){
 				){
+#ifdef EXTRA_DEBUG
 				printf("removing duplicate (%d) %s [%s] == (%d) %s [%s]\n",
 				printf("removing duplicate (%d) %s [%s] == (%d) %s [%s]\n",
 						r, sock_info[r].name.s, sock_info[r].address_str.s,
 						r, sock_info[r].name.s, sock_info[r].address_str.s,
 						t, sock_info[t].name.s, sock_info[t].address_str.s);
 						t, sock_info[t].name.s, sock_info[t].address_str.s);
-				
+#endif
 				/* add the name to the alias list*/
 				/* add the name to the alias list*/
 				if ((!sock_info[t].is_ip) && (
 				if ((!sock_info[t].is_ip) && (
 						(sock_info[t].name.len!=sock_info[r].name.len)||
 						(sock_info[t].name.len!=sock_info[r].name.len)||

+ 12 - 12
modules/tm/t_stats.c

@@ -45,32 +45,32 @@ struct t_stats *cur_stats, *acc_stats;
 int print_stats(  FILE *f )
 int print_stats(  FILE *f )
 {
 {
 	fprintf(f, "Current:\n");
 	fprintf(f, "Current:\n");
-	fprintf(f, "# of transactions: %ld, ", 
+	fprintf(f, "# of transactions: %10lu, ", 
 		cur_stats->transactions );
 		cur_stats->transactions );
-	fprintf(f, "local: %ld, ",
+	fprintf(f, "local: %10lu, ",
 		cur_stats->client_transactions );
 		cur_stats->client_transactions );
-	fprintf(f, "waiting: %ld" CLEANUP_EOL ,
+	fprintf(f, "waiting: %10lu" CLEANUP_EOL ,
 		cur_stats->waiting );
 		cur_stats->waiting );
 
 
 	fprintf(f, "Total:\n");
 	fprintf(f, "Total:\n");
-	fprintf(f, "# of transactions: %ld,",
+	fprintf(f, "# of transactions: %10lu,",
 		acc_stats->transactions );
 		acc_stats->transactions );
-	fprintf(f, " local: %ld,",
+	fprintf(f, " local: %10lu,",
 		acc_stats->client_transactions );
 		acc_stats->client_transactions );
-	fprintf(f, " waiting: %ld" CLEANUP_EOL ,
+	fprintf(f, " waiting: %10lu" CLEANUP_EOL ,
 		acc_stats->waiting );
 		acc_stats->waiting );
 
 
-	fprintf(f, "Replied localy: %ld" CLEANUP_EOL ,
+	fprintf(f, "Replied localy: %10lu" CLEANUP_EOL ,
 		acc_stats->replied_localy );
 		acc_stats->replied_localy );
-	fprintf(f, "Completion status 6xx: %ld,",
+	fprintf(f, "Completion status 6xx: %10lu,",
 		acc_stats->completed_6xx );
 		acc_stats->completed_6xx );
-	fprintf(f, " 5xx: %ld,",
+	fprintf(f, " 5xx: %10lu,",
 		acc_stats->completed_5xx );
 		acc_stats->completed_5xx );
-	fprintf(f, " 4xx: %ld,",
+	fprintf(f, " 4xx: %10lu,",
 		acc_stats->completed_4xx );
 		acc_stats->completed_4xx );
-	fprintf(f, " 3xx: %ld,",
+	fprintf(f, " 3xx: %10lu,",
 		acc_stats->completed_3xx );
 		acc_stats->completed_3xx );
-	fprintf(f, "2xx: %ld" CLEANUP_EOL ,
+	fprintf(f, "2xx: %10lu" CLEANUP_EOL ,
 		acc_stats->completed_2xx );
 		acc_stats->completed_2xx );
 	
 	
 	return 1;
 	return 1;

+ 2 - 1
test/perf.txt

@@ -100,5 +100,6 @@ ser gcc3.2         20             704  725       1137  1202      1460  1575
 
 
 stress:
 stress:
 test calls: 1000000
 test calls: 1000000
-                   20          100 procs (cps)
+                  100          100 procs (cps)
+                                   107* - out of mem