Subversion Repositories mdb

Rev

Rev 18 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 18 Rev 29
Line 41... Line 41...
41
	char query[1024];
41
	char query[1024];
42
	char fname[256];
42
	char fname[256];
43
	sqlite3 *db;
43
	sqlite3 *db;
44
	int rc;
44
	int rc;
45
	sqlite3_stmt *res;
45
	sqlite3_stmt *res;
-
 
46
	USERS *neu;
46
 
47
 
47
	strcpy(fname, configs.home);
48
	strcpy(fname, configs.home);
48
	strcat(fname, MUSICDB);
49
	strcat(fname, MUSICDB);
49
 
50
 
50
	rc = sqlite3_open(fname, &db);
51
	rc = sqlite3_open(fname, &db);
Line 55... Line 56...
55
		strcpy(query, "ERROR:USER:Error opening database;");
56
		strcpy(query, "ERROR:USER:Error opening database;");
56
		write (s1, query, strlen(query));
57
		write (s1, query, strlen(query));
57
		return FALSE;
58
		return FALSE;
58
	}
59
	}
59
 
60
 
60
	sprintf(query, "select id, uname from \"main\".\"users\" where uname = \"%s\"", user);
61
	sprintf(query, "select id, uname from \"main\".\"users\" where uname = \"%s\" and playlist = \"%s\"", user, playlist);
61
 
62
 
62
	if (sqlite3_prepare(db, query, -1, &res, NULL) != SQLITE_OK)
63
	if (sqlite3_prepare(db, query, -1, &res, NULL) != SQLITE_OK)
63
	{
64
	{
64
		syslog(LOG_DAEMON, "Error preparing SQL statement [%s]: %s", query, sqlite3_errmsg(db));
65
		syslog(LOG_DAEMON, "Error preparing SQL statement [%s]: %s", query, sqlite3_errmsg(db));
65
		strcpy(query, "ERROR:USER:Error preparing a SQL statement;");
66
		strcpy(query, "ERROR:USER:Error preparing a SQL statement;");
Line 87... Line 88...
87
	}
88
	}
88
 
89
 
89
	rc = sqlite3_step(res);
90
	rc = sqlite3_step(res);
90
	sqlite3_finalize(res);
91
	sqlite3_finalize(res);
91
	sqlite3_close(db);
92
	sqlite3_close(db);
-
 
93
	scanUser(s1, user);
92
	return TRUE;
94
	return TRUE;
93
}
95
}
94
 
96
 
95
USERS *addUser()
97
USERS *addUser()
96
{
98
{
Line 213... Line 215...
213
	sqlite3_close(db);
215
	sqlite3_close(db);
214
 
216
 
215
	return TRUE;
217
	return TRUE;
216
}
218
}
217
 
219
 
-
 
220
void scanUser(int s1, char *user)
-
 
221
{
-
 
222
	char query[1024], hv0[128];
-
 
223
	char fname[256];
-
 
224
	sqlite3 *db;
-
 
225
	int rc;
-
 
226
	sqlite3_stmt *res;
-
 
227
	USERS *act;
-
 
228
 
-
 
229
	if (user == NULL)
-
 
230
		return;
-
 
231
 
-
 
232
	deleteUser();
-
 
233
 
-
 
234
	strcpy(fname, configs.home);
-
 
235
	strcat(fname, MUSICDB);
-
 
236
	
-
 
237
	if ((rc = sqlite3_open(fname, &db)) != SQLITE_OK)
-
 
238
	{
-
 
239
		syslog(LOG_WARNING, "Error opening database %s: %s", fname, sqlite3_errmsg(db));
-
 
240
		strcpy(hv0, "ERROR:USER:Error opening database;");
-
 
241
		write (s1, hv0, strlen(hv0));
-
 
242
		return;
-
 
243
	}
-
 
244
 
-
 
245
	sprintf(query, "select id, uname, playlist from \"main\".\"users\" where uname = \"%s\"", user);
-
 
246
 
-
 
247
	if (sqlite3_prepare(db, query, -1, &res, NULL) != SQLITE_OK)
-
 
248
	{
-
 
249
		syslog(LOG_DAEMON, "Error preparing SQL statement [%s]: %s", query, sqlite3_errmsg(db));
-
 
250
		strcpy(hv0, "ERROR:USER:Error preparing a SQL statement;");
-
 
251
		write(s1, hv0, strlen(hv0));
-
 
252
	}
-
 
253
 
-
 
254
	while ((rc = sqlite3_step(res)) == SQLITE_ROW)
-
 
255
	{
-
 
256
		if ((act = addUser()) == NULL)
-
 
257
		{
-
 
258
			sqlite3_finalize(res);
-
 
259
			sqlite3_close(db);
-
 
260
			return;
-
 
261
		}
-
 
262
		
-
 
263
		act->id = sqlite3_column_int(res, 0);
-
 
264
		strncpy(act->uname, (const char *)sqlite3_column_text(res, 1), sizeof(act->uname));
-
 
265
		strncpy(act->playlist, (const char *)sqlite3_column_text(res, 2), sizeof(act->playlist));
-
 
266
	}
-
 
267
	
-
 
268
	sqlite3_finalize(res);
-
 
269
	sqlite3_close(db);
-
 
270
}
-
 
271
 
218
USERS *findPlaylist(char *user, char *playlist)
272
USERS *findPlaylist(char *user, char *playlist)
219
{
273
{
220
	USERS *act;
274
	USERS *act;
221
 
275
 
222
	act = userchain;
276
	act = userchain;