- if( ( shmptr = ( shm_t *) shmat( shmid, 0, 0 ) ) == (shm_t *) (-1) )\r
- {\r
- perror("shmat");\r
- exit(1); //MJP BUG should report error and just not use shm dont exit\r
- }\r
- memset( shmptr, 0, shmptr_size ); \r
+ sprintf( shm_file_name, "umurmurd:%i", bindport );\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
+\r
+\r
+ memset( shmptr, 0, shmptr_size );\r
+ \r