Server - Added bac to mark zero priced slots as erroring
[tpg/opendispense2.git] / src / server / server.c
index 32e4c10..b7ca068 100644 (file)
@@ -18,8 +18,9 @@
 #include <string.h>
 #include <limits.h>
 #include <stdarg.h>
-#include <signal.h>
-#include <ident.h>
+#include <signal.h>    // Signal handling
+#include <ident.h>     // AUTHIDENT
+#include <time.h>      // time(2)
 
 #define        DEBUG_TRACE_CLIENT      0
 #define HACK_NO_REFUNDS        1
@@ -166,6 +167,7 @@ void Server_Start(void)
                }
                if( pid != 0 ) {
                        // Parent, quit
+                       printf("Forked child %i\n", pid);
                        exit(0);
                }
                // In child
@@ -178,6 +180,8 @@ void Server_Start(void)
                freopen("/dev/null", "r", stdin);
                freopen(gsServer_LogFile, "a", stdout);
                freopen(gsServer_ErrorLog, "a", stderr);
+               fprintf(stdout, "OpenDispense 2 Server Started at %lld\n", (long long)time(NULL));
+               fprintf(stderr, "OpenDispense 2 Server Started at %lld\n", (long long)time(NULL));
                #endif
        }
 
@@ -678,6 +682,13 @@ void Server_Cmd_SETEUSER(tClient *Client, char *Args)
                        return ;
                }
        }
+
+       // Disabled accounts
+       if( userFlags & USER_FLAG_DISABLED ) {
+               Client->UID = -1;
+               sendf(Client->Socket, "403 Account disabled\n");
+               return ;
+       }
        
        sendf(Client->Socket, "200 User set\n");
 }
@@ -702,6 +713,8 @@ void Server_int_SendItem(tClient *Client, tItem *Item)
                }
        }
        
+       if( Item->Price == 0 )
+               status = "error";
        // KNOWN HACK: Naming a slot 'dead' disables it
        if( strcmp(Item->Name, "dead") == 0 )
                status = "sold";        // Another status?

UCC git Repository :: git.ucc.asn.au