aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/sledjchisl/sledjchisl.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/sledjchisl/sledjchisl.c44
1 files changed, 28 insertions, 16 deletions
diff --git a/src/sledjchisl/sledjchisl.c b/src/sledjchisl/sledjchisl.c
index 5d14eb1..06c6187 100644
--- a/src/sledjchisl/sledjchisl.c
+++ b/src/sledjchisl/sledjchisl.c
@@ -2811,37 +2811,49 @@ static void setToken_n_munchie(reqData *Rd, boolean linky)
2811 cookie *ck = setCookie(Rd, "toke_n_munchie", shs->toke_n_munchie); 2811 cookie *ck = setCookie(Rd, "toke_n_munchie", shs->toke_n_munchie);
2812 cookie *ckh = setCookie(Rd, "hashish", shs->hashish); 2812 cookie *ckh = setCookie(Rd, "hashish", shs->hashish);
2813 } 2813 }
2814 char *tnm = xmprintf( "toke_n_munchie = \n" 2814 char *tnm0 = xmprintf( "toke_n_munchie = \n"
2815 "{\n" 2815 "{\n"
2816 " ['IP']='%s',\n" 2816 " ['IP']='%s',\n"
2817 " ['name']='%s',\n"
2818 " ['level']='%s',\n"
2819 " ['passwordSalt']='%s',\n"
2820 " ['passwordHash']='%s',\n"
2821 " ['salt']='%s',\n" 2817 " ['salt']='%s',\n"
2822 " ['seshID']='%s',\n" 2818 " ['seshID']='%s',\n"
2823 " ['UUID']='%s',\n" 2819 " ['linky-hashishy']='%s',\n",
2824 " ['linky-hashish']='%s',\n"
2825 "}\n"
2826 "return toke_n_munchie\n",
2827 getStrH(Rd->headers, "REMOTE_ADDR"), 2820 getStrH(Rd->headers, "REMOTE_ADDR"),
2828 getStrH(Rd->stuff, "name"),
2829 getStrH(Rd->stuff, "level"),
2830 getStrH(Rd->stuff, "passwordSalt"),
2831 getStrH(Rd->stuff, "passwordHash"),
2832 shs->salt, 2821 shs->salt,
2833 shs->seshID, 2822 shs->seshID,
2834 getStrH(Rd->stuff, "UUID"),
2835 link 2823 link
2836 ); 2824 );
2825 char *tnm1 = xmprintf("}\n"
2826 "return toke_n_munchie\n");
2837 int fd = notstdio(xcreate_stdio(file, O_CREAT | O_WRONLY | O_TRUNC | O_CLOEXEC, S_IRUSR | S_IWUSR)); 2827 int fd = notstdio(xcreate_stdio(file, O_CREAT | O_WRONLY | O_TRUNC | O_CLOEXEC, S_IRUSR | S_IWUSR));
2838 size_t l = strlen(tnm); 2828 size_t l = strlen(tnm0);
2839 2829
2840 if (s) 2830 if (s)
2841 I("Creating session %s.", file); 2831 I("Creating session %s.", file);
2842 else 2832 else
2843 C("Updating session %s.", file); // I don't think updates can occur now. 2833 C("Updating session %s.", file); // I don't think updates can occur now.
2844 if (l != writeall(fd, tnm, l)) 2834 if (l != writeall(fd, tnm0, l))
2835 {
2836 perror_msg("Writing %s", file);
2837 freeSesh(Rd, linky, TRUE);
2838 }
2839
2840 qhashtbl_obj_t obj;
2841
2842 memset((void*)&obj, 0, sizeof(obj));
2843 Rd->stuff->lock(Rd->stuff);
2844 while(Rd->stuff->getnext(Rd->stuff, &obj, false) == true)
2845 {
2846t("stuff %s = %s", obj.name, (char *) obj.data);
2847 if (dprintf(fd, " ['%s'] = '%s',\n", obj.name, (char *) obj.data) < 0)
2848 {
2849 perror_msg("Writing %s", file);
2850 freeSesh(Rd, linky, TRUE);
2851 }
2852 }
2853 Rd->stuff->unlock(Rd->stuff);
2854
2855 l = strlen(tnm1);
2856 if (l != writeall(fd, tnm1, l))
2845 { 2857 {
2846 perror_msg("Writing %s", file); 2858 perror_msg("Writing %s", file);
2847 freeSesh(Rd, linky, TRUE); 2859 freeSesh(Rd, linky, TRUE);