taskrambler  0.1.8
Web server and task management solution.
update_user.c
Go to the documentation of this file.
1 /**
2  * \file
3  *
4  * \author Georg Hopp
5  *
6  * \copyright
7  * Copyright © 2013 Georg Hopp
8  *
9  * This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 #define _GNU_SOURCE
24 
25 #include <stdio.h>
26 #include <stdlib.h>
27 #include <sys/types.h>
28 
29 #include "class.h"
30 #include "auth.h"
31 #include "user.h"
32 #include "uuid.h"
33 #include "storage/storage.h"
35 
36 #include "interface/serializable.h"
37 #include "interface/indexable.h"
38 
39 #include "utils/memory.h"
40 #include "commons.h"
41 
42 Uuid
44  Application this,
45  User user)
46 {
47  char * user_serialized;
48  size_t nuser_serialized;
49  Uuid index;
50 
51  index = indexUuid(user, this->user_namespace);
52  serialize(user, (unsigned char **)&user_serialized, &nuser_serialized);
53 
54  if (SPR_OK != storageUpdate(
55  this->users,
56  (char *)(index->uuid).value,
57  sizeof((index->uuid).value),
58  user_serialized,
59  nuser_serialized))
60  {
61  return uuidZero;
62  }
63 
64  MEM_FREE(user_serialized);
65 
66  return index;
67 }
68 
69 // vim: set ts=4 sw=4:
#define MEM_FREE(seg)
Definition: memory.h:28
StoragePutResult storageUpdate(Storage, char *, size_t, char *, size_t)
Uuid uuidZero
Uuid applicationUpdateUser(Application this, User user)
Definition: update_user.c:43
void serialize(void *, unsigned char **, size_t *)
Definition: serializable.c:32
Uuid indexUuid(void *, Uuid)
Definition: indexable.c:33