#ifndef _SFSROSD_H_
#define _SFSROSD_H_

#include "sfsmisc.h"
#include "sfsro_prot.h"
#include "arpc.h"
#include "crypt.h"
#include "sfsdb.h"

extern sfs_connectres cres;
extern sfs_fsinfo fsinfores;
extern sfsrodb db;

class sfsroclient {
  ptr<axprt_stream> x;
  ptr<asrv> rosrv;
  ptr<asrv> sfssrv;

  ref<bool> destroyed;

  bool unixauth;
  uid_t uid;

  bool authid_valid;
  sfs_hash authid;

  void dispatch (ref<bool> b, svccb *sbp);
  void getdata_cb(svccb *sbp, sfsro_datares *res, ref<bool> d);
public:
  sfsroclient (ptr<axprt_stream> x, const authunix_parms *aup = NULL);
  ~sfsroclient ();
};

#endif /*_SFSROSD_H_*/
