Code clean up
[umurmur.git] / src / sharedmemory.c
index 6af3f752fe3c057c0e074d0261c739be0b97ee99..0421fe059fe59b56ca515cd4ed259b9cd4c438f1 100644 (file)
@@ -4,39 +4,35 @@
 void Sharedmemory_init(void) \r
 {\r
 \r
-  int bindport = getIntConf(BINDPORT);                                                         //MJP BUG commandline option for address and port dont work this way going to have \r
+  int bindport = getIntConf(BINDPORT);                //MJP BUG commandline option for address and port dont work this way going to have \r
   int server_max_clients = getIntConf(MAX_CLIENTS);   //to bring them across as prameters to Sharedmemory_init(void)\r
   int shmptr_size =  sizeof( shm_t  ) + (sizeof( shmclient_t ) * server_max_clients);\r
-  \r
 \r
+  sprintf( shm_file_name, "umurmurd:%i", bindport );\r
+  Log_info("SHM_API: shm_fd=\"%s\"", shm_file_name  );\r
 \r
-       sprintf( shm_file_name, "umurmurd:%i", bindport );\r
+               shm_fd = shm_open( shm_file_name, O_CREAT | O_RDWR, 0666 );\r
+                               if(shm_fd == -1)\r
+                               {\r
+                               Log_fatal( "SHM_API: Open failed:%s\n", strerror(errno));\r
+                               exit(1);\r
+                               }  \r
 \r
-  Log_info("SHM_FD: %s", shm_file_name  );\r
-\r
-shm_fd = shm_open( shm_file_name, O_CREAT | O_RDWR, 0666 );\r
-if(shm_fd == -1)\r
-{\r
-    fprintf(stderr, "Open failed:%s\n", strerror(errno)); //MJP BUG make this Log_ calls once I get this working\r
-    exit(1);\r
-}  \r
-\r
-if( ftruncate( shm_fd, shmptr_size ) == -1 )\r
-{\r
-    fprintf(stderr, "ftruncate : %s\n", strerror(errno));  //MJP BUG make this Log_ calls once I get this working\r
-    exit(1);\r
-}\r
-\r
-  shmptr = mmap(0, shmptr_size, PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0);\r
-  if (shmptr == (void *) -1) \r
-       {\r
-     fprintf(stderr, "mmap failed : %s\n", strerror(errno)); //MJP BUG make this Log_ calls once I get this working\r
-     exit(1);\r
-  } \r
+                               if( ftruncate( shm_fd, shmptr_size ) == -1 )\r
+                               {\r
+                               Log_fatal( "SHM_API: ftruncate : %s\n", strerror(errno));  \r
+                               exit(1);\r
+                               }\r
 \r
+                       shmptr = mmap(0, shmptr_size, PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0);\r
+                       if (shmptr == (void *) -1) \r
+                       {\r
+                               Log_fatal( "SHM_API: mmap failed : %s\n", strerror(errno));\r
+                               exit(1);\r
+                       } \r
 \r
   memset( shmptr, 0, shmptr_size );\r
-                                            \r
+                                       \r
   shmptr->umurmurd_pid = getpid();\r
   shmptr->server_max_clients = server_max_clients;  \r
 }\r
@@ -47,11 +43,7 @@ void Sharedmemory_update(void)
   uint64_t now;\r
   unsigned int cc = 0;\r
   client_t *client_itr = NULL;\r
-  static size_t bt_end = sizeof(  bool_t  ) * 8,   //compute once\r
-                pa_end = sizeof(  float   ) * 4,\r
-                pc_end = sizeof( uint32_t ) * 2;\r
-                \r
\r
+\r
     memset( &shmptr->client[0], 0, sizeof( shmclient_t ) * shmptr->server_max_clients );\r
     shmptr->clientcount = Client_count();\r
     \r
@@ -66,16 +58,40 @@ void Sharedmemory_update(void)
         \r
                 strncpy( shmptr->client[cc].username, client_itr->username, 120 );\r
                 strncpy( shmptr->client[cc].ipaddress, Util_clientAddressToString( client_itr ), 45 );\r
-                shmptr->client[cc].tcp_port = Util_clientAddressToPortTCP( client_itr );\r
-                shmptr->client[cc].udp_port = Util_clientAddressToPortUDP( client_itr );\r
                 strncpy( shmptr->client[cc].channel, channel->name, 120 );\r
+                \r
+                strncpy( shmptr->client[cc].os, client_itr->os, 120 );\r
+                strncpy( shmptr->client[cc].release, client_itr->release, 120 );\r
+                strncpy( shmptr->client[cc].os_version, client_itr->os_version, 120 );\r
+                \r
+                shmptr->client[cc].tcp_port = Util_clientAddressToPortTCP( client_itr );\r
+                shmptr->client[cc].udp_port = Util_clientAddressToPortUDP( client_itr );                \r
         \r
                 shmptr->client[cc].online_secs = ( now - client_itr->connectTime ) / 1000000LL;\r
                 shmptr->client[cc].idle_secs = ( now - client_itr->idleTime ) / 1000000LL;\r
-        \r
-                memcpy( &shmptr->client[cc].bUDP, &client_itr->bUDP, bt_end );\r
-                memcpy( &shmptr->client[cc].UDPPingAvg, &client_itr->UDPPingAvg, pa_end );\r
-                memcpy( &shmptr->client[cc].UDPPackets, &client_itr->UDPPackets, pc_end );\r
+                        \r
+                shmptr->client[cc].bUDP  = client_itr->bUDP;\r
+                shmptr->client[cc].deaf  = client_itr->deaf;\r
+                shmptr->client[cc].mute  = client_itr->mute;\r
+                shmptr->client[cc].bOpus  = client_itr->bOpus;\r
+                shmptr->client[cc].self_deaf  = client_itr->self_deaf;\r
+                shmptr->client[cc].self_mute  = client_itr->self_mute;\r
+                shmptr->client[cc].recording  = client_itr->recording;\r
+                shmptr->client[cc].authenticated  = client_itr->authenticated;\r
+                \r
+                shmptr->client[cc].availableBandwidth  = client_itr->availableBandwidth;\r
+                \r
+                shmptr->client[cc].UDPPingAvg = client_itr->UDPPingAvg;\r
+                shmptr->client[cc].UDPPingVar = client_itr->UDPPingVar;\r
+                shmptr->client[cc].TCPPingAvg = client_itr->TCPPingAvg;\r
+                shmptr->client[cc].TCPPingVar = client_itr->TCPPingVar;\r
+                \r
+                shmptr->client[cc].isAdmin = client_itr->isAdmin;\r
+                shmptr->client[cc].isSuppressed = client_itr->isSuppressed;\r
+                \r
+                shmptr->client[cc].UDPPackets = client_itr->UDPPackets;\r
+                shmptr->client[cc].TCPPackets = client_itr->TCPPackets;\r
+                \r
             }  \r
           cc++;     \r
         }\r