summary refs log tree commit diff
path: root/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch')
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch b/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch
new file mode 100644
index 000000000000..6d6c7831d15e
--- /dev/null
+++ b/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch
@@ -0,0 +1,33 @@
+Honour $TMPDIR for the qemu-smb temporary directory.
+
+diff -rc -x '*~' qemu-kvm-0.12.2-orig/net/slirp.c qemu-kvm-0.12.2/net/slirp.c
+*** qemu-kvm-0.12.2-orig/net/slirp.c	2010-02-01 19:05:24.000000000 +0100
+--- qemu-kvm-0.12.2/net/slirp.c	2010-02-01 19:05:54.000000000 +0100
+***************
+*** 476,486 ****
+                       struct in_addr vserver_addr)
+  {
+      static int instance;
+!     char smb_conf[128];
+!     char smb_cmdline[128];
+      FILE *f;
+  
+!     snprintf(s->smb_dir, sizeof(s->smb_dir), "/tmp/qemu-smb.%ld-%d",
+               (long)getpid(), instance++);
+      if (mkdir(s->smb_dir, 0700) < 0) {
+          qemu_error("could not create samba server dir '%s'\n", s->smb_dir);
+--- 476,489 ----
+                       struct in_addr vserver_addr)
+  {
+      static int instance;
+!     char smb_conf[1024];
+!     char smb_cmdline[1024];
+      FILE *f;
+  
+!     char *tmpdir = getenv("TMPDIR");
+! 
+!     snprintf(s->smb_dir, sizeof(s->smb_dir), "%s/qemu-smb.%ld-%d",
+!              tmpdir ? tmpdir : "/tmp",
+               (long)getpid(), instance++);
+      if (mkdir(s->smb_dir, 0700) < 0) {
+          qemu_error("could not create samba server dir '%s'\n", s->smb_dir);