X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=common%2Fhttp.c;h=9c34a3b02d329f2ea9496e9d485eec0778ee874d;hb=473597657df72ce78026ab1fe487219fa349e8d2;hp=923e6d68f6639f5ae747fdc15be99d392ad3d3e9;hpb=f4663439b18d84214325e4d3ba50b79c029b79e9;p=doldaconnect.git diff --git a/common/http.c b/common/http.c index 923e6d6..9c34a3b 100644 --- a/common/http.c +++ b/common/http.c @@ -38,6 +38,7 @@ void freeurl(struct hturlinfo *ui) free(ui->host); free(ui->path); free(ui->query); + free(ui->fragment); free(ui); } @@ -70,7 +71,15 @@ struct hturlinfo *parseurl(char *url) if(p2 == NULL) { ui->query = sstrdup(""); } else { - ui->query = sstrdup(p2); + p = p2; + if((p2 = strchr(p, '#')) != NULL) + *(p2++) = 0; + ui->query = sstrdup(p); + } + if(p2 == NULL) { + ui->fragment = sstrdup(""); + } else { + ui->fragment = sstrdup(p2); } return(ui); } @@ -84,6 +93,7 @@ static struct hturlinfo *dupurl(struct hturlinfo *ui) new->port = ui->port; new->path = sstrdup(ui->path); new->query = sstrdup(ui->query); + new->fragment = sstrdup(ui->fragment); return(new); }