]> code.citadel.org Git - citadel.git/blobdiff - citadel/citserver.c
* Finished the "arbitrary service" registration.
[citadel.git] / citadel / citserver.c
index 1bc99652ccdf46ce1c9b03cf3a0bc994f3aecc22..7b8cc1af8b34c952698e273f2b6f47559b9c5c29 100644 (file)
@@ -13,6 +13,7 @@
 #include <syslog.h>
 #include <dlfcn.h>
 #include <netdb.h>
+#include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
@@ -451,7 +452,7 @@ void cmd_iden(char *argbuf)
        lprintf(9, "Looking up hostname '%s'\n", from_host);
        if ((strlen(from_host)>0) && 
           (is_public_client(CC->cs_host))) {
-               if (inet_aton(from_host, &addr))
+               if ((addr.s_addr = inet_addr(from_host)) != INADDR_NONE)
                        locate_host(CC->cs_host, &addr);
                else {
                        safestrncpy(CC->cs_host, from_host, sizeof CC->cs_host);
@@ -846,7 +847,7 @@ void cmd_scdn(char *argbuf)
 
 
 /*
- * 
+ * Back-end function for starting a session
  */
 void begin_session(struct CitContext *con)
 {
@@ -882,7 +883,17 @@ void begin_session(struct CitContext *con)
        if ((config.c_maxsessions > 0)&&(num_sessions > config.c_maxsessions))
                con->nologin = 1;
 
-       if (con->nologin==1) {
+       lprintf(3, "citserver[%3d]: started.\n", con->cs_pid);
+
+       /* Run any session startup routines registered by loadable modules */
+       PerformSessionHooks(EVT_START);
+
+       rec_log(CL_CONNECT, "");
+}
+
+
+void citproto_begin_session() {
+       if (CC->nologin==1) {
                cprintf("%d %s: Too many users are already online "
                        "(maximum is %d)\n",
                        ERROR+MAX_SESSIONS_EXCEEDED,
@@ -892,13 +903,6 @@ void begin_session(struct CitContext *con)
                cprintf("%d %s Citadel/UX server ready.\n",
                        OK, config.c_nodename);
                }
-
-       lprintf(3, "citserver[%3d]: started.\n", con->cs_pid);
-
-       /* Run any session startup routines registered by loadable modules */
-       PerformSessionHooks(EVT_START);
-
-       rec_log(CL_CONNECT, "");
 }