int extract(struct Options * op) { FILE * database, * fp; int seq; char c; database = fopen(op->database,"r"); if(database == NULL) { printf("Database cannot open:%s\r\n",op->database); return -3; } fp = fopen(op->filename,"w"); if(fp == NULL) { printf("Can create file:%s\r\n",op->filename); return -5; } seq = 0; if(read_util(database, '>', 0, NULL) != 0) return -4; while(1) { if(read_util(database, '\n', 0, NULL) != 0) break; seq++; if(read_util(database, '>', 1, fp) != 0) break; } fclose(fp); fclose(database); fp = database = NULL; return seq; }
/** * Send a register request to cakedb server */ int16_t register_stream(struct sockaddr_in saddr, const char *stream_name) { t_head header; int s; int32_t i; int16_t sid; printf("registering stream %s\n", stream_name); s = create_network_link(saddr); /* Send an register stream request */ header.cmd = htons(5); i = strlen(stream_name); header.length = htonl(i); /* Send header to cakedb */ write_util(s, &header, sizeof(header.cmd) + sizeof(header.length)); /* Send stream name to cakedb */ write_util(s, stream_name, i); /* Read stream id returned by cakedb */ read_util(s, &sid, sizeof(sid)); /* Convert sid to host endianess */ sid = ntohs(sid); printf("received stream id: %d\n", (int) sid); close(s); return (sid); }