[Spread-cvs] commit: r409 - trunk/examples

jonathan at spread.org jonathan at spread.org
Fri May 1 11:15:14 EDT 2009


Author: jonathan
Date: 2009-05-01 11:15:13 -0400 (Fri, 01 May 2009)
New Revision: 409

Modified:
   trunk/examples/user.c
Log:
Add command to send a multiline message using the test client spuser.


Modified: trunk/examples/user.c
===================================================================
--- trunk/examples/user.c	2009-01-22 23:30:20 UTC (rev 408)
+++ trunk/examples/user.c	2009-05-01 15:15:13 UTC (rev 409)
@@ -279,6 +279,44 @@
 
 			break;
 
+		case 'm':
+			num_groups = sscanf(&command[2], "%s%s%s%s%s%s%s%s%s%s", 
+						groups[0], groups[1], groups[2], groups[3], groups[4],
+						groups[5], groups[6], groups[7], groups[8], groups[9] );
+			if( num_groups < 1 ) 
+			{
+				printf(" invalid group \n");
+				break;
+			}
+			printf("enter message: ");
+                        mess_len = 0;
+                        while ( mess_len < MAX_MESSLEN) {
+                            if (fgets(&mess[mess_len], 200, stdin) == NULL)
+				Bye();
+                            if (mess[mess_len] == '\n')
+                                break;
+                            mess_len += strlen( &mess[mess_len] );
+                        }
+#ifdef _REENTRANT
+#ifdef __bsdi__		/* bsdi bug - doing a close when another thread blocks on the socket causes a seg fault */
+	ret = send( Mbox, mess, 0, 0 );
+	if( ret < 0 )
+	{
+		SP_error( CONNECTION_CLOSED );
+		Bye();
+	}
+#endif /* __bsdi__ */
+#endif /* _REENTRANT */
+			ret= SP_multigroup_multicast( Mbox, SAFE_MESS, num_groups, (const char (*)[MAX_GROUP_NAME]) groups, 1, mess_len, mess );
+			if( ret < 0 ) 
+			{
+				SP_error( ret );
+				Bye();
+			}
+			Num_sent++;
+
+			break;
+
 		case 'b':
 			ret=sscanf( &command[2], "%s", group );
 			if( ret != 1 ) strcpy( group, "dummy_group_name" );
@@ -364,6 +402,7 @@
 	printf("\tl <group> -- leave a group\n");
 	printf("\n");
 	printf("\ts <group> -- send a message\n");
+        printf("\tm <group> -- send a multiline message to group. Terminate with empty line\n");
 	printf("\tb <group> -- send a burst of messages\n");
 	printf("\n");
 #ifndef	_REENTRANT




More information about the Spread-cvs mailing list