#include "soapH.h" #include "echo.nsmap" int cnt, expand = 1, repeat = 1, soapio = 0; char *server; int main (int argc, char **argv) { struct soap soap; char *cptr, *result; if (!(server = getenv("ECHO_URL"))) { fprintf (stderr, "Requires: $ ECHO_URL = \"http://the.host.name/the/path\"\n"); exit (0); } if (argc < 2) { fprintf (stderr, "Usage: echoclient \"\" [] [] [-k|+k]\n\ First integer is client repeat count.\n\ Second integer is script expansion count (string expanded times).\n"); exit (0); } if (argc >= 3 && atoi(argv[2])) repeat = atoi(argv[2]); if (argc >= 4 && atoi(argv[3])) { expand = atoi(argv[3]); if (argc >= 5 && (*(unsigned short*)(argv[4]) == '-k' || *(unsigned short*)(argv[4]) == '+k')) soapio |= SOAP_IO_KEEPALIVE; } else if (argc >= 4 && (*(unsigned short*)(argv[3]) == '-k' || *(unsigned short*)(argv[3]) == '+k')) soapio |= SOAP_IO_KEEPALIVE; fprintf (stderr, "%s\n", server); for (cnt = 0; cnt < repeat; cnt++) { if (!cnt || !soapio) soap_init1 (&soap, soapio); soap_call_ns__echo (&soap, server, "", argv[1], expand, &result); if (soap.error) { if (repeat > 1) fprintf (stderr, "%d/%d:\n", cnt, repeat); soap_print_fault (&soap, stderr); exit(1); } else printf ("%s\n", result); if (!soapio) { /* if not keep-alive */ soap_destroy (&soap); soap_end (&soap); soap_done (&soap); } } return (0); }