testprogs/win32: make it possible to run in byte or message mode in npecho_server2
authorStefan Metzmacher <metze@samba.org>
Mon, 9 Feb 2009 11:09:01 +0000 (12:09 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 9 Feb 2009 11:09:01 +0000 (12:09 +0100)
metze

testprogs/win32/npecho/npecho_client2.c
testprogs/win32/npecho/npecho_server2.c

index 0486cef28b6069c25f46d947bed25f4a76c91bdf..892574beb0534112707e561fcd16703db8049763 100755 (executable)
@@ -28,7 +28,7 @@ int main(int argc, char *argv[])
                return -1;
        }
 
-       Sleep(1000);
+       Sleep(5000);
 
        if (!ReadFile(h, outbuffer, sizeof(ECHODATA)*2, &numread, NULL)) {
                printf("Error reading: %d\n", GetLastError());
index 72edb020045882708d089d2522907fc6abade19b..281fc458332d41ee093b7765df9c7510b5e6b512 100755 (executable)
@@ -15,16 +15,32 @@ int main(int argc, char *argv[])
        HANDLE h;
        DWORD numread = 0;
        char *outbuffer = malloc(sizeof(ECHODATA));
+       BOOL msgmode = FALSE;
+       DWORD type = 0;
 
        if (argc == 1) {
-               printf("Usage: %s pipename\n", argv[0]);
-               printf("  Where pipename is something like \\\\servername\\NPECHO\n");
-               return -1;
+               goto usage;
+       } else if (argc >= 3) {
+               if (strcmp(argv[2], "byte") == 0) {
+                       msgmode = FALSE;
+               } else if (strcmp(argv[2], "message") == 0) {
+                       msgmode = TRUE;
+               } else {
+                       goto usage;
+               }
+       }
+
+       if (msgmode == TRUE) {
+               printf("using message mode\n");
+               type = PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT;
+       } else {
+               printf("using byte mode\n");
+               type = PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT;
        }
 
        h = CreateNamedPipe(argv[1],
                            PIPE_ACCESS_DUPLEX,
-                           PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
+                           type,
                            PIPE_UNLIMITED_INSTANCES,
                            1024,
                            1024,
@@ -52,4 +68,9 @@ int main(int argc, char *argv[])
        CloseHandle(h);
 
        return 0;
+usage:
+       printf("Usage: %s pipename [mode]\n", argv[0]);
+       printf("  Where pipename is something like \\\\servername\\PIPE\\NPECHO\n");
+       printf("  Where mode is 'byte' or 'message'\n");
+       return -1;
 }