* Bind unix socket prior to TCP socket for citadel protocol
authorArt Cancro <ajc@citadel.org>
Fri, 2 Jun 2000 03:39:00 +0000 (03:39 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 2 Jun 2000 03:39:00 +0000 (03:39 +0000)
* Fixed bug in sendcommand.c which was causing it to crash on attach

citadel/ChangeLog
citadel/ipc_c_tcp.c
citadel/netproc.c
citadel/sendcommand.c
citadel/sysdep.c
citadel/whobbs.c

index 9fe53ba4cbdcd2bd85a6ce36bf49bea82e33747c..0698c9edbd691ada3f7dea86e3a9c3a1272272cf 100644 (file)
@@ -1,4 +1,8 @@
  $Log$
+ Revision 572.2  2000/06/02 03:38:50  ajc
+ * Bind unix socket prior to TCP socket for citadel protocol
+ * Fixed bug in sendcommand.c which was causing it to crash on attach
+
  Revision 572.1  2000/05/26 19:27:51  ajc
  * Changed some of the rev-level sensitive stuff to look at the actual version
    of Citadel running, not the last version with which we ran setup
@@ -1890,4 +1894,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
        * Initial CVS import 
-
index c97892a3a0757f7d3ebde368b72fa52bddea78e3..bb4290baa66fe962ccd50d53a7bce900e2f735a3 100644 (file)
@@ -131,6 +131,7 @@ int uds_connectsock(char *sockpath)
        struct sockaddr_un addr;
        int s;
 
+
        memset(&addr, 0, sizeof(addr));
        addr.sun_family = AF_UNIX;
        strncpy(addr.sun_path, sockpath, sizeof addr.sun_path);
index 07a781e1a736f6f97ddb0836236cea85cb5dd256..f7a108db75a734cd3c6ba2e7cdae98760b6f33ae 100644 (file)
@@ -1504,13 +1504,10 @@ void outprocess(char *sysname)
 void np_attach_to_server(void)
 {
        char buf[256];
-       char portname[8];
        char *args[] =
        { "netproc", NULL };
 
        syslog(LOG_NOTICE, "Attaching to server...");
-       sprintf(portname, "%d", config.c_port_number);
-       args[2] = portname;
        attach_to_server(1, args, NULL, NULL);
        serv_gets(buf);
        syslog(LOG_NOTICE, "%s", &buf[4]);
index 2de7706d5d509fe09587f976c702bac1ad297736..a5e1fa2e453299b516ce77743d4dfdd3265e3ef9 100644 (file)
@@ -20,7 +20,7 @@
 #include "ipc.h"
 #include "config.h"
 
-#define LOCKFILE "/var/lock/LCK.sendcommand"
+#define LOCKFILE "/tmp/LCK.sendcommand"
 
 struct config config;
 extern int home_specified;
@@ -88,13 +88,10 @@ void logoff(int e)
 void np_attach_to_server(void) {
        char hostbuf[256], portbuf[256];
        char buf[256];
-       char portname[8];
-       char *args[] = { "sendcommand", NULL, NULL, NULL } ;
+       char *args[] = { "sendcommand", NULL } ;
 
        fprintf(stderr, "Attaching to server...\n");
-       sprintf(portname, "%d", config.c_port_number);
-       args[2] = portname;
-       attach_to_server(3, args, hostbuf, portbuf);
+       attach_to_server(1, args, hostbuf, portbuf);
        serv_gets(buf);
        fprintf(stderr, "%s\n",&buf[4]);
        sprintf(buf,"IPGM %d", config.c_ipgm_secret);
index bbb30eee253073f033bcd1ae322c41d05c98092c..00bb311d55a0e90d9bd5eb6bae8c90098d52cbaf 100644 (file)
@@ -871,14 +871,14 @@ int main(int argc, char **argv)
        /*
         * Bind the server to our favorite ports.
         */
-       CtdlRegisterServiceHook(config.c_port_number,           /* TCP */
-                               NULL,
-                               citproto_begin_session,
-                               do_command_loop);
        CtdlRegisterServiceHook(0,                              /* Unix */
                                "citadel.socket",
                                citproto_begin_session,
                                do_command_loop);
+       CtdlRegisterServiceHook(config.c_port_number,           /* TCP */
+                               NULL,
+                               citproto_begin_session,
+                               do_command_loop);
 
        /*
         * Load any server-side modules (plugins) available here.
@@ -915,6 +915,8 @@ int main(int argc, char **argv)
 
        for (serviceptr = ServiceHookTable; serviceptr != NULL;
            serviceptr = serviceptr->next ) {
+               lprintf(9, "Will listen on master socket %d\n",
+                       serviceptr->msock);
                FD_SET(serviceptr->msock, &masterfds);
                if (serviceptr->msock > masterhighest) {
                        masterhighest = serviceptr->msock;
index a9106eba3088df4cb8ae3a295e55c22435f7f29d..b59543bc26991c22e936af1787d0dad11968da95 100644 (file)
@@ -55,7 +55,7 @@ int main(int argc, char **argv)
         */     
        if (getenv("REQUEST_METHOD") != NULL) www = 1;
 
-       attach_to_server(argc,argv, hostbuf, portbuf);
+       attach_to_server(argc, argv, hostbuf, portbuf);
        serv_gets(buf);
        if ((buf[0]!='2')&&(strncmp(buf,"551",3))) {
                fprintf(stderr,"%s: %s\n",argv[0],&buf[4]);