... | ... |
@@ -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 |
+ |