mirror of https://gogs.blitter.com/RLabs/xs
				
				
				
			host lookup for goutmp (wtmp) tracking
This commit is contained in:
		
							parent
							
								
									11fad87345
								
							
						
					
					
						commit
						889203c9de
					
				| 
						 | 
					@ -292,24 +292,29 @@ func main() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if rec.op[0] == 'c' {
 | 
									if rec.op[0] == 'c' {
 | 
				
			||||||
					// Non-interactive command
 | 
										// Non-interactive command
 | 
				
			||||||
					log.Println("[Running command]")
 | 
										addr := c.RemoteAddr()
 | 
				
			||||||
 | 
										hname := goutmp.GetHost(addr.String())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										log.Println("[Running command for [%s@%s]]\n", rec.who, hname)
 | 
				
			||||||
					runShellAs(string(rec.who), string(rec.cmd), false, conn, chaffEnabled)
 | 
										runShellAs(string(rec.who), string(rec.cmd), false, conn, chaffEnabled)
 | 
				
			||||||
					// Returned hopefully via an EOF or exit/logout;
 | 
										// Returned hopefully via an EOF or exit/logout;
 | 
				
			||||||
					// Clear current op so user can enter next, or EOF
 | 
										// Clear current op so user can enter next, or EOF
 | 
				
			||||||
					rec.op[0] = 0
 | 
										rec.op[0] = 0
 | 
				
			||||||
					log.Println("[Command complete]")
 | 
										log.Printf("[Command completed for [%s@%s]\n", rec.who, hname)
 | 
				
			||||||
				} else if rec.op[0] == 's' {
 | 
									} else if rec.op[0] == 's' {
 | 
				
			||||||
					log.Println("[Running shell]")
 | 
										// Interactive session
 | 
				
			||||||
					addr := c.RemoteAddr()
 | 
										addr := c.RemoteAddr()
 | 
				
			||||||
 | 
										hname := goutmp.GetHost(addr.String())
 | 
				
			||||||
 | 
										log.Println("[Running shell for [%s@%s]]\n", rec.who, hname)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					utmpx := goutmp.Put_utmp(string(rec.who), addr.String())
 | 
										utmpx := goutmp.Put_utmp(string(rec.who), hname)
 | 
				
			||||||
					defer func() { goutmp.Unput_utmp(utmpx) }()
 | 
										defer func() { goutmp.Unput_utmp(utmpx) }()
 | 
				
			||||||
					goutmp.Put_lastlog_entry("hkexsh", string(rec.who), addr.String())
 | 
										goutmp.Put_lastlog_entry("hkexsh", string(rec.who), hname)
 | 
				
			||||||
					runShellAs(string(rec.who), string(rec.cmd), true, conn, chaffEnabled)
 | 
										runShellAs(string(rec.who), string(rec.cmd), true, conn, chaffEnabled)
 | 
				
			||||||
					// Returned hopefully via an EOF or exit/logout;
 | 
										// Returned hopefully via an EOF or exit/logout;
 | 
				
			||||||
					// Clear current op so user can enter next, or EOF
 | 
										// Clear current op so user can enter next, or EOF
 | 
				
			||||||
					rec.op[0] = 0
 | 
										rec.op[0] = 0
 | 
				
			||||||
					log.Println("[Exiting shell]")
 | 
										log.Printf("[Exiting shell for [%s@%s]]\n", rec.who, hname)
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					log.Println("[Bad cmdSpec]")
 | 
										log.Println("[Bad cmdSpec]")
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue