aqhome: more work on http server.
This commit is contained in:
@@ -83,7 +83,7 @@ int AQH_HttpService_LoadConfig(AQH_SERVICE *sv)
|
||||
db=GWEN_DB_Group_new("service");
|
||||
|
||||
nameBuf=_getConfigFilePath(sv, AQH_HTTP_SERVICE_FILE_CONFIG);
|
||||
rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(nameBuf), GWEN_DB_FLAGS_DEFAULT | GWEN_DB_FLAGS_LOCKFILE);
|
||||
rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(nameBuf), GWEN_DB_FLAGS_DEFAULT);
|
||||
if (rv<0) {
|
||||
DBG_INFO(AQH_LOGDOMAIN, "here (%d)", rv);
|
||||
GWEN_Buffer_free(nameBuf);
|
||||
@@ -206,6 +206,42 @@ AQH_USER *AQH_HttpService_GetUser(AQH_SERVICE *sv, const char *alias)
|
||||
|
||||
|
||||
|
||||
int AQH_HttpService_WriteUser(const AQH_SERVICE *sv, const AQH_USER *user)
|
||||
{
|
||||
AQH_HTTP_SERVICE *xsv;
|
||||
int rv;
|
||||
|
||||
xsv=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQH_HTTP_SERVICE, sv);
|
||||
if (xsv==NULL) {
|
||||
DBG_ERROR(AQH_LOGDOMAIN, "Not a AQH_HttpService object");
|
||||
return GWEN_ERROR_INVALID;
|
||||
}
|
||||
|
||||
rv=GWEN_Mutex_Lock(xsv->userMutex);
|
||||
if (rv<0) {
|
||||
DBG_ERROR(AQH_LOGDOMAIN, "Error obtaining lock on user mutex");
|
||||
return rv;
|
||||
}
|
||||
|
||||
rv=AQH_HttpService_SaveUser(sv, user);
|
||||
if (rv<0) {
|
||||
GWEN_Mutex_Unlock(xsv->userMutex);
|
||||
DBG_ERROR(AQH_LOGDOMAIN, "Error saving user \"%s\" (%d)", AQH_User_GetAlias(user), rv);
|
||||
return rv;
|
||||
}
|
||||
|
||||
rv=GWEN_Mutex_Unlock(xsv->userMutex);
|
||||
if (rv<0) {
|
||||
DBG_ERROR(AQH_LOGDOMAIN, "Error releasing lock on user mutex");
|
||||
return rv;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
AQH_SESSION *AQH_HttpService_GetSession(AQH_SERVICE *sv, const char *sessionUid)
|
||||
{
|
||||
AQH_HTTP_SERVICE *xsv;
|
||||
@@ -255,7 +291,7 @@ AQH_MODULE *AQH_HttpService_LoadModule(const AQH_SERVICE *sv, const char *modNam
|
||||
db=GWEN_DB_Group_new("user");
|
||||
|
||||
nameBuf=_getModuleFilePath(sv, modName);
|
||||
rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(nameBuf), GWEN_DB_FLAGS_DEFAULT | GWEN_DB_FLAGS_LOCKFILE);
|
||||
rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(nameBuf), GWEN_DB_FLAGS_DEFAULT);
|
||||
if (rv<0) {
|
||||
DBG_INFO(AQH_LOGDOMAIN, "here (%d)", rv);
|
||||
GWEN_Buffer_free(nameBuf);
|
||||
@@ -368,7 +404,7 @@ AQH_USER *AQH_HttpService_LoadUser(const AQH_SERVICE *sv, const char *userAlias)
|
||||
db=GWEN_DB_Group_new("user");
|
||||
|
||||
nameBuf=_getUserFilePath(sv, userAlias);
|
||||
rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(nameBuf), GWEN_DB_FLAGS_DEFAULT | GWEN_DB_FLAGS_LOCKFILE);
|
||||
rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(nameBuf), GWEN_DB_FLAGS_DEFAULT);
|
||||
if (rv<0) {
|
||||
DBG_INFO(AQH_LOGDOMAIN, "here (%d)", rv);
|
||||
GWEN_Buffer_free(nameBuf);
|
||||
@@ -488,7 +524,7 @@ AQH_SESSION *AQH_HttpService_LoadSession(const AQH_SERVICE *sv, const char *sess
|
||||
db=GWEN_DB_Group_new("user");
|
||||
|
||||
nameBuf=_getSessionFilePath(sv, sessionUid);
|
||||
rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(nameBuf), GWEN_DB_FLAGS_DEFAULT | GWEN_DB_FLAGS_LOCKFILE);
|
||||
rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(nameBuf), GWEN_DB_FLAGS_DEFAULT);
|
||||
if (rv<0) {
|
||||
DBG_INFO(AQH_LOGDOMAIN, "here (%d)", rv);
|
||||
GWEN_Buffer_free(nameBuf);
|
||||
@@ -679,8 +715,8 @@ GWEN_BUFFER *_getConfigFilePath(const AQH_SERVICE *sv, const char *fileName)
|
||||
|
||||
nameBuf=GWEN_Buffer_new(0, 256, 0, 1);
|
||||
GWEN_Buffer_AppendString(nameBuf, configFolder);
|
||||
GWEN_Buffer_AppendString(nameBuf, GWEN_DIR_SEPARATOR_S AQH_HTTP_SERVICE_DIR_SESSIONS GWEN_DIR_SEPARATOR_S);
|
||||
GWEN_Text_EscapeToBuffer(fileName, nameBuf);
|
||||
GWEN_Buffer_AppendString(nameBuf, GWEN_DIR_SEPARATOR_S);
|
||||
GWEN_Buffer_AppendString(nameBuf, fileName);
|
||||
return nameBuf;
|
||||
}
|
||||
}
|
||||
@@ -958,7 +994,7 @@ int _writeDbFile(const char *fname, GWEN_DB_NODE *db)
|
||||
GWEN_Buffer_AppendString(tmpFilenameBuf, fname);
|
||||
GWEN_Buffer_AppendString(tmpFilenameBuf, ".tmp");
|
||||
unlink(GWEN_Buffer_GetStart(tmpFilenameBuf));
|
||||
rv=GWEN_DB_WriteFile(db, GWEN_Buffer_GetStart(tmpFilenameBuf), GWEN_DB_FLAGS_DEFAULT | GWEN_DB_FLAGS_LOCKFILE);
|
||||
rv=GWEN_DB_WriteFile(db, GWEN_Buffer_GetStart(tmpFilenameBuf), GWEN_DB_FLAGS_DEFAULT);
|
||||
if (rv<0) {
|
||||
DBG_ERROR(AQH_LOGDOMAIN, "Error writing db file \"%s\": %d", GWEN_Buffer_GetStart(tmpFilenameBuf), rv);
|
||||
GWEN_Buffer_free(tmpFilenameBuf);
|
||||
|
||||
Reference in New Issue
Block a user