basic namedpipe functionality + ip-string handling - hbb - hyperbitblock
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 743068f503c8de4b0e0cea3111bed6c59d9a1133
DIR parent 618ac6d80f4d327dd64731131e7bf030d42b8acd
HTML Author: kroovy <me@kroovy.de>
Date: Wed, 16 Apr 2025 23:23:11 +0200
basic namedpipe functionality + ip-string handling
Diffstat:
M hyperbitblock.c | 89 +++++++++++++++++++------------
1 file changed, 56 insertions(+), 33 deletions(-)
---
DIR diff --git a/hyperbitblock.c b/hyperbitblock.c
@@ -3,48 +3,71 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/uio.h>
#include <unistd.h>
-int
-is_bit_set(unsigned value, unsigned bitindex) {
+#include <ctype.h>
+#include <fcntl.h>
+
+int is_bit_set(unsigned value, unsigned bitindex) {
return (value & (1 << bitindex)) != 0;
}
-int
-main
-(void)
-{
-
- uint8_t v4[] =
- {
- 0b00000000 /* 18 */
- , 0b00010000 /* 119 */
- , 0b01001000 /* 9 */
- , 0b10101011 /* 193 */
- };
+int str_to_ip(char *s, uint8_t *v4) {
+ uint8_t oct=0;
+
+ int i,j;
- //uint8_t v4[] =
- //{
- // 0b00001010 /* 10 */
- // , 0b00000000 /* 0 */
- // , 0b00000000 /* 0 */
- // , 0b00010110 /* 22 */
- //};
+ j=0;
+ for (i=0 ;s[i] != '\0'; i++) {
+ if (s[i] == '.') {
+ v4[j] = oct;
+ oct = 0;
+ j++;
- uint32_t i32 = (v4[0] << 24) | (v4[1] << 16) | (v4[2] << 8) | v4[3];
+ } else {
+ oct *= 10;
+ oct += (int)s[i] - '0';
+ }
+ }
+ v4[j] = oct;
+
+ return 0;
+}
+// uint8_t v4[] = {
+//
+// 0b00000000 /* 18 */
+// , 0b00010000 /* 119 */
+// , 0b01001000 /* 9 */
+// , 0b10101011 /* 193 */
+// };
- //uint8_t v = 0b0000011;
- //uint8_t i = 0;
-
- printf("My IP is: %u.%u.%u.%u\n",v4[0],v4[1],v4[2],v4[3]);
- printf("That calculates to: %u\n",i32);
+int main(void) {
+ int fd;
+ int i, res;
+ uint8_t v4[4] = {0,0,0,0};
+ uint32_t i32 = 0;
- //if (is_bit_set(v, i)) {
- // printf("bit is set at index: %d\n", i);
- //} else {
- // printf("bit is not set at index: %d\n", i);
- //}
+ char c;
+ char line[64];
- return 0;
+nextline:
+ fd = open("mynamedpipe", O_RDONLY);
+ for (i=0; (res = read(fd, &c, 1)) > 0; i++) { //consider readline/getline
+ line[i] = c;
+ if (c == '\n') {
+ line[i] = '\0';
+ break;
+ }
+ c = '\0';
+ }
+ str_to_ip(line, v4);
+ i32 = (v4[0] << 24) | (v4[1] << 16) | (v4[2] << 8) | v4[3];
+ printf("My IP is: %u.%u.%u.%u\n",v4[0],v4[1],v4[2],v4[3]);
+ printf("That calculates to: %u\n\n",i32);
+ close(fd);
+ sleep(1); //fix with fcntl
+ goto nextline;
}