cs avoidance
authorRon Minnich <rminnich@gmail.com>
Thu, 6 Nov 2014 20:53:25 +0000 (12:53 -0800)
committerRon Minnich <rminnich@gmail.com>
Thu, 6 Nov 2014 20:53:25 +0000 (12:53 -0800)
if it's a numeric address don't bother with CS.

Does it work? I don't know.

Signed-off-by: Ron Minnich <rminnich@gmail.com>
scripts/QRUN [new file with mode: 0644]
user/iplib/dial.c

diff --git a/scripts/QRUN b/scripts/QRUN
new file mode 100644 (file)
index 0000000..c713082
--- /dev/null
@@ -0,0 +1,25 @@
+#sudo qemu-system-x86_64 -s -cpu core2duo,+hypervisor,+vmx -smp 3 -m 2048 -nographic  \
+sudo qemu-system-x86_64 -s -cpu phenom -smp 8 -m 2048 -nographic  \
+--machine pc \
+-net nic,model=rtl8139 \
+-net user,hostfwd=tcp::5555-:23 \
+-kernel obj/kern/akaros-kernel $*
+
+#-kernel mnt/hdd/kernel $*
+
+# if you need the dump.
+#-net dump,file=/tmp/vm0.pcap \
+
+# from Kevin, how to run without the hdd
+#sudo qemu-system-x86_64 -s -enable-kvm  -net nic,model=e1000 -net user,hostfwd=tcp::5555-:23 -monitor /dev/pts/29 -cpu phenom -smp 8 -m 4096 -kernel obj/kern/akaros-kernel -nographic
+
+#sudo qemu-system-x86_64 -s -cpu phenom -smp 8 -m 4096 -nographic  \
+#-net nic,model=rtl8139 mnt/hdd268mb.img \
+#-net user,hostfwd=tcp::5555-:23 \
+#-net dump,file=/tmp/vm0.pcap \
+#-kernel mnt/hdd/kernel $*
+#
+#sudo qemu-system-x86_64 -s -cpu phenom -smp 8 -m 6024 -nographic  -net nic,model=rtl8139 mnt/hdd268mb.img -netdev user,id=mynet0 -kernel mnt/hdd/kernel $*
+#sudo qemu-system-x86_64 -s -cpu phenom -smp 8 -m 6024 -nographic  -net nic,model=rtl8139 mnt/hdd268mb.img -netdev user,id=mynet0,net=192.168.76.0/24,dhcpstart=192.168.76.9 -kernel mnt/hdd/kernel $*
+
+# -S -s -gdb tcp::1234
index 12b33f9..6aae9d9 100755 (executable)
@@ -16,6 +16,7 @@
 
 #define NAMELEN 28
 #define NETPATHLEN 40
+static int isdigit(int c) {return ((c >= '0' && c <= '9'));}
 
 static int
 call(char *clone, char *dest, int *cfdp, char *dir, char *local)
@@ -96,6 +97,19 @@ dial(char *dest, char *local, char *dir, int *cfdp)
                strcpy(netdir, "/net");
  
 
+       // special case because we are so special.
+       // if the first char of the address is a digit,
+       // and the first char of the port is a digit,
+       // skip all this cs stuff.
+       p = strchr(net, '!');
+       if (p && isdigit(p[1])) {
+               char *q = strchr(&p[1], '!');
+               if (q && isdigit(q[1])) {
+                       *p++ = 0;
+                       sprintf(clone, "%s/%s/clone", netdir, net);
+                       return call(clone, p, cfdp, dir, local);
+               }
+       }
        /* call the connection server */
        sprintf(csname, "%s/cs", netdir);
        fd = open(csname, O_RDWR);