]> err.no Git - sope/blob - xmlrpc_call/xmlrpc_call.m
fixed gstep-base warnings
[sope] / xmlrpc_call / xmlrpc_call.m
1 /*
2   Copyright (C) 2000-2005 SKYRIX Software AG
3
4   This file is part of SOPE.
5
6   SOPE is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with SOPE; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21
22 /*
23   xmlrpc_call
24   
25   A neat tool to call XML-RPC servers from the shell.
26
27   Defaults:
28     login     - string
29     password  - string
30     forceauth - bool   - send the credentials in the first request!
31 */
32
33 #include <NGXmlRpc/NGXmlRpcClient.h>
34
35 #include <NGExtensions/NSString+Ext.h>
36 #include <NGStreams/NGStreams.h>
37 #include <NGStreams/NGNet.h>
38
39 #if !LIB_FOUNDATION_LIBRARY
40 #  include <NGObjWeb/UnixSignalHandler.h>
41 #endif
42
43 #include "common.h"
44
45 @class WOResponse;
46
47 #include "XmlRpcClientTool.h"
48 #include "HandleCredentialsClient.h"
49 #include <NGObjWeb/WOResponse.h>
50
51 int main(int argc, char **argv, char **env) {
52   NSAutoreleasePool *pool;
53   XmlRpcClientTool  *client;
54   NSArray           *arguments;
55   int               exitCode;
56   
57   pool = [[NSAutoreleasePool alloc] init];
58 #if LIB_FOUNDATION_LIBRARY || defined(GS_PASS_ARGUMENTS)
59   [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
60 #endif
61   
62   /* our sockets need to know, if the PIPE is broken */
63   signal(SIGPIPE, SIG_IGN);
64
65   arguments = [[NSProcessInfo processInfo] argumentsWithoutDefaults];
66   if ((client = [[XmlRpcClientTool alloc] initWithArguments:arguments]) == nil)
67     exitCode = 2;
68   else
69     exitCode =  [client run];
70   
71   [client release];
72   [pool   release];
73   
74   exit(exitCode);
75   return exitCode;
76 }