Browse code

put session handling in separate source file

Dario Rodriguez authored on 25/06/2014 17:02:32
Showing 5 changed files
... ...
@@ -9,9 +9,11 @@ clean:
9 9
 	rm -f *.o kakumei kakumei-invite ../res/gen_res.[ch]
10 10
 
11 11
 kakumei: kakumei.o loglib.o parselib.o sbuf.o \
12
-		socklib.o webkernel.o gen_res.o
12
+		socklib.o webkernel.o gen_res.o \
13
+		kakumei_session.o
13 14
 	$(CC) $(LDFLAGS) kakumei.o loglib.o parselib.o sbuf.o \
14
-		socklib.o webkernel.o gen_res.o -o kakumei
15
+		socklib.o webkernel.o gen_res.o \
16
+		kakumei_session.o -o kakumei
15 17
 
16 18
 kakumei.o: kakumei.c ../src/gen_res.c
17 19
 
... ...
@@ -18,19 +18,8 @@
18 18
 #include "gen_res.h"
19 19
 #include "socklib.h"
20 20
 #include "webkernel.h"
21
-
22
-#define INVITATIONUSER "invitation"
23
-#define DATADIR "data"
24
-#define INVITESDIR "data/invitations"
25
-#define USERSDIR "data/users"
26
-#define POSTSDIR "data/posts"
27
-#define SESSIONSDIR "data/sessions"
28
-
29
-typedef struct kakumei {
30
-        sselect *ssel;
31
-        wk *web;
32
-} kakumei;
33
-
21
+#include "kakumei.h"
22
+#include "kakumei_session.h"
34 23
 
35 24
 static int signal_init(int signum, void (*fn)(int));
36 25
 static void sigint(int signum);
... ...
@@ -41,9 +30,6 @@ wk_action http_login(wk *web, int connid, wk_uri *uri, void *userptr);
41 30
 wk_action http_newuser(wk *web, int connid, wk_uri *uri, void *userptr);
42 31
 
43 32
 int pass_check(char *user, char *passwd);
44
-char *session_new(char *user, char *session, int sessionsize);
45
-
46
-
47 33
 
48 34
 int
49 35
 main(int argc, char *argv[])
... ...
@@ -132,6 +118,9 @@ http_login(wk *web, int connid, wk_uri *uri, void *userptr)
132 118
         char userpath[1024];
133 119
         char session[1024];
134 120
         struct stat st;
121
+        kakumei *ka=(kakumei *)userptr;
122
+        if(web==NULL || connid<0 || uri==NULL || ka==NULL)
123
+                return(wkact_finished); /* internal error */
135 124
         if(wk_uri_copyvar(uri,"u",u,sizeof(u))==NULL)
136 125
                 u[0]='\0';
137 126
         if(wk_uri_copyvar(uri,"p",p,sizeof(p))==NULL)
... ...
@@ -151,7 +140,7 @@ http_login(wk *web, int connid, wk_uri *uri, void *userptr)
151 140
                 return(wkact_finished);
152 141
         } else if(strchr(u,'/')==NULL && strchr(u,'.')==NULL &&
153 142
           stat(userpath,&st)==0 && S_ISREG(st.st_mode) && pass_check(u,p)==0 &&
154
-          session_new(u,session,sizeof(session))!=NULL) {
143
+          session_new(ka,u,session,sizeof(session))!=NULL) {
155 144
                 /* valid login */
156 145
                 snprintf(reply,sizeof(reply),"/posts.html?s=%s",session);
157 146
                 reply[sizeof(reply)-1]='\0';
... ...
@@ -178,10 +167,3 @@ pass_check(char *user, char *passwd)
178 167
         return(-1);
179 168
 }
180 169
 
181
-char *
182
-session_new(char *user, char *session, int sessionsize)
183
-{
184
-#warning TODO
185
-        return(NULL);
186
-}
187
-
188 170
new file mode 100644
... ...
@@ -0,0 +1,30 @@
1
+/*
2
+ * kakumei.h
3
+ *
4
+ * Private group web.
5
+ *
6
+ * Header file
7
+ *
8
+ * Author: Dario Rodriguez dario@softhome.net
9
+ * This progran is licensed under the terms of the Affero GPL v1+
10
+ */
11
+
12
+#ifndef KAKUMEI_H
13
+#define KAKUMEI_H
14
+
15
+#include "socklib.h"
16
+#include "webkernel.h"
17
+
18
+#define INVITATIONUSER "invitation"
19
+#define DATADIR "data"
20
+#define INVITESDIR "data/invitations"
21
+#define USERSDIR "data/users"
22
+#define POSTSDIR "data/posts"
23
+#define SESSIONSDIR "data/sessions"
24
+
25
+typedef struct kakumei {
26
+        sselect *ssel;
27
+        wk *web;
28
+} kakumei;
29
+
30
+#endif
0 31
new file mode 100644
... ...
@@ -0,0 +1,28 @@
1
+/*
2
+ * kakumei_session.c
3
+ *
4
+ * Session handling for kakumei.
5
+ *
6
+ * Author: Dario Rodriguez dario@softhome.net
7
+ * This progran is licensed under the terms of the Affero GPL v1+
8
+ */
9
+
10
+#include "kakumei.h"
11
+#include "kakumei_session.h"
12
+
13
+char *
14
+session_new(kakumei *ka, char *user, char *session, int sessionsize)
15
+{
16
+
17
+}
18
+
19
+int
20
+session_check(kakumei *ka, char *session)
21
+{
22
+}
23
+
24
+int
25
+session_del(kakumei *ka, char *session)
26
+{
27
+}
28
+
0 29
new file mode 100644
... ...
@@ -0,0 +1,17 @@
1
+/*
2
+ * kakumei_session.h
3
+ *
4
+ * Session handling for kakumei.
5
+ *
6
+ * Header file
7
+ *
8
+ * Author: Dario Rodriguez dario@softhome.net
9
+ * This progran is licensed under the terms of the Affero GPL v1+
10
+ */
11
+
12
+#include "kakumei.h"
13
+
14
+char *session_new(kakumei *ka, char *user, char *session, int sessionsize);
15
+int session_check(kakumei *ka, char *session);
16
+int session_del(kakumei *ka, char *session);
17
+