projects
/
citadel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
adc9f30
)
* more fixes, offset in URLS is different now, since we strip the command.
author
Wilfried Göesgens
<willi@citadel.org>
Sun, 17 May 2009 15:12:55 +0000
(15:12 +0000)
committer
Wilfried Göesgens
<willi@citadel.org>
Sun, 17 May 2009 15:12:55 +0000
(15:12 +0000)
webcit/context_loop.c
patch
|
blob
|
history
webcit/downloads.c
patch
|
blob
|
history
webcit/messages.c
patch
|
blob
|
history
webcit/paramhandling.c
patch
|
blob
|
history
webcit/roomops.c
patch
|
blob
|
history
webcit/vcard_edit.c
patch
|
blob
|
history
webcit/webcit.c
patch
|
blob
|
history
webcit/webcit.h
patch
|
blob
|
history
diff --git
a/webcit/context_loop.c
b/webcit/context_loop.c
index 1d1cbb821a39640173b2c9ddf4fcf287a35fe353..1f38768d1786d7bc8e047413934481bc6225b321 100644
(file)
--- a/
webcit/context_loop.c
+++ b/
webcit/context_loop.c
@@
-270,7
+270,7
@@
int ReadHttpSubject(ParsedHttpHdrs *Hdr, StrBuf *Line, StrBuf *Buf)
Args,
StrLength(Hdr->ReqLine) -
(Args - ChrPtr(Hdr->ReqLine)));
Args,
StrLength(Hdr->ReqLine) -
(Args - ChrPtr(Hdr->ReqLine)));
- StrBufCutAt(Hdr->ReqLine, 0, Args);
+ StrBufCutAt(Hdr->ReqLine, 0, Args
- 1
);
} /* don't parse them yet, maybe we don't even care... */
/* now lookup what we are going to do with this... */
} /* don't parse them yet, maybe we don't even care... */
/* now lookup what we are going to do with this... */
@@
-441,13
+441,6
@@
void context_loop(int *sock)
/* dbg_PrintHash(HTTPHeaders, nix, NULL); */
/* dbg_PrintHash(HTTPHeaders, nix, NULL); */
-
-///HttpHeaderHandler
-
-
-
-
-
/*
* If the request is prefixed by "/webcit" then chop that off. This
* allows a front end web server to forward all /webcit requests to us
/*
* If the request is prefixed by "/webcit" then chop that off. This
* allows a front end web server to forward all /webcit requests to us
diff --git
a/webcit/downloads.c
b/webcit/downloads.c
index b0e7cace3a431e099ff085248465ccfd38b5d1b3..c8970ef3a528b2651a1e956b13241809f54db907 100644
(file)
--- a/
webcit/downloads.c
+++ b/
webcit/downloads.c
@@
-249,7
+249,7
@@
void download_file(void)
int force_download = 1;
Buf = NewStrBuf();
int force_download = 1;
Buf = NewStrBuf();
- StrBufExtract_token(Buf, WCC->Hdr->ReqLine,
2
, '/');
+ StrBufExtract_token(Buf, WCC->Hdr->ReqLine,
0
, '/');
StrBufUnescape(Buf, 1);
serv_printf("OPEN %s", ChrPtr(Buf));
StrBuf_ServGetln(Buf);
StrBufUnescape(Buf, 1);
serv_printf("OPEN %s", ChrPtr(Buf));
StrBuf_ServGetln(Buf);
diff --git
a/webcit/messages.c
b/webcit/messages.c
index 0a9f2c746b332965191e670047f4f336ddb74e81..055fae22cbc4ae478dd6014da4593279727a048a 100644
(file)
--- a/
webcit/messages.c
+++ b/
webcit/messages.c
@@
-426,7
+426,7
@@
void embed_message(void) {
const StrBuf *Tmpl;
StrBuf *CmdBuf = NULL;
const StrBuf *Tmpl;
StrBuf *CmdBuf = NULL;
- msgnum = StrBufExtract_long(WCC->Hdr->ReqLine,
2
, '/');
+ msgnum = StrBufExtract_long(WCC->Hdr->ReqLine,
0
, '/');
switch (WCC->Hdr->eReqType)
{
case eGET:
switch (WCC->Hdr->eReqType)
{
case eGET:
@@
-466,7
+466,7
@@
void print_message(void) {
long msgnum = 0L;
const StrBuf *Mime;
long msgnum = 0L;
const StrBuf *Mime;
- msgnum = StrBufExtract_long(WC->Hdr->ReqLine,
2
, '/');
+ msgnum = StrBufExtract_long(WC->Hdr->ReqLine,
0
, '/');
output_headers(0, 0, 0, 0, 0, 0);
hprintf("Content-type: text/html\r\n"
output_headers(0, 0, 0, 0, 0, 0);
hprintf("Content-type: text/html\r\n"
@@
-490,7
+490,7
@@
void mobile_message_view(void)
long msgnum = 0L;
const StrBuf *Mime;
long msgnum = 0L;
const StrBuf *Mime;
- msgnum = StrBufExtract_long(WC->Hdr->ReqLine,
2
, '/');
+ msgnum = StrBufExtract_long(WC->Hdr->ReqLine,
0
, '/');
output_headers(1, 0, 0, 0, 0, 1);
begin_burst();
do_template("msgcontrols", NULL);
output_headers(1, 0, 0, 0, 0, 1);
begin_burst();
do_template("msgcontrols", NULL);
@@
-507,7
+507,7
@@
void display_headers(void) {
long msgnum = 0L;
char buf[1024];
long msgnum = 0L;
char buf[1024];
- msgnum = StrBufExtract_long(WC->Hdr->ReqLine,
2
, '/');
+ msgnum = StrBufExtract_long(WC->Hdr->ReqLine,
0
, '/');
output_headers(0, 0, 0, 0, 0, 0);
hprintf("Content-type: text/plain\r\n"
output_headers(0, 0, 0, 0, 0, 0);
hprintf("Content-type: text/plain\r\n"
@@
-1738,8
+1738,8
@@
void mimepart(int force_download)
StrBuf *ContentType = NewStrBufPlain(HKEY("application/octet-stream"));
const char *CT;
StrBuf *ContentType = NewStrBufPlain(HKEY("application/octet-stream"));
const char *CT;
- msgnum = StrBufExtract_long(WCC->Hdr->ReqLine,
2
, '/');
- att = StrBufExtract_long(WCC->Hdr->ReqLine,
3
, '/');
+ msgnum = StrBufExtract_long(WCC->Hdr->ReqLine,
0
, '/');
+ att = StrBufExtract_long(WCC->Hdr->ReqLine,
1
, '/');
Buf = NewStrBuf();
serv_printf("OPNA %ld|%ld", msgnum, att);
Buf = NewStrBuf();
serv_printf("OPNA %ld|%ld", msgnum, att);
@@
-1758,7
+1758,7
@@
void mimepart(int force_download)
if (!force_download) {
if (!strcasecmp(ChrPtr(ContentType), "application/octet-stream")) {
if (!force_download) {
if (!strcasecmp(ChrPtr(ContentType), "application/octet-stream")) {
- StrBufExtract_token(Buf, WCC->Hdr->ReqLine,
4
, '/');
+ StrBufExtract_token(Buf, WCC->Hdr->ReqLine,
2
, '/');
CT = GuessMimeByFilename(SKEY(Buf));
}
if (!strcasecmp(ChrPtr(ContentType), "application/octet-stream")) {
CT = GuessMimeByFilename(SKEY(Buf));
}
if (!strcasecmp(ChrPtr(ContentType), "application/octet-stream")) {
@@
-1845,8
+1845,8
@@
void view_postpart(void) {
StrBuf *filename = NewStrBuf();
StrBuf *partnum = NewStrBuf();
StrBuf *filename = NewStrBuf();
StrBuf *partnum = NewStrBuf();
- StrBufExtract_token(partnum, WC->Hdr->ReqLine,
2
, '/');
- StrBufExtract_token(filename, WC->Hdr->ReqLine,
3
, '/');
+ StrBufExtract_token(partnum, WC->Hdr->ReqLine,
0
, '/');
+ StrBufExtract_token(filename, WC->Hdr->ReqLine,
1
, '/');
postpart(partnum, filename, 0);
postpart(partnum, filename, 0);
@@
-1858,8
+1858,8
@@
void download_postpart(void) {
StrBuf *filename = NewStrBuf();
StrBuf *partnum = NewStrBuf();
StrBuf *filename = NewStrBuf();
StrBuf *partnum = NewStrBuf();
- StrBufExtract_token(partnum, WC->Hdr->ReqLine,
2
, '/');
- StrBufExtract_token(filename, WC->Hdr->ReqLine,
3
, '/');
+ StrBufExtract_token(partnum, WC->Hdr->ReqLine,
0
, '/');
+ StrBufExtract_token(filename, WC->Hdr->ReqLine,
1
, '/');
postpart(partnum, filename, 1);
postpart(partnum, filename, 1);
diff --git
a/webcit/paramhandling.c
b/webcit/paramhandling.c
index 1f4fc85058711db5e1385e204333dee6af6e903f..bb7367fdbd3b6dd449bdf84548ee81c705c792b2 100644
(file)
--- a/
webcit/paramhandling.c
+++ b/
webcit/paramhandling.c
@@
-394,28
+394,30
@@
StrEscPuts(WC->UrlFragment1);
void tmplput_url_part(StrBuf *Target, WCTemplputParams *TP)
{
void tmplput_url_part(StrBuf *Target, WCTemplputParams *TP)
{
+ StrBuf *Name = NULL;
StrBuf *UrlBuf;
wcsession *WCC = WC;
if (WCC != NULL) {
if (TP->Tokens->Params[0]->lvalue == 0) {
UrlBuf = NewStrBuf();
StrBuf *UrlBuf;
wcsession *WCC = WC;
if (WCC != NULL) {
if (TP->Tokens->Params[0]->lvalue == 0) {
UrlBuf = NewStrBuf();
- StrBufExtract_token(UrlBuf, WCC->Hdr->ReqLine, 1, '/');
+ if (WCC->Hdr->Handler != NULL)
+ UrlBuf = Name = WCC->Hdr->Handler->Name;
}
else if (TP->Tokens->Params[0]->lvalue == 1) {
UrlBuf = NewStrBuf();
}
else if (TP->Tokens->Params[0]->lvalue == 1) {
UrlBuf = NewStrBuf();
- StrBufExtract_token(UrlBuf, WCC->Hdr->ReqLine,
2
, '/');
+ StrBufExtract_token(UrlBuf, WCC->Hdr->ReqLine,
0
, '/');
}
else {
UrlBuf = NewStrBuf();
}
else {
UrlBuf = NewStrBuf();
- StrBufExtract_token(UrlBuf, WCC->Hdr->ReqLine,
3
, '/');
+ StrBufExtract_token(UrlBuf, WCC->Hdr->ReqLine,
1
, '/');
}
if (UrlBuf == NULL) {
LogTemplateError(Target, "urlbuf", ERR_PARM1, TP, "not set.");
}
StrBufAppendTemplate(Target, TP, UrlBuf, 2);
}
if (UrlBuf == NULL) {
LogTemplateError(Target, "urlbuf", ERR_PARM1, TP, "not set.");
}
StrBufAppendTemplate(Target, TP, UrlBuf, 2);
- FreeStrBuf(&UrlBuf);
+
if (Name == NULL)
FreeStrBuf(&UrlBuf);
}
}
}
}
diff --git
a/webcit/roomops.c
b/webcit/roomops.c
index 41da33ceb40cdc1ef72e79bf4e350df61067fb30..39af8d669ad7cf6a7f2fc70f1b14d86ef419fc66 100644
(file)
--- a/
webcit/roomops.c
+++ b/
webcit/roomops.c
@@
-3313,7
+3313,7
@@
void set_floordiv_expanded(void) {
StrBuf *FloorDiv;
FloorDiv = NewStrBuf();
StrBuf *FloorDiv;
FloorDiv = NewStrBuf();
- StrBufExtract_token(FloorDiv, WCC->Hdr->ReqLine,
2
, '/');
+ StrBufExtract_token(FloorDiv, WCC->Hdr->ReqLine,
0
, '/');
set_preference("floordiv_expanded", FloorDiv, 1);
WCC->floordiv_expanded = FloorDiv;
}
set_preference("floordiv_expanded", FloorDiv, 1);
WCC->floordiv_expanded = FloorDiv;
}
diff --git
a/webcit/vcard_edit.c
b/webcit/vcard_edit.c
index 31780a6a136a2507be84e71501d558bb38df2482..e409125d6fc2d8266e2de8d949a3f06dc60ca17d 100644
(file)
--- a/
webcit/vcard_edit.c
+++ b/
webcit/vcard_edit.c
@@
-1218,7
+1218,7
@@
void display_vcard_photo_img(void)
const char *contentType;
wcsession *WCC = WC;
const char *contentType;
wcsession *WCC = WC;
- msgnum = StrBufExtract_long(WCC->Hdr->ReqLine,
2
, '/');
+ msgnum = StrBufExtract_long(WCC->Hdr->ReqLine,
0
, '/');
vcard = load_mimepart(msgnum,"1");
v = VCardLoad(vcard);
vcard = load_mimepart(msgnum,"1");
v = VCardLoad(vcard);
diff --git
a/webcit/webcit.c
b/webcit/webcit.c
index 51c7ac73da3eb85f4a4e796d93c272f4253c0dec..4908d44f436f7a93b270d50f5b98142ed98b05ae 100644
(file)
--- a/
webcit/webcit.c
+++ b/
webcit/webcit.c
@@
-22,6
+22,15
@@
static char *unset = "; expires=28-May-1971 18:10:00 GMT";
StrBuf *csslocal = NULL;
HashList *HandlerHash = NULL;
StrBuf *csslocal = NULL;
HashList *HandlerHash = NULL;
+
+void DeleteWebcitHandler(void *vHandler)
+{
+ WebcitHandler *Handler = (WebcitHandler*) vHandler;
+ FreeStrBuf(&Handler->Name);
+ free (Handler);
+
+}
+
void WebcitAddUrlHandler(const char * UrlString,
long UrlSLen,
WebcitHandlerFunc F,
void WebcitAddUrlHandler(const char * UrlString,
long UrlSLen,
WebcitHandlerFunc F,
@@
-31,7
+40,8
@@
void WebcitAddUrlHandler(const char * UrlString,
NewHandler = (WebcitHandler*) malloc(sizeof(WebcitHandler));
NewHandler->F = F;
NewHandler->Flags = Flags;
NewHandler = (WebcitHandler*) malloc(sizeof(WebcitHandler));
NewHandler->F = F;
NewHandler->Flags = Flags;
- Put(HandlerHash, UrlString, UrlSLen, NewHandler, NULL);
+ NewHandler->Name = NewStrBufPlain(UrlString, UrlSLen);
+ Put(HandlerHash, UrlString, UrlSLen, NewHandler, DeleteWebcitHandler);
}
}
diff --git
a/webcit/webcit.h
b/webcit/webcit.h
index 008ccfdaa9afb81f970d576879b7d4a66b643415..c9033cdf3f73ff7ba93e3d4135b1bc849cf2fb2a 100644
(file)
--- a/
webcit/webcit.h
+++ b/
webcit/webcit.h
@@
-364,6
+364,7
@@
typedef void (*WebcitHandlerFunc)(void);
typedef struct _WebcitHandler{
WebcitHandlerFunc F;
long Flags;
typedef struct _WebcitHandler{
WebcitHandlerFunc F;
long Flags;
+ StrBuf *Name;
} WebcitHandler;
void WebcitAddUrlHandler(const char * UrlString, long UrlSLen, WebcitHandlerFunc F, long Flags);
} WebcitHandler;
void WebcitAddUrlHandler(const char * UrlString, long UrlSLen, WebcitHandlerFunc F, long Flags);