system/dbus: remove redundant proxy pairs
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Test / Create distribution (push) Successful in 34s
				
			
		
			
				
	
				Test / Sandbox (push) Successful in 2m10s
				
			
		
			
				
	
				Test / Hakurei (push) Successful in 3m16s
				
			
		
			
				
	
				Test / Hpkg (push) Successful in 4m5s
				
			
		
			
				
	
				Test / Sandbox (race detector) (push) Successful in 4m30s
				
			
		
			
				
	
				Test / Hakurei (race detector) (push) Successful in 5m16s
				
			
		
			
				
	
				Test / Flake checks (push) Successful in 1m40s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Test / Create distribution (push) Successful in 34s
				
			Test / Sandbox (push) Successful in 2m10s
				
			Test / Hakurei (push) Successful in 3m16s
				
			Test / Hpkg (push) Successful in 4m5s
				
			Test / Sandbox (race detector) (push) Successful in 4m30s
				
			Test / Hakurei (race detector) (push) Successful in 5m16s
				
			Test / Flake checks (push) Successful in 1m40s
				
			This is left over from before dbus.Final. Remove them now as they serve no purpose. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
		
							parent
							
								
									e81a45e849
								
							
						
					
					
						commit
						197fa65b8f
					
				| @ -6,10 +6,12 @@ import ( | |||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"log" | 	"log" | ||||||
|  | 	"reflect" | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"sync" | 	"sync" | ||||||
| 	"syscall" | 	"syscall" | ||||||
| 
 | 
 | ||||||
|  | 	"hakurei.app/container" | ||||||
| 	"hakurei.app/system/dbus" | 	"hakurei.app/system/dbus" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| @ -39,10 +41,11 @@ func (sys *I) ProxyDBus(session, system *dbus.Config, sessionPath, systemPath st | |||||||
| 	// system bus is optional | 	// system bus is optional | ||||||
| 	d.system = system != nil | 	d.system = system != nil | ||||||
| 
 | 
 | ||||||
| 	d.sessionBus[0], d.systemBus[0] = dbus.Address() | 	var sessionBus, systemBus dbus.ProxyPair | ||||||
| 	d.sessionBus[1], d.systemBus[1] = sessionPath, systemPath | 	sessionBus[0], systemBus[0] = dbus.Address() | ||||||
|  | 	sessionBus[1], systemBus[1] = sessionPath, systemPath | ||||||
| 	d.out = &linePrefixWriter{println: log.Println, prefix: "(dbus) ", msg: new(strings.Builder)} | 	d.out = &linePrefixWriter{println: log.Println, prefix: "(dbus) ", msg: new(strings.Builder)} | ||||||
| 	if final, err := dbus.Finalise(d.sessionBus, d.systemBus, session, system); err != nil { | 	if final, err := dbus.Finalise(sessionBus, systemBus, session, system); err != nil { | ||||||
| 		if errors.Is(err, syscall.EINVAL) { | 		if errors.Is(err, syscall.EINVAL) { | ||||||
| 			return nil, newOpErrorMessage("dbus", err, | 			return nil, newOpErrorMessage("dbus", err, | ||||||
| 				"message bus proxy configuration contains NUL byte", false) | 				"message bus proxy configuration contains NUL byte", false) | ||||||
| @ -51,9 +54,9 @@ func (sys *I) ProxyDBus(session, system *dbus.Config, sessionPath, systemPath st | |||||||
| 			fmt.Sprintf("cannot finalise message bus proxy: %v", err), false) | 			fmt.Sprintf("cannot finalise message bus proxy: %v", err), false) | ||||||
| 	} else { | 	} else { | ||||||
| 		if msg.IsVerbose() { | 		if msg.IsVerbose() { | ||||||
| 			msg.Verbose("session bus proxy:", session.Args(d.sessionBus)) | 			msg.Verbose("session bus proxy:", session.Args(sessionBus)) | ||||||
| 			if system != nil { | 			if system != nil { | ||||||
| 				msg.Verbose("system bus proxy:", system.Args(d.systemBus)) | 				msg.Verbose("system bus proxy:", system.Args(systemBus)) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// this calls the argsWt String method | 			// this calls the argsWt String method | ||||||
| @ -76,16 +79,14 @@ type DBusProxyOp struct { | |||||||
| 	out   *linePrefixWriter | 	out   *linePrefixWriter | ||||||
| 	// whether system bus proxy is enabled | 	// whether system bus proxy is enabled | ||||||
| 	system bool | 	system bool | ||||||
| 
 |  | ||||||
| 	sessionBus, systemBus dbus.ProxyPair |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (d *DBusProxyOp) Type() Enablement { return Process } | func (d *DBusProxyOp) Type() Enablement { return Process } | ||||||
| 
 | 
 | ||||||
| func (d *DBusProxyOp) apply(sys *I) error { | func (d *DBusProxyOp) apply(sys *I) error { | ||||||
| 	msg.Verbosef("session bus proxy on %q for upstream %q", d.sessionBus[1], d.sessionBus[0]) | 	msg.Verbosef("session bus proxy on %q for upstream %q", d.final.Session[1], d.final.Session[0]) | ||||||
| 	if d.system { | 	if d.system { | ||||||
| 		msg.Verbosef("system bus proxy on %q for upstream %q", d.systemBus[1], d.systemBus[0]) | 		msg.Verbosef("system bus proxy on %q for upstream %q", d.final.System[1], d.final.System[0]) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	d.proxy = dbus.New(sys.ctx, d.final, d.out) | 	d.proxy = dbus.New(sys.ctx, d.final, d.out) | ||||||
| @ -115,12 +116,16 @@ func (d *DBusProxyOp) revert(*I, *Criteria) error { | |||||||
| func (d *DBusProxyOp) Is(o Op) bool { | func (d *DBusProxyOp) Is(o Op) bool { | ||||||
| 	target, ok := o.(*DBusProxyOp) | 	target, ok := o.(*DBusProxyOp) | ||||||
| 	return ok && d != nil && target != nil && | 	return ok && d != nil && target != nil && | ||||||
| 		((d.proxy == nil && target.proxy == nil) || | 		d.system == target.system && | ||||||
| 			(d.proxy != nil && target.proxy != nil && | 		d.final != nil && target.final != nil && | ||||||
| 				d.proxy.String() == target.proxy.String())) | 		d.final.Session == target.final.Session && | ||||||
|  | 		d.final.System == target.final.System && | ||||||
|  | 		dbus.EqualAddrEntries(d.final.SessionUpstream, target.final.SessionUpstream) && | ||||||
|  | 		dbus.EqualAddrEntries(d.final.SystemUpstream, target.final.SystemUpstream) && | ||||||
|  | 		reflect.DeepEqual(d.final.WriterTo, target.final.WriterTo) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (d *DBusProxyOp) Path() string   { return "(dbus proxy)" } | func (d *DBusProxyOp) Path() string   { return container.Nonexistent } | ||||||
| func (d *DBusProxyOp) String() string { return d.proxy.String() } | func (d *DBusProxyOp) String() string { return d.proxy.String() } | ||||||
| 
 | 
 | ||||||
| // linePrefixWriter calls println with a prefix for every line written. | // linePrefixWriter calls println with a prefix for every line written. | ||||||
|  | |||||||
| @ -13,6 +13,13 @@ type AddrEntry struct { | |||||||
| 	Values [][2]string `json:"values"` | 	Values [][2]string `json:"values"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // EqualAddrEntries returns whether two slices of [AddrEntry] are equal. | ||||||
|  | func EqualAddrEntries(entries, target []AddrEntry) bool { | ||||||
|  | 	return slices.EqualFunc(entries, target, func(a AddrEntry, b AddrEntry) bool { | ||||||
|  | 		return a.Method == b.Method && slices.Equal(a.Values, b.Values) | ||||||
|  | 	}) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Parse parses D-Bus address according to | // Parse parses D-Bus address according to | ||||||
| // https://dbus.freedesktop.org/doc/dbus-specification.html#addresses | // https://dbus.freedesktop.org/doc/dbus-specification.html#addresses | ||||||
| func Parse(addr []byte) ([]AddrEntry, error) { | func Parse(addr []byte) ([]AddrEntry, error) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user