X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fsharedmemory.c;h=d6a6a0ac84681b84cd609f6077301a5d3404721f;hb=ab8b3f6c210906562d01ec63340e8eed985399e9;hp=fd41261f49918b3a8d8fd9ca221001a4e449dd89;hpb=f3ad5045348029cde52215ba917d375542d4e34e;p=umurmur.git diff --git a/src/sharedmemory.c b/src/sharedmemory.c index fd41261..d6a6a0a 100644 --- a/src/sharedmemory.c +++ b/src/sharedmemory.c @@ -27,6 +27,7 @@ void Sharedmemory_init( int bindport, int bindport6 ) if( ftruncate( shm_fd, shmtotal_size ) == -1 ) { + Sharedmemory_deinit(); Log_fatal( "SHM_API: ftruncate : %s\n", strerror(errno)); exit(EXIT_FAILURE); } @@ -66,8 +67,10 @@ void Sharedmemory_update(void) { channel_t *channel = client_itr->channel; + char* clientAddressString = Util_clientAddressToString( client_itr ); + strncpy( shmptr->client[cc].username, client_itr->username, 120 ); - strncpy( shmptr->client[cc].ipaddress, Util_clientAddressToString( client_itr ), INET6_ADDRSTRLEN - 1 ); + strncpy( shmptr->client[cc].ipaddress, clientAddressString, INET6_ADDRSTRLEN - 1 ); strncpy( shmptr->client[cc].channel, channel->name, 120 ); strncpy( shmptr->client[cc].os, client_itr->os, 120 ); @@ -102,6 +105,7 @@ void Sharedmemory_update(void) shmptr->client[cc].UDPPackets = client_itr->UDPPackets; shmptr->client[cc].TCPPackets = client_itr->TCPPackets; + free(clientAddressString); } cc++; }