Browse code

add wk_serve_Redirect()

Dario Rodriguez authored on 26/06/2014 16:55:55
Showing 2 changed files
... ...
@@ -430,6 +430,31 @@ The request was not understood or is not allowed by this server.\r\n\
430 430
         return(res);
431 431
 }
432 432
 
433
+int
434
+wk_serve_redirect(wk *paramweb, int connid, char *newlocation)
435
+{
436
+        int res;
437
+        int total;
438
+        _wk *web=(_wk *)paramweb;
439
+        wk_client *client;
440
+        if(web==NULL)
441
+                return(-1);
442
+        if((client=wk_clientget(web,connid))==NULL || newlocation==NULL || newlocation[0]=='\0')
443
+                return(-1);
444
+        total=0;
445
+        if((res=wk_writestr((wk *)web,connid,"HTTP/1.1 302 Found\r\nLocation: "))<0)
446
+                return(-1);
447
+        total+=res;
448
+        if((res=wk_writestr((wk *)web,connid,newlocation))<0)
449
+                return(-1);
450
+        total+=res;
451
+        if((res=wk_writestr((wk *)web,connid,"\r\n\r\n"))<0)
452
+                return(-1);
453
+        total+=res;
454
+        return(total);
455
+}
456
+
457
+
433 458
 int
434 459
 wk_writestr(wk *paramweb, int connid, const char *str)
435 460
 {
... ...
@@ -54,6 +54,7 @@ int wk_service(wk *web); /* To be called after sselelect_wait() but before ssele
54 54
 int wk_serve_buffer_as_file(wk *web, int connid, void *data, int datalen, const char *mime);
55 55
 int wk_serve_file(wk *web, int connid, char *filename, const char *mime);
56 56
 int wk_serve_error(wk *web, int connid, wk_error wkerror);
57
+int wk_serve_redirect(wk *web, int connid, char *newlocation);
57 58
 int wk_writestr(wk *web, int connid, const char *str);
58 59
 int wk_write(wk *web, int connid, const void *data, int datalen);
59 60
 int wk_close(wk *web, int connid);