vweb: 404
							parent
							
								
									c145a5cd7d
								
							
						
					
					
						commit
						f81562ee7e
					
				|  | @ -207,5 +207,11 @@ fn (p mut Parser) comptime_method_call(typ Type) { | |||
| 	}  | ||||
| 	p.check(.lpar)  | ||||
| 	p.check(.rpar)  | ||||
| 	if p.tok == .key_orelse { | ||||
| 		p.check(.key_orelse)  | ||||
| 		p.genln('else {')  | ||||
| 		p.check(.lcbr) | ||||
| 		p.statements()  | ||||
| 	}  | ||||
| }  | ||||
| 
 | ||||
|  |  | |||
|  | @ -45,6 +45,10 @@ $h | |||
| ')  | ||||
| }  | ||||
| 
 | ||||
| pub fn (ctx Context) not_found(s string) { | ||||
|         ctx.conn.write('HTTP/1.1 404 Not Found')  | ||||
| }  | ||||
| 
 | ||||
| pub fn (ctx mut Context) set_cookie(key, val string) { | ||||
| 	ctx.set_header('Set-Cookie', '$key=$val')  | ||||
| }  | ||||
|  | @ -117,6 +121,12 @@ pub fn run<T>(port int) { | |||
| 		if action.contains('?') { | ||||
| 			action = action.all_before('?')  | ||||
| 		}  | ||||
| 		if action == 'favicon.ico' { | ||||
| 			println('favicon.ico')  | ||||
| 			conn.write('HTTP/1.1 404 Not Found')  | ||||
| 			conn.close() | ||||
| 			continue  | ||||
| 		}  | ||||
| 		if action == '' { | ||||
| 			action = 'index'  | ||||
| 		}  | ||||
|  | @ -144,7 +154,8 @@ pub fn run<T>(port int) { | |||
| 		println('vweb action = "$action"')  | ||||
| 		if vals.len < 2 { | ||||
| 			println('no vals for http')  | ||||
| 			return  | ||||
| 			conn.close() | ||||
| 			continue  | ||||
| 		}  | ||||
| 
 | ||||
| 		// Serve a static file if it's one 
 | ||||
|  | @ -154,7 +165,13 @@ pub fn run<T>(port int) { | |||
| 		// } 
 | ||||
| 
 | ||||
| 		// Call the right action 
 | ||||
| 		app.$action()  | ||||
| 		app.$action() or {  | ||||
| 			conn.write('HTTP/1.1 404 Not Found  | ||||
| Content-Type: text/plain  | ||||
| 
 | ||||
| 404 not found  | ||||
| ')  | ||||
| 		}  | ||||
| 		conn.close() | ||||
| 	} | ||||
| }  | ||||
|  | @ -170,7 +187,9 @@ fn (ctx mut Context) parse_form(s string) { | |||
| 		str_form = str_form.replace('+', ' ') | ||||
| 		words := str_form.split('&') | ||||
| 		for word in words { | ||||
| 			println('parse form keyval="$word"')  | ||||
| 			keyval := word.split('=') | ||||
| 			if keyval.len != 2 { continue }  | ||||
| 			key := keyval[0] | ||||
| 			val := keyval[1] | ||||
| 			//println('http form $key => $val') 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue