Bugfix for redirection
This commit is contained in:
		
							
								
								
									
										11
									
								
								src/client.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/client.c
									
									
									
									
									
								
							| @@ -136,12 +136,17 @@ int client_request_handler(sock *client, int req_num) { | ||||
|  | ||||
|     ssize_t size = sizeof(buf0); | ||||
|     url_decode(req.uri, buf0, &size); | ||||
|     if (strcmp(uri.uri, buf0) != 0 || (strncmp(uri.uri, "/.well-known/", 13) != 0 && !client->enc)) { | ||||
|     int change_proto = strncmp(uri.uri, "/.well-known/", 13) != 0 && !client->enc; | ||||
|     if (strcmp(uri.uri, buf0) != 0 || change_proto) { | ||||
|         res.status = http_get_status(308); | ||||
|         size = sizeof(buf0); | ||||
|         encode_url(uri.uri, buf0, &size); | ||||
|         sprintf(buf1, "https://%s%s", host, buf0); | ||||
|         http_add_header_field(&res.hdr, "Location", buf1); | ||||
|         if (change_proto) { | ||||
|             sprintf(buf1, "https://%s%s", host, buf0); | ||||
|             http_add_header_field(&res.hdr, "Location", buf1); | ||||
|         } else { | ||||
|             http_add_header_field(&res.hdr, "Location", buf0); | ||||
|         } | ||||
|         goto respond; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -68,9 +68,11 @@ int uri_init(http_uri *uri, const char *webroot, const char *uri_str, int dir_mo | ||||
|     uri->path = malloc(size); | ||||
|     uri->pathinfo = malloc(size); | ||||
|     strcpy(uri->path, uri->req_path); | ||||
|     strcpy(uri->pathinfo, ""); | ||||
|     if (uri->path[strlen(uri->path) - 1] == '/') { | ||||
|         uri->path[strlen(uri->path) - 1] = 0; | ||||
|         strcpy(uri->pathinfo, "/"); | ||||
|     } else { | ||||
|         strcpy(uri->pathinfo, ""); | ||||
|     } | ||||
|     while (1) { | ||||
|         sprintf(buf0, "%s%s", uri->webroot, uri->path); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user