server_l.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: server_l.h 141 2005-11-26 15:56:44Z aquamaniac $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
00011  ***************************************************************************/
00012 
00013 
00014 
00015 #ifndef CHIPCARD_SERVER2_SERVER_L_H
00016 #define CHIPCARD_SERVER2_SERVER_L_H
00017 
00018 #include <gwenhywfar/plugin.h>
00019 
00020 
00023 #define LCS_DEFAULT_DHFILE   "chipcardd-dh.pem"
00024 #define LCS_DEFAULT_CERTFILE "chipcardd-cert.pem"
00025 
00026 #define LCS_IPC_URL "/libchipcard2/server"
00027 
00031 #define LCS_PATH_DESTLIB                "libchipcard2"
00032 #define LCS_PATH_DRIVER_INFODIR         "DriverInfoDir"
00033 #define LCS_PATH_DRIVER_EXECDIR         "DriverExecDir"
00034 
00035 #define LCS_PATH_SERVICE_EXECDIR        "ServiceExecDir"
00036 
00037 #define LCS_PATH_SERVER_DATADIR         "DataDir"
00038 #define LCS_PATH_SERVER_NEWCERTDIR      "NewCertDir"
00039 #define LCS_PATH_SERVER_TRUSTEDCERTDIR  "TrustedCertDir"
00040 #define LCS_PATH_SERVER_LOGDIR          "LogDir"
00041 
00042 #define LCS_REGKEY_BASE                 "Software\\Libchipcard2\\Server\\Paths"
00043 
00048 #define LCS_PLUGIN_DRIVER "Libchipcard2_Driver"
00049 
00052 #define LCS_PLUGIN_SERVICE "Libchipcard2_Service"
00053 
00054 
00055 #include <gwenhywfar/ipc.h>
00056 #include <gwenhywfar/requestmgr.h>
00057 #include <gwenhywfar/inherit.h>
00058 #include <gwenhywfar/db.h>
00059 #include <gwenhywfar/buffer.h>
00060 #include <gwenhywfar/netlayer.h>
00061 
00062 
00063 typedef struct LCS_SERVER LCS_SERVER;
00064 GWEN_INHERIT_FUNCTION_DEFS(LCS_SERVER)
00065 
00066 
00067 #include <chipcard2/chipcard2.h>
00068 #include "common/card.h"
00069 #include "connection_l.h"
00070 #include "devicemanager/devicemanager_l.h"
00071 
00072 
00073 
00074 typedef void (*LCS_SERVER_DRIVER_CHG_FN)(LCS_SERVER *cs,
00075                                          GWEN_TYPE_UINT32 did,
00076                                          const char *driverType,
00077                                          const char *driverName,
00078                                          const char *libraryFile,
00079                                          LC_DRIVER_STATUS newSt,
00080                                          const char *reason);
00081 
00082 typedef void (*LCS_SERVER_READER_CHG_FN)(LCS_SERVER *cs,
00083                                          GWEN_TYPE_UINT32 did,
00084                                          GWEN_TYPE_UINT32 rid,
00085                                          const char *readerType,
00086                                          const char *readerName,
00087                                          const char *readerInfo,
00088                                          LC_READER_STATUS newSt,
00089                                          const char *reason);
00090 
00091 typedef void (*LCS_SERVER_NEWCARD_FN)(LCS_SERVER *cs, LCCO_CARD *card);
00092 
00093 typedef void (*LCS_SERVER_CARDREMOVED_FN)(LCS_SERVER *cs,
00094                                           GWEN_TYPE_UINT32 rid,
00095                                           int slotNum,
00096                                           GWEN_TYPE_UINT32 cardNum);
00097 
00098 typedef int (*LCS_SERVER_HANDLEREQUEST_FN)(LCS_SERVER *cs,
00099                                            GWEN_TYPE_UINT32 rid,
00100                                            const char *name,
00101                                            GWEN_DB_NODE *dbReq);
00102 
00103 typedef void (*LCS_SERVER_CONNECTION_DOWN_FN)(LCS_SERVER *cs,
00104                                               GWEN_NETLAYER *conn);
00105 
00106 typedef void (*LCS_SERVER_SERVICE_CHG_FN)(LCS_SERVER *cs,
00107                                           GWEN_TYPE_UINT32 sid,
00108                                           const char *serviceType,
00109                                           const char *serviceName,
00110                                           LC_SERVICE_STATUS newSt,
00111                                           const char *reason);
00112 
00113 
00114 LCS_SERVER *LCS_Server_new();
00115 void LCS_Server_free(LCS_SERVER *cs);
00116 
00117 int LCS_Server_Init(LCS_SERVER *cs, GWEN_DB_NODE *db);
00118 int LCS_Server_Fini(LCS_SERVER *cs, GWEN_DB_NODE *db);
00119 
00121 int LCS_Server_Work(LCS_SERVER *cs);
00122 
00123 
00127 void LCS_Server_BeginUseReaders(LCS_SERVER *cs);
00128 void LCS_Server_EndUseReaders(LCS_SERVER *cs, int count);
00129 
00130 
00131 
00132 LCS_SERVER_DRIVER_CHG_FN
00133   LCS_Server_SetDriverChgFn(LCS_SERVER *cs,
00134                             LCS_SERVER_DRIVER_CHG_FN f);
00135 LCS_SERVER_READER_CHG_FN
00136   LCS_Server_SetReaderChgFn(LCS_SERVER *cs,
00137                             LCS_SERVER_READER_CHG_FN f);
00138 LCS_SERVER_NEWCARD_FN
00139   LCS_Server_SetNewCardFn(LCS_SERVER *cs,
00140                           LCS_SERVER_NEWCARD_FN f);
00141 LCS_SERVER_CARDREMOVED_FN
00142   LCS_Server_SetCardRemovedFn(LCS_SERVER *cs,
00143                               LCS_SERVER_CARDREMOVED_FN f);
00144 
00145 LCS_SERVER_HANDLEREQUEST_FN
00146   LCS_Server_SetHandleRequestFn(LCS_SERVER *cs,
00147                                 LCS_SERVER_HANDLEREQUEST_FN f);
00148 
00149 LCS_SERVER_CONNECTION_DOWN_FN
00150   LCS_Server_SetConnectionDownFn(LCS_SERVER *cs,
00151                                  LCS_SERVER_CONNECTION_DOWN_FN f);
00152 LCS_SERVER_SERVICE_CHG_FN
00153   LCS_Server_SetServiceChgFn(LCS_SERVER *cs,
00154                              LCS_SERVER_SERVICE_CHG_FN f);
00155 
00156 
00162 void LCS_Server_UseConnectionFor(LCS_SERVER *cs,
00163                                  GWEN_NETLAYER *conn,
00164                                  LCS_CONNECTION_TYPE t,
00165                                  GWEN_TYPE_UINT32 ipcId);
00166 
00167 
00172 void LCS_Server_DriverChg(LCS_SERVER *cs,
00173                           GWEN_TYPE_UINT32 did,
00174                           const char *driverType,
00175                           const char *driverName,
00176                           const char *libraryFile,
00177                           LC_DRIVER_STATUS newSt,
00178                           const char *reason);
00179 
00180 void LCS_Server_ReaderChg(LCS_SERVER *cs,
00181                           GWEN_TYPE_UINT32 did,
00182                           GWEN_TYPE_UINT32 rid,
00183                           const char *readerType,
00184                           const char *readerName,
00185                           const char *readerInfo,
00186                           LC_READER_STATUS newSt,
00187                           const char *reason);
00188 
00195 void LCS_Server_NewCard(LCS_SERVER *cs, LCCO_CARD *card);
00196 
00197 void LCS_Server_CardRemoved(LCS_SERVER *cs,
00198                             GWEN_TYPE_UINT32 rid,
00199                             int slotNum,
00200                             GWEN_TYPE_UINT32 cardNum);
00201 
00202 void LCS_Server_ConnectionDown(LCS_SERVER *cs,
00203                                GWEN_NETLAYER *conn);
00204 
00205 void LCS_Server_ServiceChg(LCS_SERVER *cs,
00206                            GWEN_TYPE_UINT32 sid,
00207                            const char *serviceType,
00208                            const char *serviceName,
00209                            LC_SERVICE_STATUS newSt,
00210                            const char *reason);
00211 
00216 GWEN_IPCMANAGER *LCS_Server_GetIpcManager(const LCS_SERVER *cs);
00217 GWEN_IPC_REQUEST_MANAGER *LCS_Server_GetRequestManager(const LCS_SERVER *cs);
00218 
00219 LCDM_DEVICEMANAGER *LCS_Server_GetDeviceManager(const LCS_SERVER *cs);
00220 void LCS_Server_SetDeviceManager(LCS_SERVER *cs, LCDM_DEVICEMANAGER *dm);
00221 
00222 
00223 int LCS_Server_ReplaceVar(const char *path,
00224                           const char *var,
00225                           const char *value,
00226                           GWEN_BUFFER *nbuf);
00227 
00228 
00229 int LCS_Server_SendErrorResponse(LCS_SERVER *cs,
00230                                  GWEN_TYPE_UINT32 rid,
00231                                  int code,
00232                                  const char *text);
00233 
00234 void LCS_Server_DumpState(const LCS_SERVER *cs);
00235 
00236 
00237 #endif /* CHIPCARD_SERVER2_SERVER_L_H */
00238 
00239 
00240 

Generated on Sat Sep 22 04:38:38 2007 for libchipcard2 by  doxygen 1.5.3