/[dgee]/dgee/admin/dgadmtest.c
ViewVC logotype

Diff of /dgee/admin/dgadmtest.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by csmith, Sun Jun 29 19:27:50 2003 UTC revision 1.2 by csmith, Sun Sep 21 11:07:41 2003 UTC
# Line 0  Line 1 
1    /*
2     * Test Client
3     *
4     * Copyright (C) 2002 netFluid Technology Limited.
5     *
6     * This software comes with ABSOLUTELY NO WARRANTY. This is free software,
7     * and you are welcome to modify and redistribute it under the GPL licence.
8     *
9     * Goldwater is written and maintained by netFluid Technology Limited.
10     * http://www.nfluid.co.uk
11     * --------------------------------------------------------------------------
12     * $Id$
13     * --------------------------------------------------------------------------
14     */
15    
16    #include <stdio.h>
17    #include <stdlib.h>
18    #include <string.h>
19    #include <unistd.h>
20    #include <fcntl.h>
21    #include <sys/mman.h>
22    
23    #include <phlib/xl_types.h>
24    #include <phlib/xl_string.h>
25    #include <phlib/xl_mmap.h>
26    
27    #include <gwreq.h>
28    #include <gwlog.h>
29    #include <gwclient.h>
30    #include <gwapi.h>
31    #include <gwmsgchain.h>
32    
33    #include "../fields/dgfid.h"
34    
35    /* ------------------------------------------------------------------------- */
36    
37    int
38    main( int argc, char **argv )
39    {
40      MsgChain  *requestMC = NULL;
41      MsgChain  *replyMC   = NULL;
42      GWMessage replymsg   = {0};
43    
44      char *userName  = NULL;
45      char *realName  = NULL;
46      char *emailAddr = NULL;
47      char *webAddr   = NULL;
48    
49      void *stream = NULL;
50      char  *ctype    = NULL;
51    
52      long  len = 0;
53      int   ret = 0;
54    
55      if( gw_init() < 0 ) {
56        printf( "DGADM Goldwater Client Initialisation Failed - %s\n",
57                    gw_errorstr( gwerror ) );
58        exit(1);
59      }
60      
61      gw_logf( LOG_AUDIT, "dgadmtest client started" );
62    
63      gwusrerr = ERR_INTERNAL_FAILURE;
64    
65      /* Create a request buffer and populate it...
66       */
67      if( (requestMC = gwmc_create() ) == NULL ) {
68            gw_logf( LOG_ERROR, "Failed to get message stream\n" );
69        return 0;
70      }
71    
72      ret = 0;
73    
74      do {
75        userName = "chris@nfluid.com";
76        gwmc_add_data( requestMC, DGF_USERNAME, MIME_TEXT_PLAIN, userName, strlen(userName)+1 );
77    
78        /* Get data stream to send
79         */
80        if( (stream = gwmc_get_message_ptr( requestMC, &len )) == NULL ) {
81          gw_logf( LOG_ERROR, "Failed to get message stream\n" );
82          
83              break;
84        }
85                        
86        if( ( ret = gw_svc_call( "/DGEE/ADM/GetUser", stream, len, &replymsg, 0 )) < 0 ){
87              gw_logf( LOG_ERROR, "gw_svc_call failed with code %d:%d [%s]\n", gwerror, gwusrerr,  gw_errorstr(gwerror) );
88              break;
89        }
90    
91        if( (replyMC = gwmc_importGWMessage( &replymsg )) == NULL ) {
92          gw_logf( LOG_ERROR, "Could not instantiate reply message buffer" );
93          gwusrerr = ERR_INTERNAL_FAILURE;
94          break;
95        }
96    
97        ctype = MIME_TEXT_PLAIN;
98        userName = (char*)gwmc_read_data( replyMC, DGF_USERNAME, &ctype, 1, &len );
99        realName = (char*)gwmc_read_data( replyMC, DGF_REALNAME, &ctype, 1, &len );
100        emailAddr= (char*)gwmc_read_data( replyMC, DGF_EMAIL_ADDR, &ctype,1,&len );
101        webAddr  = (char*)gwmc_read_data( replyMC, DGF_WEB_ADDR, &ctype, 1, &len );
102    
103            printf( "%s:%s:%s:%s\n", userName, realName, emailAddr, webAddr );
104    
105            /* replymsg garbage collection will now be handled by replyMC
106             */
107            ret = 1;
108    
109      } while(0);
110    
111      /* Cleanup
112       */
113      gwmc_destroy( &requestMC );
114      gwmc_destroy( &replyMC   );  /* Frees replymsg too */
115    
116    
117      gw_logf( LOG_AUDIT, "dgadmtest client Exiting" );
118    
119      exit(0);
120    }
121    
122    /* ------------------------------------------------------------------------- */
123    /* end */
124    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26