--- libaitsess/src/aitsess.c 2012/02/10 22:46:41 1.3.2.6 +++ libaitsess/src/aitsess.c 2012/02/10 23:04:41 1.3.2.7 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitsess.c,v 1.3.2.6 2012/02/10 22:46:41 misho Exp $ +* $Id: aitsess.c,v 1.3.2.7 2012/02/10 23:04:41 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -142,25 +142,25 @@ sess_initSession(int id, const char *csFName, ait_sess if (!strncmp(szStr, "IPC@", 4) && id == SHARED_IPC) { ret = 1; - (*Sess)->sess.create = ipc_createSession; - (*Sess)->sess.destroy = ipc_destroySession; - (*Sess)->sess.attach = ipc_attachSession; - (*Sess)->sess.detach = ipc_detachSession; - (*Sess)->sess.notSem = ipc_notSemaphore; - (*Sess)->sess.isSemOK = ipc_isSemaphoreOK; - (*Sess)->sess.incSem = ipc_incSemaphore; - (*Sess)->sess.decSem = ipc_decSemaphore; + (*Sess)->sess.create = (int (*)(int, long, void*, ...)) ipc_createSession; + (*Sess)->sess.destroy = (void (*)(void*)) ipc_destroySession; + (*Sess)->sess.attach = (void* (*)(void*, void*)) ipc_attachSession; + (*Sess)->sess.detach = (void (*)(void*)) ipc_detachSession; + (*Sess)->sess.notSem = (void (*)(void*)) ipc_notSemaphore; + (*Sess)->sess.isSemOK = (int (*)(void*)) ipc_isSemaphoreOK; + (*Sess)->sess.incSem = (int (*)(void*)) ipc_incSemaphore; + (*Sess)->sess.decSem = (int (*)(void*)) ipc_decSemaphore; } else if (!strncmp(szStr, "MAP@", 4) && id == SHARED_MAP) { ret = 1; - (*Sess)->sess.create = map_createSession; - (*Sess)->sess.destroy = map_destroySession; - (*Sess)->sess.attach = map_attachSession; - (*Sess)->sess.detach = map_detachSession; - (*Sess)->sess.notSem = map_notSemaphore; - (*Sess)->sess.isSemOK = map_isSemaphoreOK; - (*Sess)->sess.incSem = map_incSemaphore; - (*Sess)->sess.decSem = map_decSemaphore; + (*Sess)->sess.create = (int (*)(int, long, void*, ...)) map_createSession; + (*Sess)->sess.destroy = (void (*)(void*)) map_destroySession; + (*Sess)->sess.attach = (void* (*)(void*, void*)) map_attachSession; + (*Sess)->sess.detach = (void (*)(void*)) map_detachSession; + (*Sess)->sess.notSem = (void (*)(void*)) map_notSemaphore; + (*Sess)->sess.isSemOK = (int (*)(void*)) map_isSemaphoreOK; + (*Sess)->sess.incSem = (int (*)(void*)) map_incSemaphore; + (*Sess)->sess.decSem = (int (*)(void*)) map_decSemaphore; } else { sess_SetErr(EPROTONOSUPPORT, "Session type not supported or wrong session type"); @@ -174,25 +174,25 @@ sess_initSession(int id, const char *csFName, ait_sess if (id == SHARED_IPC) { strlcpy(szStr, "IPC@", sizeof szStr); - (*Sess)->sess.create = ipc_createSession; - (*Sess)->sess.destroy = ipc_destroySession; - (*Sess)->sess.attach = ipc_attachSession; - (*Sess)->sess.detach = ipc_detachSession; - (*Sess)->sess.notSem = ipc_notSemaphore; - (*Sess)->sess.isSemOK = ipc_isSemaphoreOK; - (*Sess)->sess.incSem = ipc_incSemaphore; - (*Sess)->sess.decSem = ipc_decSemaphore; + (*Sess)->sess.create = (int (*)(int, long, void*, ...)) ipc_createSession; + (*Sess)->sess.destroy = (void (*)(void*)) ipc_destroySession; + (*Sess)->sess.attach = (void* (*)(void*, void*)) ipc_attachSession; + (*Sess)->sess.detach = (void (*)(void*)) ipc_detachSession; + (*Sess)->sess.notSem = (void (*)(void*)) ipc_notSemaphore; + (*Sess)->sess.isSemOK = (int (*)(void*)) ipc_isSemaphoreOK; + (*Sess)->sess.incSem = (int (*)(void*)) ipc_incSemaphore; + (*Sess)->sess.decSem = (int (*)(void*)) ipc_decSemaphore; } else if (id == SHARED_MAP) { strlcpy(szStr, "MAP@", sizeof szStr); - (*Sess)->sess.create = map_createSession; - (*Sess)->sess.destroy = map_destroySession; - (*Sess)->sess.attach = map_attachSession; - (*Sess)->sess.detach = map_detachSession; - (*Sess)->sess.notSem = map_notSemaphore; - (*Sess)->sess.isSemOK = map_isSemaphoreOK; - (*Sess)->sess.incSem = map_incSemaphore; - (*Sess)->sess.decSem = map_decSemaphore; + (*Sess)->sess.create = (int (*)(int, long, void*, ...)) map_createSession; + (*Sess)->sess.destroy = (void (*)(void*)) map_destroySession; + (*Sess)->sess.attach = (void* (*)(void*, void*)) map_attachSession; + (*Sess)->sess.detach = (void (*)(void*)) map_detachSession; + (*Sess)->sess.notSem = (void (*)(void*)) map_notSemaphore; + (*Sess)->sess.isSemOK = (int (*)(void*)) map_isSemaphoreOK; + (*Sess)->sess.incSem = (int (*)(void*)) map_incSemaphore; + (*Sess)->sess.decSem = (int (*)(void*)) map_decSemaphore; } else { sess_SetErr(EINVAL, "Session type must be specified"); close(h); @@ -318,7 +318,7 @@ map_destroySession(ait_sess_t * __restrict Sess) { char szSName[2][FILENAME_MAX]; - if (!Sess || sess_isAttached(Sess)) + if (!Sess || sess_isAttached(Sess) || !*Sess->name) return; memset(szSName, 0, sizeof szSName);