home *** CD-ROM | disk | FTP | other *** search
/ Total Network Tools 2002 / NextStepPublishing-TotalNetworkTools2002-Win95.iso / Archive / Web Server / Xitami Multithreaded Web Server.exe / TESTLRWP.C < prev    next >
Encoding:
C/C++ Source or Header  |  1999-11-02  |  3.4 KB  |  117 lines

  1. /************************************************************************
  2.                Copyright (c) 1997 by Total Control Software
  3.                          All Rights Reserved
  4. ------------------------------------------------------------------------
  5.  
  6. Module Name:    testlrwp.c
  7.  
  8. Description:    Simple example of an LRWP Peer application.
  9.  
  10. Creation Date:  1/5/98 9:47:50PM
  11. Updated:        1999/8/18, by Xitami Team <xitami@imatix.com> for LRWP 2.0
  12.  
  13.  
  14. # License:      This is free software.  You may use this software for any
  15. #               purpose including modification/redistribution, so long as
  16. #               this header remains intact and that you do not claim any
  17. #               rights of ownership or authorship of this software.  This
  18. #               software has been tested, but no warranty is expressed or
  19. #               implied.
  20.  
  21. ************************************************************************/
  22.  
  23.  
  24. #include "lrwplib.h"
  25.  
  26. #include <stdio.h>
  27.  
  28. //---------------------------------------------------------------------------
  29.  
  30. void usage(void)
  31. {
  32.     printf("Usage:\n\ttestlrwp appname host port [vhost] [passphrase]\n");
  33. }
  34.  
  35. //---------------------------------------------------------------------------
  36.  
  37. void main(int argc, char* argv[])
  38. {
  39.     LRWP    lrwp;
  40.     int     count = 0;
  41.     int     err;
  42.     char*   errMsg;
  43.     char*   appname;
  44.     char*   host;
  45.     char*   port;
  46.     char*   vhost = NULL;
  47.     char*   passphrase = NULL;
  48.     char    buf[1024];
  49.     SYMBOL* symbol;
  50.  
  51.     if (argc < 4) {
  52.         usage();
  53.         exit(1);
  54.     }
  55.  
  56.     appname = argv[1];
  57.     host    = argv[2];
  58.     port    = argv[3];
  59.     if (argc > 4 && *(argv[4]) != '\0')
  60.         vhost = argv[4];
  61.     if (argc > 5 && *(argv[5]) != '\0')
  62.     passphrase = argv[5];
  63.  
  64.     sock_init();
  65.  
  66.     errMsg = lrwp2_connect(&lrwp, appname, host, port, vhost, passphrase);
  67.     if (errMsg) {
  68.         fprintf(stderr, "%s\n", errMsg);
  69.         exit(1);
  70.     }
  71.  
  72.     printf("Waiting for requests from %s:%s\n", host, port);
  73.     printf("Try hitting http://%s/%s with your browser...\n",
  74.            vhost ? vhost : host, appname);
  75.  
  76.         /* only handle 5 reqests, then exit */
  77.     while (count < 5 && lrwp_accept_request(&lrwp) != -1) {
  78.         count += 1;
  79.  
  80.         err = lrwp_send_string(&lrwp, "Content-type: text/html\r\n\r\n");
  81.         sprintf(buf, "<HTML><HEAD><TITLE>LRWP TestApp (%s)</TITLE></HEAD>\n<BODY>\n",
  82.                 appname);
  83.         err = lrwp_send_string(&lrwp, buf);
  84.  
  85.         sprintf(buf, "<H2>LRWP test app (%s)</H2><P>", appname);
  86.         err = lrwp_send_string(&lrwp, buf);
  87.  
  88.         sprintf(buf, "<b>request count</b> = %d<br>", count);
  89.         err = lrwp_send_string(&lrwp, buf);
  90.  
  91.         err = lrwp_send_string(&lrwp, "<br><b>post data:</b> ");
  92.         if (strlen(lrwp.post_data)) {
  93.             err = lrwp_send_string(&lrwp, "<pre>");
  94.             err = lrwp_send_string(&lrwp, lrwp.post_data);
  95.             err = lrwp_send_string(&lrwp, "</pre><br>");
  96.         }
  97.  
  98.         err = lrwp_send_string(&lrwp, "<P><HR><P><pre>");
  99.         for (symbol=lrwp.cgi->symbols; symbol; symbol=symbol->next) {
  100.             sprintf(buf, "<b>%-20s :</b>  %s\n", symbol->name, symbol->value);
  101.             err = lrwp_send_string(&lrwp, buf);
  102.         }
  103.  
  104.         err = lrwp_send_string(&lrwp, "\n</pre><P><HR>\n</BODY></HTML>\n");
  105.         err = lrwp_finish_request(&lrwp);
  106.     }
  107.  
  108.     err = lrwp_close(&lrwp);
  109.     sock_term();
  110. }
  111.  
  112. //---------------------------------------------------------------------------
  113.  
  114.  
  115.  
  116.  
  117.