Modernize 9ns networking function declarations
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 21 Jul 2015 09:51:17 +0000 (05:51 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 24 Jul 2015 07:05:14 +0000 (03:05 -0400)
The naming collision between Plan 9 and BSD sockets needs to go.  If you
write a sockets program, but link in iplib, you'll get Plan 9's listen()
instead of the listen() in glibc.

When searching for a name, Ron came up with listen9 and accept9.  I love
it.  Hypothetical conversation:
"Is that the 9th version of the accept call?"
Nope.
"Is it because it has 9 arguments?"
Nope.
"Is it because you belong in the 9th layer of hell?"
Probably.

While we're changing the functions, I also added flags variables for
dial, announce, and listen.  I have uses for them later.

tests/get_html.c
tests/listen1.c
tests/listener.c
tests/ping.c
tests/srv.c
user/iplib/announce.c
user/iplib/dial.c
user/iplib/include/iplib.h

index a121428..ae002fa 100644 (file)
@@ -36,7 +36,7 @@ int main(int argc, char *argv[])
                perror("Addr string too long");
                exit(-1);
        }
-       dfd = dial(addr, 0, 0, 0);
+       dfd = dial9(addr, 0, 0, 0, 0);
        if (dfd < 0) {
                perror("Bad Data FD");
                exit(-1);
index b0ca2d4..05bf753 100644 (file)
@@ -79,14 +79,14 @@ main(int argc, char **argv)
 
        argc--, argv++;
        printf("listen started\n");
-       ctl = announce(argv[0], dir);
+       ctl = announce9(argv[0], dir, 0);
        if(ctl < 0){
                fprintf(stderr, "announce %s: %r", argv[0]);
                exit(1);
        }
 
        for(;;){
-               nctl = listen(dir, ndir);
+               nctl = listen9(dir, ndir, 0);
                if(nctl < 0){
                        fprintf(stderr, "listen %s: %r", argv[0]);
                        exit(1);
@@ -95,11 +95,11 @@ main(int argc, char **argv)
                //switch(rfork(RFFDG|RFPROC|RFNOWAIT|RFENVG|RFNAMEG|RFNOTEG)){
                switch(fork()){
                case -1:
-                       reject(nctl, ndir, "host overloaded");
+                       reject9(nctl, ndir, "host overloaded");
                        close(nctl);
                        continue;
                case 0:
-                       fd = accept(nctl, ndir);
+                       fd = accept9(nctl, ndir);
                        if(fd < 0){
                                fprintf(stderr, "accept %s: can't open  %s/data: %r\n",
                                        argv[0], ndir);
index d1e59c6..47828ec 100644 (file)
@@ -2,12 +2,7 @@
  * and to show how networking commands in plan 9 correspond to BSD sockets
  * (which are now a part of our sysdeps in glibc). 
  *
- * if you want to build the BSD sockets version, you need to change the #define
- * and link with just glibc instead of -liplib.  easiest way is to build
- * manually:
- *
- * $ x86_64-ros-gcc   -O2 -std=gnu99 -fno-stack-protector -fgnu89-inline -g 
- * -o obj/tests/listener tests/listener.c -lpthread -lbenchutil -lm
+ * if you want to build the BSD sockets version, you need to change the #define.
  *
  * based off http://www2.informatik.hu-berlin.de/~apolze/LV/plan9.docs/net.V
  * and http://en.wikibooks.org/wiki/C_Programming/Networking_in_UNIX */
@@ -55,7 +50,7 @@ int main()
         * writes "announce [addr]" into ctl.  This "announce" command often has a
         * "bind" in it too.  plan9 bind just sets the local addr/port.  TCP
         * announce also does this.  Returns the ctlfd. */
-       afd = announce("tcp!*!23", adir);
+       afd = announce9("tcp!*!23", adir, 0);
 
        if (afd < 0) {
                perror("Announce failure");
@@ -103,7 +98,7 @@ int main()
         * for the new conv's ctl.  listen() reads that to find out the conv number
         * (the line) for this new conv.  listen() returns the ctl for this new
         * conv. */
-       lcfd = listen(adir, ldir);
+       lcfd = listen9(adir, ldir, 0);
 
        if (lcfd < 0) {
                perror("Listen failure");
@@ -114,7 +109,7 @@ int main()
        /* Writes "accept [NUM]" into the ctlfd, then opens the conv's data file and
         * returns that fd.  Writing "accept" is a noop for most of our protocols.
         * */
-       dfd = accept(lcfd, ldir);
+       dfd = accept9(lcfd, ldir);
        if (dfd < 0) {
                perror("Accept failure");
                return -1;
index fe41d4d..bc0e707 100644 (file)
@@ -592,7 +592,7 @@ int main(int argc, char **argv)
                proto = &v6pr;
        ds = netmkaddr(argv[0], proto->net, "1");
        printf("ping: dial %s\n", ds);
-       fd = dial(ds, 0, 0, 0);
+       fd = dial9(ds, 0, 0, 0, 0);
        if(fd < 0){
                fprintf(stderr, "%s: couldn't dial %s: %r\n", argv0, ds);
                exit(1);
index 4673314..9876444 100644 (file)
@@ -33,7 +33,7 @@ int main(int argc, char *argv[])
        dialstring = argv[1];
        srvname = argv[2];
 
-       dfd = dial(dialstring, 0, 0, 0);
+       dfd = dial9(dialstring, 0, 0, 0, 0);
        if (dfd < 0) {
                perror("Unable to dial!");
                exit(-1);
index 53a0913..24b9dde 100755 (executable)
@@ -25,8 +25,7 @@ enum
 /*
  *  announce a network service.
  */
-int
-announce(char *addr, char *dir)
+int announce9(char *addr, char *dir, int flags)
 {
        int ctl, n, m;
        char buf[Maxpath];
@@ -92,8 +91,7 @@ announce(char *addr, char *dir)
 /*
  *  listen for an incoming call
  */
-int
-listen(char *dir, char *newdir)
+int listen9(char *dir, char *newdir, int flags)
 {
        int ctl, n, m;
        char buf[Maxpath];
@@ -145,8 +143,7 @@ listen(char *dir, char *newdir)
 /*
  *  accept a call, return an fd to the open data file
  */
-int
-accept(int ctl, char *dir)
+int accept9(int ctl, char *dir)
 {
        char buf[Maxpath];
        char *num;
@@ -168,8 +165,7 @@ accept(int ctl, char *dir)
 /*
  *  reject a call, tell device the reason for the rejection
  */
-int
-reject(int ctl, char *dir, char *cause)
+int reject9(int ctl, char *dir, char *cause)
 {
        char buf[Maxpath];
        char *num;
index 6aae9d9..865b47a 100755 (executable)
@@ -68,8 +68,7 @@ call(char *clone, char *dest, int *cfdp, char *dir, char *local)
        return fd;
 }
 
-int
-dial(char *dest, char *local, char *dir, int *cfdp)
+int dial9(char *dest, char *local, char *dir, int *cfdp, int flags)
 {
        char net[128];
        char netdir[128], csname[NETPATHLEN], *slp;
index f53fd3c..e3828bd 100755 (executable)
@@ -225,11 +225,11 @@ extern uint8_t IPallbits[IPaddrlen];
 int tokenize(char *s, char **args, int maxargs);
 int getfields(char *str, char **args, int max, int mflag, char *unused_set);
 char *netmkaddr(char *linear, char *defnet, char *defsrv);
-int dial(char *dest, char *local, char *dir, int *cfdp);
-int announce(char *addr, char *dir);
-int listen(char *dir, char *newdir);
-int accept(int ctl, char *dir);
-int reject(int ctl, char *dir, char *cause);
+int dial9(char *dest, char *local, char *dir, int *cfdp, int flags);
+int announce9(char *addr, char *dir, int flags);
+int listen9(char *dir, char *newdir, int flags);
+int accept9(int ctl, char *dir);
+int reject9(int ctl, char *dir, char *cause);
 
 __END_DECLS