net: relocate paths to helpers and scripts
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		| @@ -209,8 +209,8 @@ void netdev_add(QemuOpts *opts, Error **errp); | ||||
| int net_hub_id_for_client(NetClientState *nc, int *id); | ||||
| NetClientState *net_hub_port_find(int hub_id); | ||||
|  | ||||
| #define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" | ||||
| #define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" | ||||
| #define DEFAULT_NETWORK_SCRIPT CONFIG_SYSCONFDIR "/qemu-ifup" | ||||
| #define DEFAULT_NETWORK_DOWN_SCRIPT CONFIG_SYSCONFDIR "/qemu-ifdown" | ||||
| #define DEFAULT_BRIDGE_HELPER CONFIG_QEMU_HELPERDIR "/qemu-bridge-helper" | ||||
| #define DEFAULT_BRIDGE_INTERFACE "br0" | ||||
|  | ||||
|   | ||||
							
								
								
									
										26
									
								
								net/tap.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								net/tap.c
									
									
									
									
									
								
							| @@ -478,6 +478,7 @@ static int net_bridge_run_helper(const char *helper, const char *bridge, | ||||
|                                  Error **errp) | ||||
| { | ||||
|     sigset_t oldmask, mask; | ||||
|     g_autofree char *default_helper = NULL; | ||||
|     int pid, status; | ||||
|     char *args[5]; | ||||
|     char **parg; | ||||
| @@ -487,6 +488,10 @@ static int net_bridge_run_helper(const char *helper, const char *bridge, | ||||
|     sigaddset(&mask, SIGCHLD); | ||||
|     sigprocmask(SIG_BLOCK, &mask, &oldmask); | ||||
|  | ||||
|     if (!helper) { | ||||
|         helper = default_helper = get_relocated_path(DEFAULT_BRIDGE_HELPER); | ||||
|     } | ||||
|  | ||||
|     if (socketpair(PF_UNIX, SOCK_STREAM, 0, sv) == -1) { | ||||
|         error_setg_errno(errp, errno, "socketpair() failed"); | ||||
|         return -1; | ||||
| @@ -588,8 +593,7 @@ int net_init_bridge(const Netdev *netdev, const char *name, | ||||
|  | ||||
|     assert(netdev->type == NET_CLIENT_DRIVER_BRIDGE); | ||||
|     bridge = &netdev->u.bridge; | ||||
|  | ||||
|     helper = bridge->has_helper ? bridge->helper : DEFAULT_BRIDGE_HELPER; | ||||
|     helper = bridge->has_helper ? bridge->helper : NULL; | ||||
|     br     = bridge->has_br     ? bridge->br     : DEFAULT_BRIDGE_INTERFACE; | ||||
|  | ||||
|     fd = net_bridge_run_helper(helper, br, errp); | ||||
| @@ -773,8 +777,8 @@ int net_init_tap(const Netdev *netdev, const char *name, | ||||
|     const NetdevTapOptions *tap; | ||||
|     int fd, vnet_hdr = 0, i = 0, queues; | ||||
|     /* for the no-fd, no-helper case */ | ||||
|     const char *script = NULL; /* suppress wrong "uninit'd use" gcc warning */ | ||||
|     const char *downscript = NULL; | ||||
|     const char *script; | ||||
|     const char *downscript; | ||||
|     Error *err = NULL; | ||||
|     const char *vhostfdname; | ||||
|     char ifname[128]; | ||||
| @@ -784,6 +788,8 @@ int net_init_tap(const Netdev *netdev, const char *name, | ||||
|     tap = &netdev->u.tap; | ||||
|     queues = tap->has_queues ? tap->queues : 1; | ||||
|     vhostfdname = tap->has_vhostfd ? tap->vhostfd : NULL; | ||||
|     script = tap->has_script ? tap->script : NULL; | ||||
|     downscript = tap->has_downscript ? tap->downscript : NULL; | ||||
|  | ||||
|     /* QEMU hubs do not support multiqueue tap, in this case peer is set. | ||||
|      * For -netdev, peer is always NULL. */ | ||||
| @@ -934,13 +940,19 @@ free_fail: | ||||
|             return -1; | ||||
|         } | ||||
|     } else { | ||||
|         g_autofree char *default_script = NULL; | ||||
|         g_autofree char *default_downscript = NULL; | ||||
|         if (tap->has_vhostfds) { | ||||
|             error_setg(errp, "vhostfds= is invalid if fds= wasn't specified"); | ||||
|             return -1; | ||||
|         } | ||||
|         script = tap->has_script ? tap->script : DEFAULT_NETWORK_SCRIPT; | ||||
|         downscript = tap->has_downscript ? tap->downscript : | ||||
|             DEFAULT_NETWORK_DOWN_SCRIPT; | ||||
|  | ||||
|         if (!script) { | ||||
|             script = default_script = get_relocated_path(DEFAULT_NETWORK_SCRIPT); | ||||
|         } | ||||
|         if (!downscript) { | ||||
|             downscript = default_downscript = get_relocated_path(DEFAULT_NETWORK_SCRIPT); | ||||
|         } | ||||
|  | ||||
|         if (tap->has_ifname) { | ||||
|             pstrcpy(ifname, sizeof ifname, tap->ifname); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user