Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages   Examples  

sample.c

A simple example of how to use libauc.

 make sample
 sample config.xml internal guest guest

#include <libmacs.h>
#include <stdio.h>
#include <malloc.h>
int main(int argc, char **argv) {
  int i, j;
  long int siz;
  char *skey, *uid, **pkeys, *pval, *ip, *port;
  void *mctx;
  macs_profile_type mpt;

  if (argc < 2 || (argc-2)%3) {
    printf("Usage: %s cf [method login password] ...\n",argv[0]);
    puts("\tWhere cf is the configuration file to use\n");
    exit(1);
  }
  ip="0.0.0.0"; port="0";
  mctx=macs_init(argv[1],MACS_AUS);
  if (!mctx) { puts("init failed."); return 1; }
  for (i=2; i < argc; i+=3) {
    printf("method:%s login:%s passwd:%s",argv[i],argv[i+1],argv[i+2]);
    skey=macs_login(mctx,argv[i],argv[i+1],argv[i+2],ip,port,-1);
    uid=macs_auth_sess(mctx,skey,ip,port);
    free(skey);
    if (uid) printf(" success, uid %s\n",uid);
    else { puts(" failed."); free(uid); continue; }
    fputs("Fetching core profile...",stdout);
    if ((pkeys=macs_upc_list(mctx,NULL,uid,MACS_TYPE_AUTO))) puts(" done.");
    else { puts(" failed."); free(uid); continue; }
    for (j=0; pkeys[j]; j++) {
      printf("\t%s:",pkeys[j]);
      mpt=MACS_TYPE_AUTO;
      pval=macs_upc_get(mctx,NULL,uid,pkeys[j],&mpt,&siz);
      if (!pval) puts(" failed.");
      else { printf(" %s\n",pval); free(pval); }
      free(pkeys[j]);
    }
    free(pkeys);
    free(uid);
  }
  macs_exit(mctx);
  return 0;
}

Generated on Tue Oct 8 22:15:52 2002 for MACS Client C API by doxygen1.2.16